Масштабируемый параллелизм - Scalable parallelism - Wikipedia

Говорят, что программное обеспечение выставляет масштабируемый параллелизм если он может использовать дополнительные процессоры для решения более крупных проблем, т.е. этот термин относится к программному обеспечению, для которого Закон Густафсона Рассмотрим программу, время выполнения которой определяется одним или несколькими циклами, каждый из которых обновляет каждый элемент массива - например, следующие конечная разница уравнение теплопроводности расчет трафарета:

за 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 это функциональный язык программирования общего назначения, основными задачами которого являются производительность на многоядерном оборудовании, простота программирования и ясность / читаемость кода.

Рекомендации

  1. ^ Воннакотт, Д. (2000). «Использование временной задержки для устранения простоев из-за пропускной способности памяти и сетевых ограничений». Труды 14-го Международного симпозиума по параллельной и распределенной обработке. IPDPS 2000. С. 171–180. Дои:10.1109 / IPDPS.2000.845979. ISBN  978-0-7695-0574-9.

внешняя ссылка