Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
168
Добавлен:
10.05.2015
Размер:
203.26 Кб
Скачать

Метрики параллельных вычислений

Ш силу особенностей параллельных вычислений для оценки их эффективности используют специфическую систему метрик. Наиболее распространенные из та­ких метрик рассматриваются ниже.

Профиль параллелизма программы

Число процессоров многопроцессорной системы, параллельно участвующих в вы­полнении программы в каждый момент времени t, определяют понятием степень параллелизма D(t) (DOP, Degree Of Parallelism). Графическое представление па­раметра D(t) как функции времени называют профилем параллелизма программы. Изменения в уровне загрузки процессоров за время наблюдения зависят от мно-тах факторов (алгоритма, доступных ресурсов, степени оптимизации, обеспечива­емой компилятором и т. д.). Типичный профиль параллелизма для алгоритма де­композиции (divide-and-conquer algorithm) показан на рис. 25.1.

В дальнейшем будем исходить из следующих предположений: система состоит из п гомогенных процессоров; максимальный параллелизм в профиле равен т и, в идеальном случае, п » т. Производительность Д одиночного процессора систе­мы выражается в единицах скорости вычислений (количество операций в едини­цу времени) и не учитывает издержек, связанных с обращением к памяти и пере­сылкой данных. Если за наблюдаемый период загружены i процессоров, то D = i

Рис. 25.1. Профиль параллелизма

Общий объем вычислительной работы W (команд или вычислений), выпол­ненной начиная со стартового момента ts до момента завершения tL, пропорциона­лен площади под кривой профиля параллелизма:

Интеграл часто заменяют дискретным эквивалентом:

где tiобщее время, в течение которого D = i, а ti =te-tsобщее затрачен­ное время.

Средний параллелизм А определяется как

В дискретной форме это можно записать так:

Профиль параллелизма на рисунке за время наблюдения (ts ,te) возрастает от 1 до пикового значения т = 8, а затем спадает до 0. Средний параллелизм А = (1 х 5 + + 2x3 + 3x4 + 4x6 + 5x2 + 6x2 + 8x3)/(5+ 3 + 4 + 6 + 2 + 2 + 3) = 93/25 = = 3,72. Фактически общая рабочая нагрузка и А представляют собой нижнюю гра­ницу асимптотического ускорения.

Будем говорить, что параллельная программа выполняется в режиме г, если для ее исполнения задействованы г процессоров. Время, на продолжении которого си­стема работает в режиме i, обозначим через ti , а объем работы, выполненной в ре-жиме i, как Wi= iti. Тогда, при наличии п процессоров время исполнения Т(п) для двух экстремальных случаев: п = 1(T(1)) и n = (Т())можно записать в виде:

Асимптотическое повышение быстродействия S определяется как отношение T(1) к T();

Сравнивая это выражение и предыдущие уравнения, можно констатировать, что в идеальном варианте S= А. В общем случае нужно учитывать коммуникаци­онные задержки и системные издержки. Отметим, что как S так и А были опреде­лены в предположении, что п » т.

В прикладных программах имеется широкий диапазон потенциального парал­лелизма. М. Кумар в своей статье [146] приводил данные, что в вычислительно интенсивных программах в каждом цикле параллельно могут выполняться от 500 до 3500 арифметических операций, если для этого имеется существующая вычис­лительная среда. Однако даже правильно спроектированный суперскалярный про­цессор способен поддерживать выполнение от 2 до 5,8 команды за цикл. Эти циф­ры дают пессимистическую картину возможного параллелизма.

Соседние файлы в папке Lection