Русская Википедия:Распараллеливание программ
Распараллеливание программ — процесс адаптации алгоритмов, записанных в виде программ, для их эффективного исполнения на вычислительной системе параллельной архитектуры (в последнее время, как правило, на многопроцессорной вычислительной системе). Заключается либо в переписывании программ на специальный язык, описывающий параллелизм и понятный трансляторам целевой вычислительной системы, либо к вставке специальной разметки (например, инструкций MPI или OpenMP).
Распараллеливание может быть ручным, автоматизированным и полуавтоматизированным. Для оценки эффективности его качества применяются следующие критерии:
- Ускорение <math>S_p = T_1 /T_p</math>, где <math>T_p</math> — время исполнения распараллеленной программы на <math>p</math> процессорах, <math>T_1</math> — время исполнения исходной программы. В идеальном случае (отсутствие накладных расходов на организацию параллелизма) равна <math>p</math>.
- Загруженность <math>S_p/p=T_1/pT_p</math>, показывающая долю использования процессоров. В идеальном случае равна 1, или 100 %. Эта величина зачастую гораздо более наглядно характеризует эффективность параллелизма в серии испытаний при разных <math>p</math>, чем <math>S_p</math>, особенно на графиках.
При распараллеливании важно учитывать не только формальный параллелизм структуры алгоритма, но и то, что обменные операции в параллельных ЭВМ происходят, как правило, значительно медленнее арифметических. С этим связано существование львиной доли накладных расходов на организацию параллелизма.
Ссылки
- Introducing OpenMP: A Portable, Parallel Programming API for Shared Memory MultiprocessorsШаблон:Ref-en
- Введение в технологии параллельного программирования (OpenMP)Шаблон:Ref-ru
Шаблон:Compu-soft-stub Шаблон:Распределённые вычисления