WikiDer > Масштабируемый параллелизм - Википедия
Говорят, что программное обеспечение выставляет масштабируемый параллелизм если он может использовать дополнительные процессоры для решения более крупных проблем, т.е. этот термин относится к программному обеспечению, для которого Закон Густафсона Рассмотрим программу, время выполнения которой определяется одним или несколькими циклами, каждый из которых обновляет каждый элемент массива - например, следующие конечная разница уравнение теплопроводности расчет трафарета:
за t: = 0 к Т делать за я: = 1 к N-1 делать new (i): = (A (i-1) + A (i) + A (i) + A (i + 1)) * .25 // явная прямая разница с R = 0,25 конец за я: = 1 к N-1 делать A (i): = новый (i) конецконец
В приведенном выше коде мы можем выполнять все итерации каждого цикла «i» одновременно, то есть превращать каждую в цикл параллельный циклВ таких случаях часто можно эффективно использовать вдвое больше процессоров для задачи размера массива 2Nas для задачи размера массива N. Как и в этом примере, масштабируемый параллелизм обычно представляет собой форму параллелизм данных.Эта форма параллелизма часто является целью автоматическое распараллеливание из петли.
Распределенные вычислительные системы и неравномерный доступ к памяти Архитектуры, как правило, легче всего масштабируются на большое количество процессоров, и поэтому могут казаться естественной целью для программного обеспечения, демонстрирующего масштабируемый параллелизм. Однако приложения с масштабируемым параллелизмом могут не обладать достаточным параллелизмом грубого помоладля эффективной работы в таких системах (если программное обеспечение не смущающе параллельныйВ нашем примере, приведенном выше, второй цикл «i» является досадно параллельным, но в первом цикле каждая итерация требует результатов, полученных в нескольких предыдущих итерациях. Таким образом, для первого цикла распараллеливание может включать в себя обширную связь или синхронизацию между процессорами, и таким образом, приведет к чистому ускорению только в том случае, если такие взаимодействия имеют очень низкие накладные расходы или если код может быть преобразован для решения этой проблемы (т. масштабируемая местность/ оптимизация масштабируемого параллелизма[1]).
Языки
- Ateji PX расширение Java, делающее масштабируемый параллелизм возможным на виртуальной машине Java (JVM)
- BMDFM Двоичная модульная машина потока данных
- SequenceL это функциональный язык программирования общего назначения, основными задачами которого являются производительность на многоядерном оборудовании, простота программирования и ясность / читаемость кода.
Рекомендации
- ^ Воннакотт, Д. (2000). «Использование временной задержки для устранения простоев из-за пропускной способности памяти и сетевых ограничений». Труды 14-го Международного симпозиума по параллельной и распределенной обработке. IPDPS 2000. С. 171–180. Дои:10.1109 / IPDPS.2000.845979. ISBN 978-0-7695-0574-9.