Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

для t: = от 0 до T делать  для i: = от 1 до N-1 делать новый (i): = (A (i-1) + A (i) + A (i) + A (i + 1)) * 0,25 // явная прямая разница с R = 0,25 конец  для i: = от 1 до N-1 делать A (i): = новый (i) конец конец

В приведенном выше коде мы можем выполнять все итерации каждого цикла «i» одновременно, т. Е. Превратить каждую в параллельный цикл . В таких случаях часто можно эффективно использовать вдвое больше процессоров для задачи размера массива 2N, чем для задачи размера массива N. Как и в этом примере, масштабируемый параллелизм обычно является формой параллелизма данных . Эта форма параллельности часто мишень автоматического распараллеливания из петель .

Распределенные вычислительные системы и неоднородные архитектуры доступа к памяти, как правило, легче всего масштабируются на большое количество процессоров, и поэтому они могут казаться естественной целью для программного обеспечения, которое демонстрирует масштабируемый параллелизм. Однако приложения с масштабируемым параллелизмом могут не иметь достаточно грубого параллелизма для эффективной работы в таких системах (если только программное обеспечение не является слишком параллельным.). В нашем примере, приведенном выше, второй цикл «i» является досадно параллельным, но в первом цикле каждая итерация требует результатов, полученных на нескольких предыдущих итерациях. Таким образом, для первого цикла, распараллеливание может включать в себя обширные связи или синхронизацию между процессорами, и , таким образом , только приведет к чистому ускорению , если такие взаимодействия имеют очень низкие накладные расходы, или , если код может быть преобразован , чтобы решить эту проблему (т.е. путем комбинированными масштабируемой оптимизация локальности / масштабируемого параллелизма [1] ).

Языки [ править ]

  • Ateji PX - расширение Java, делающее возможным масштабируемый параллелизм на виртуальной машине Java (JVM)
  • Машина двоичного модульного потока данных BMDFM
  • SequenceL - это функциональный язык программирования общего назначения, основными задачами которого являются производительность на многоядерном оборудовании, простота программирования и ясность / читаемость кода.

Ссылки [ править ]

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

Внешние ссылки [ править ]