Читайте также: |
|
Профиль параллелизма программы.
Число процессоров многопроцессорной системы, параллельно участвующих в выполнении программы в каждый момент времени определяется понятием степень параллелизма D(t). Графическое представление функции времени D(t) называется профилем параллелизма программы. Изменения в уровне загрузки процессоров за время наблюдения зависят от многих факторов (алгоритма, доступности ресурсов, степени оптимизации, обеспечиваемой компилятором и т.д.)
В прикладных программах имеется широкий диапазон потенциального параллелизма. У вычислительно интенсивных программах в каждом цикле параллельно могут выполняться от 500 до 3500 арифметических операций, если для этого имеется существующая вычислительная среда. Однако даже правильно спроектированный суперскалярный процессор способен поддерживать выполнение от 2 до 5.8 команд за цикл. Эти цифры дают пессимистическую картину возможного параллелизма.
Ускорение, эффективность.
Ускорение – или, точнее, среднее ускорение за счет параллельного выполнения программы – это отношение времени, требуемого для выполнения наилучшего из последовательных алгоритмов на одном процессоре и времени параллельного вычисления на К - процессорах. Величина ускорения как правило меньше К.
Эффективность - К – процессорной системы – это ускорение, отнесенное к одному процессору.
Собственное ускорение – определяется путем реализации параллельного алгоритма на одном процессоре.
Если ускорение, достигнутое на К – процессорах равно К, то говорят об линейном ускорении.
Иногда возможно, когда ускорение может быть больше К. Это случай, когда последовательная программа выполняется при малом объеме оперативной памяти и имеет место большое количество свопингов, или может приводить к большому количеству КЭШ – промахов, чем параллельная версия этой программы.
К факторам, ограничивающим ускорение, следует отнести:
· Программные издержки -. Даже если последовательные и параллельные алгоритмы выполняют одни и те же вычисления, параллельным алгоритмам присущи добавочные программные издержки - дополнительные индексные вычисления, неизбежно возникающие из – декомпозиции данных и распределения их по процессорам; различные виды учетных операций, требуемые в параллельных алгоритмах, но отсутствующие в последовательных.
· Издержки из дисбаланса загрузки процессоров. Между точками синхронизации каждый процессор должен быть загружен одинаковым объемом работы, иначе часть процессоров будет ожидать, пока остальные завершат свои вычисления; Эта ситуация известна как дисбаланс загрузки. Таким образом, ускорение ограничивается наиболее медленным процессором.
· Коммуникационные издержки. Если принять, что обмен информацией и вычисления могут перекрываться, то любые коммуникации между процессорами снижают ускорение. В плане коммуникационных затрат важен уровень гранулярности, определяющий объем вычислительной работы, выполняемой между коммуникационными фазами алгоритма. Для уменьшения коммуникационных издержек выгодно, чтобы вычислительные гранулы были достаточно крупными и доля коммуникаций была меньше.
При проектировании параллельных вычислительных систем под конкретные задачи разработчики детально исследуют типовые для данных задач алгоритмы и используя законы Адамала и Густафсона определяют возможную величину ускорения их выполнения.
Дата добавления: 2015-09-10; просмотров: 127 | Поможем написать вашу работу | Нарушение авторских прав |