платой за преимущества, которые предоставляет использование групп институтов и пользователей.
Литература
1. Robinson A. Federated Identity Management in Higher Education, University of Baltimore, 2006.
2. Rigney C., Simpson S., Willens A., Rubens W. RFC2865 - Remote Authentication Dial In User Service (RADIUS), IETF, 2010. URL: http://tools.ietf.org/html/rfc2865 (дата обращения: 19.09.2012).
3. 802.1X Port-Based Network Access Control, IEEE Computer Society. 2004. URL: http://standards.ieee.org/getieee802/ download/802.1X-2004.pdf (дата обращения: 19.09.2012).
4. 802.1Q Virtual Bridged Local Area Networks, IEEE Computer Society, 2005. URL: http://standards.ieee.org/getieee802/ download/802.1Q-2005.pdf (дата обращения: 19.09.2012).
5. Aboba B., Blunk L., Vollbrecht J., Carlson J. RFC3748 -Extensible Authentication Protocol (EAP), IETF, 2004. URL: http://www.ietf.org/rfc/rfc3748.txt (дата обращения: 19.09.2012).
6. RFC4511 - Lightweight Directory Access Protocol (LDAP): The Protocol, IETF. URL: http://tools.ietf.org/html/ rfc4511 (дата обращения: 19.09.2012).
7. Zorn G., Leifer D., Rubens A., Shriver J., M. Holdrege M., Goyret I. RFC2868 - RADIUS Attributes for Tunnel Protocol Support, IETF, 2000. URL: http://tools.ietf.org/html/rfc2868 (дата обращения: 19.09.2012).
References
1. Robinson A., Federated Identity Management in Higher Education, Univ. of Baltimore, 2006.
2. Rigney C., Simpson S., Willens A., Rubens W., RFC2865 — Remote Authentication Dial In User Service (RADIUS), IETF, 2010, Available at: http://tools.ietf.org/html/rfc2865 (accessed 19 September 2012).
3. 802. IX Port-Based Network Access Control, IEEE Comp. Society, 2004, Available at: http://standards.ieee.org/ge-tieee802/download/802.1X-2004.pdf (accessed 19 September 2012).
4. 802.1Q Virtual Bridged Local Area Networks, IEEE Comp. Society, 2005, Available at: http://standards.ieee.org/ge-tieee802/download/802.1Q-2005.pdf (accessed 19 September 2012).
5. Aboba B., Blunk L., Vollbrecht J., Carlson J., RFC3748 -Extensible Authentication Protocol (EAP), IETF, 2004, Available at: http://www.ietf.org/rfc/rfc3748.txt (accessed 19 September 2012).
6. RFC4511 - Lightweight Directory Access Protocol (LDAP), IETF, Available at: http://tools.ietf.org/html/rfc4511 (accessed 19 September 2012).
7. Zorn G., Leifer D., Rubens A., Shriver J., Holdrege M., Goyret I., RFC2868 - RADIUS Attributes for Tunnel Protocol Support, IETF, 2000, Available at: http://tools.ietf.org/html/rfc2868 (accessed 19 September 2012).
УДК 004.45
АЛГОРИТМ ЭФФЕКТИВНОГО РАЗМЕЩЕНИЯ ПРОГРАММ НА РЕСУРСАХ МНОГОПРОЦЕССОРНЫХ ВЫЧИСЛИТЕЛЬНЫХ СИСТЕМ
Е.А. Киселёв, стажер-исследователь; О.С. Аладышев, к.т.н., зав. отделом
(Межведомственный суперкомпьютерный центр РАН, Ленинский просп., 32а, г. Москва, 119991, Россия, [email protected], [email protected])
В статье рассмотрен новый подход к решению задачи эффективного размещения параллельной программы на ресурсах многопроцессорной вычислительной системы, основанный на использовании параллельной реализации алгоритма моделирования отжига. Предложена модель многопроцессорной вычислительной системы, учитывающей неоднородность вычислительных и коммуникационных ресурсов, а также модель параллельной программы, основанная на учете типовых схем передачи данных между ветвями программ. Для повышения качества размещения ветвей параллельной программы на ресурсах многопроцессорной вычислительной системы предложена параллельная реализация алгоритма моделирования отжига. Проведена оценка влияния конкуренции в сети на время выполнения параллельной программы.
Ключевые слова: граф вычислительной системы, информационный граф параллельной программы, алгоритмы эффективного размещения программ, алгоритм моделирования отжига.
AN EFFICIENT APPLICATION MAPPING ALGORITHM FOR MULTIPROCESSOR SYSTEMS
Kiselev E.A, Probationer-researcher; Aladyshev O.S., Ph.D., Head of Department (Joint Supercomputer Center of RAS, 32a, Leninsky Av., Moscow, 119991, Russia, [email protected], [email protected])
Аbstract. This article describes a new application mapping approach for multiprocessor systems based on simulated annealing algorithm. The authors propose a model of multiprocessor system, which takes into account the heterogeneity of computing and communication resources, as well as a model of a parallel program based on the identification of typical communication operations between theprogram threads.The authors propose a parallel implementation of the algorithm simulation annealing to improve the quality of application mapping on the resources of multiprocessor computer system.The authors investigated the effect of competition in the network at the application work time.
Keywords: system graph, application graph, parallel algorithms, application mapping, simulated annealing algorithm.
В современных многопроцессорных вычислительных системах (МВС) время выполнения параллельной программы может существенно зависеть от того, как ее отдельные ветви размещены по вычислительным узлам (ВУ) и процессорам [1].
Значительное влияние на время выполнения параллельной программы оказывает конкуренция между взаимодействующими ветвями за коммуникационный ресурс или память ВУ [2]. В качестве примера можно рассмотреть схемы размещения
ветвей параллельных программ CG (рис. 1а) и SP (рис. 1б) из тестового пакета NAS Parallel Benchmarks [3] на процессорах ВУ, при которых через коммутатор выполняется 8 одновременных пересылок. Увеличение числа конкурирующих пересылок через коммутатор приводит к значительному увеличению времени выполнения программ CG (рис. 2а) и SP (рис. 2б). В работе [2] отмечается, что конкуренция между ветвями параллельной программы приводит к увеличению латентности и уменьшению пропускной способности коммуникационной среды МВС.
Анализ программ, выполняемых на программно-техническом комплексе Санкт-Петербургского государственного политехнического университета (ПТК СПГПУ) и вычислительных ресурсах Межведомственного суперкомпьютерного центра Российской академии наук (МСЦ РАН), показал, что в параллельных алгоритмах используются стандартные схемы коммуникационных обменов (коммуникационные шаблоны). Под коммуникационным шаблоном будем понимать схему обмена данными между параллельными ветвями программы заданного этапа алгоритма. Как правило, параллельная программа использует фиксированный набор коммуникационных шаблонов, которые повторяются в процессе ее выполнения. Учет коммуникационных шаблонов при распределении ветвей параллельной программы
по процессорам МВС позволяет выявлять конкуренцию за коммуникационные ресурсы на различных этапах выполнения программы.
Для формализации оптимизационной задачи по минимизации времени выполнения параллельного приложения построим математические модели параллельной программы и МВС.
Модель параллельной программы
Коммуникационный шаблон может быть представлен в виде графа 1=(У, Е), вершины Vкоторого соответствуют ветвям программы, а ребра Е представляют информационные связи между ними. На множестве V зададим отображения:
т: V ^ Т, где Т соответствует различным типам вычислительных устройств, а функция ) = Т, Т £ Т ставит в соответствие вершине у, графа I тип вычислительного устройства, на котором может быть запущена ветвь с номером Л;
р: V ^ М+; функция р(у,) ставит в соответствие вершине у, графа I количество вычислительных операций, выполненных ветвью с номером Л На множестве ребер Е заданы отображения: 5: Е ^ Ъ+ ставит в соответствие ребру вц графа I объем данных, переданный между ветвями с номерами I и ] за время выполнения коммуникационного шаблона;
Тест CG NPB
Тест SP NPB
200
0)
180
га К 160
о 1- 140
(Е 120
0) 100
т
с 80
60
CÛ (Е 40
S 0) 20
а m 0
Рис. 1. Схема размещения ветвей по процессорам ВУ при 8 конкурирующих пересылках Тест CG ОТВ Тест SP ОТВ
Количество конкурирующих перессылок между процессорами
а)
620 600 580 560 540 520 500 480 460
2 3 4 5 6 7 8
Количество конкурирующих перессылок между процессорами
б)
Рис. 2. Изменение времени выполнения на 16 процессорах при увеличении числа конкурирующих пересылок
1
2
3
4
5
6
7
8
1
V: Е ^ Ъ+ ставит в соответствие ребру в у графа I число операций приема/передачи данных между ветвями с номерами / и ] за время выполнения параллельной программы.
Параллельная программа, использующая 5 отличных друг от друга коммуникационных шаблонов, может быть представлена в виде объединения графов:
1=11и12и — и1/=(У1иУ2и ... иУ/;
Е1иЕ2и ... иЕД (1)
Каждый шаблон 15 параллельной программы может быть описан с помощью матрицы смежности М/. Элемент ву матрицы М? соответствует ребру графа программы, отражающему информационную связь между ветвями у, и у. Если ву=0, то в коммуникационном шаблоне 1/ ветви V, и у не взаимодействуют друг с другом. Приведем пример матрицы М/ для коммуникационного шаблона «кольцо» информационного графа программы:
v0 v1 v2 v3 v9 vl0 vll
vo 0 e0,l 0 0 0 0 e0,ll
v1 e0,l 0 el,2 0 . . 0 0 0
v2 0 el,2 0 e2,3 0 0 0
v3 0 0 e2,3 0 0 0 0
V9 0 0 0 0 0 e9,l0 0
v10 0 0 0 0 . ■ e9,l0 0 el0,ll
vll e0,ll 0 0 0 0 el0,ll 0
На рисунке 3 представлены коммуникационные шаблоны тестов NAS Parallel Benchmarks BT и CG в виде матриц смежности. Номера строк и столбцов матриц соответствуют номерам MPI-процессов, а закрашенные элементы матриц показывают наличие или отсутствие коммуникационного обмена между этими процессами.
Для автоматизации процесса построения информационного графа и выделения коммуникационных шаблонов использовалось программное средство IGtrace [1].
Модель многопроцессорной вычислительной системы
Структура МВС может быть представлена в виде дерева, содержащего M уровней. Каждый уровень образован отдельным видом вычислительных компонентов МВС (телекоммуникационные шкафы, вычислительные узлы и др.), которые объединены линиями связи своего уровня. Для каждого узла дерева определен граф ВС, отражающий структуру коммуникационной среды дочерних элементов следующего уровня. Обозначим Sj = (С- ,Ц-) граф ВС с номером j на уровне иерархии i (рис. 4а).
На рисунке 4б приведен пример графа МВС, который отражает три уровня иерархии коммуникационной среды и включает несколько типов вычислительных устройств Т = {Tlt Т2}. В качестве
Рис. 4. Примеры дерева коммуникационной среды (а) и графа МВС (б)
вычислительного устройства типа T может выступать универсальный процессор, а вычислительного устройства типа T2 - графический процессор. МВС состоит из двух ВУ, каждый из которых содержит от двух до четырех многоядерных процессоров. Первый уровень коммуникационной среды, представленный графом S°, образован низколатентной сетью (например InfiniBand), через которую взаимодействуют ВУ. На втором уровне иерархии, представленном графами S^ и S|, для выполнения обменных операций между процессорами (ЦП) используется шина. Третий уровень образован вычислительными ядрами процессоров и представлен графами S1, S|, ..., S|. Обмен данными между ядрами процессоров осуществляется через общую память.
Приведенный на рисунке 4б граф МВС может быть представлен в виде следующей матрицы смежности Ms:
C1 c2 c3 C4 cl° cll cl 2 cl 3
cl 0 12 12 0 1° 1° 1° 1°
c2 12 0 0 12 1° 1° 1° 1°
c3 12 0 0 12 1° 1° 1° 1°
c4 0 12 44 12 44 0 . 1° 1l,2 1° 1° 1°
cll 1° 1° 1° 1° 12 n°,ll 0 0 12
cl 2 1° 1° 1° 1° 12 0 0 12 П2Д3
cl3 1° 1° 1° 1° 0 12 12 П2ДЗ 0
Элемент ¿у матрицы М5 соответствует ребру графа ВС, соединяющему вычислительные устройства с, и с на уровне иерархии k. Если элемент ¿У = 0, значит, прямой линии связи между вычислительными элементами с, и с не существует.
На множестве вершин Су графа 5у зададим отображения:
т: С ^ Т, где Т соответствует различным типам вычислительных устройств, а функция т(ср) ставит в соответствие вершине ср £ Су тип Ту вычислительного ядра р;
р: С ^ 2+; функция р(ср) ставит в соответствие вершине ср £ Су производительность вычислительного ядра р.
Ребра ¿р - это линии связи, соединяющие между собой элементы графа то есть ¿у £ ¿р: ¿у = (с;, су), где с;, Су £ Ср. На множестве ребер Ьк заданы отображения:
р: ¿р ^ 2+; функция у) ставит в соответствие ребру ¿у значение пропускной способности линии связи между вычислительными элементами с номерами / иу на уровне к,
V: ¿р ^ 2+; функция "^¿у) ставит в соответствие ребру ¿у значение латентности линии связи между вычислительными элементами с номерами I и у на уровне ^
Для автоматизации процесса построения матрицы Ыц могут использоваться программные средства из [4]. С помощью тестовой программы необходимо измерить латентность и пропускную способность сети между каждой парой вычислительных устройств и воспользоваться программой визуализации для выделения уровней иерархии коммуникационной среды на основе полученных результатов тестирования [4].
Задача эффективного размещения программ на ресурсах МВС
Пусть задан граф вычислительной системы S=(C, Ь), содержащий k различных типов вычислительных устройств. На множестве вершин С графа ВС заданы отображения т: С ^ Т, |Т| = к, р: С ^ М+ и ц: С ^ 2+. На множестве ребер ¿ заданы отображения р: ¿ ^2+ и ¿: ¿ ^2+.
Информационный граф 1=(У, Е) параллельной программы, состоящей из 5 коммуникационных шаблонов, представлен набором графов {/х, /2,..., 4}, для которых выполняется условие (1). На множестве вершин V заданы отображения т: V ^ Т, |Т| = к, V ^2+ и р: V ^ Е+. На мно-
жестве ребер E заданы отображения 5: Е и
V: Е ^ 2+.
Отображение информационного графа параллельной программы 1=(У, E) на структуру вычислительной системы, заданной графом Ь), обозначается как ф: V ^ С и представляется матрицей Хф = Ху: I е V, у е С, где Ху = 1, если ) = Су, и Ху = 0, если ) Ф Су.
Время выполнения параллельной программы (Тр) включает в себя время выполнения вычислительных операций наиболее длительной ветви программы (Тса1с), время выполнения коммуникационных обменов (Тсотт) между ветвями программы и время, затраченное на синхронизацию ветвей программы (Ттс). Таким образом, время выполнения параллельной программы можно представить в виде суммы:
Тр Тса1с + Тсотт + Т$упс. (2)
Для уменьшения значения Тр необходимо уменьшить значения слагаемых (2). Значение Тхупс в большей степени зависит от того, как реализован алгоритм программы, поэтому в дальнейшем его можно не учитывать и принять за константу Т!упс= =сош1 Значение Тса1с может быть уменьшено путем размещения ветвей программы на более производительных вычислительных устройствах. Время выполнения обменных операций Тсотт между ветвями программы зависит от характеристик коммуникационного оборудования и памяти ВС.
С учетом введенных обозначений задача размещения программы на вычислительных ресурсах многопроцессорной вычислительной системы может быть сформулирована следующим образом. Требуется найти такое отображение ф: I ^ 5, при котором
Тса1с + Тсотт ^ (3)
Время Тсагс;т выполнения ) вычислительных операций типа т^) ветвью V; программы на вычислительном устройстве ст типа т(ст) с производительностью р(ст) можно определить следующим образом:
рЫ
Р (Cm )!
[0, ф(У, ) *Т(С, ), [1, Т (Vi ) =T(Cm ).
T = Т • x • -
calcim im im
т=
(4)
Тогда время выполнения вычислительных операций наиболее длительной ветви параллельной программы на наборе вычислительных устройств может быть определено как
P (v )
Tcaic = mAx{T,m • X,m —Mr}, v,. e F, cm e c, P ( Cm )
f 0, t(v, ) фт(с ),
(5)
"" [1, т (у,) = т(с„).
Пусть вершины V;, Vу е V информационного графа программы отображены на вершины
ст, сп е С графа ВС соответственно. Обозначим Ьтп множество ребер, формирующих кратчайший путь от вершины ст к вершине сп. Тогда время выполнения обменных операций Тсотт1. между ветвями V, и Vj можно вычислить по формуле
Tcomnij = Xim ■ Xjn ' S V ) 'V {¡pi ) +
. (6)
Время Тс'отт выполнения коммуникационного шаблона 5]с графом 1? = (V, Е?) равно максимальной по длительности операции приема/передачи из данного шаблона:
г \\Л
TLm = maX \Хш ■ Xjn • S
V (ej ) ^ (k ) +
M
P (l>k ).
Уеу е Еч, Я е [1; 5]. (7)
Поскольку коммуникационные шаблоны выполняются последовательно, время Тсотт выполнения всех коммуникационных операций можно вычислить следующим образом:
т = у т =
сотт / , сотт
= S max iXm ' X» '
z
qe[1;s]
'(e» ) 'V ( )■
P(lM )
(8)
Подставляя (5) и (8) в (3), получим:
p(v ) 1,
F ( X ) =
Ф/ max i Tn • Xm
P(Cm)
+ XmAX ixto • xj„ • X
v( e ) •vi (p )■
e )
(9)
P((* )
С )
1, г (v,. ) = T {cÑ )
•^min,
Í0, T (v, ) Ф T (c, ) v. e V, с e C, t,.„ = \ K '/ K l{ и Ve e Eq.
Алгоритмы размещения параллельных программ на ресурсах МВС
В современных системах управления вычислительными ресурсами и заданиями (СУРЗ), к числу которых можно отнести СУППЗ, Slurm, Cleo и Torque, параллельная программа пользователя рассматривается как совокупность независимо выполняемых ветвей. Каждая ветвь программы распределяется на отдельный процессор или вычислительное ядро в соответствии с одним из реализуемых СУРЗ алгоритмов планирования:
PAL (Processor Allocation Linear) - осуществляется выбор первых M свободных процессоров (вычислительных ядер);
PAR (Processor Allocation Random) - случайным образом выбирает M процессоров (вычислительных ядер) из числа свободных;
TMRR (Task Map Round Robin) - распределяет ветви программы по процессорам системы из N вычислительных узлов в следующем порядке:
Ь, E L
L,- EL
pk
U E L
первая ветвь программы размещается на первом процессоре первого по порядку выделенного заданию вычислительного узла (ВУ), вторая - на первом процессоре второго ВУ, ветвь N - на первом процессоре ВУ N, ветвь N+1 - на втором процессоре первого ВУ и т.д.
Перечисленные алгоритмы не учитывают неоднородность вычислительной и коммуникационной инфраструктур МВС, а также порядок взаимодействия между ветвями и интенсивность выполнения обменных операций.
Задача эффективного размещения ветвей параллельной программы на процессорах МВС является NP-полной. Для ее решения сегодня существует несколько классов алгоритмов. Часть этих алгоритмов являются эвристическими, то есть дающими лишь приближенное решение задачи, часть - точными. В работе [5] отмечается целесообразность применения точных алгоритмов только для систем с малым числом процессоров, не превышающим 10. Обзор существующих эвристических алгоритмов размещения параллельных программ показал, что наиболее предпочтительными по точности получаемого результата являются алгоритмы, основанные на методе моделирования отжига (алгоритмы имитации отжига).
В общем виде алгоритм имитации отжига для решения задачи отображения информационного графа программы на граф ВС, заданных матрицами MI и MS соответственно, можно описать следующим образом.
Шаг 1. Установить начальную температуру Т = Т0 и значение счетчика итераций t равным 0.
Шаг 2. Выбрать начальное произвольное отображение X9 (алгоритмом PAL или PAR) и вычислить значение F(XV) функционала (9).
Шаг 3. Выбрать произвольную вершину v, информационного графа.
Шаг 4. Поместить вершину v, на вершину c¿ графа ВС. Вычислить новое значение F'C^) функционала (9).
Шаг 5. Вычислить приращение функционала AF(X4) = F(X„) - F'fo). Если AFfo) < 0, вершина v, закрепляется за вершиной c¿. Если ) > 0, закрепление вершины v, за вершиной
cj осуществляется с вероятностью е T .
Шаг 6. Если все вершины cj были пройдены, понизить температуру T по закону Т = а • Т0, где а - параметр, влияющий на скорость понижения температуры, и перейти к шагу 3. Если зафиксирован выход функционала F(A^) на стационарное значение или текущее значение T является конечным, завершить работу алгоритма. В остальных случаях увеличить значение j на 1 и перейти к шагу 4.
Обозначим как , М5, Т0) приведенный
алгоритм отображения вершин информационного
графа I на вершины графа ВС S с заданными начальной и конечной температурами соответственно.
Эффективность (время выполнения и точность) алгоритма 5Л(М;, М5, Т0) зависит от начальной температуры T0, предельного числа итераций (значение параметра а), размера области сходимости (числа последовательных итераций, в течение которых значение функционала остается неизменным). При увеличении указанных параметров возрастают точность и время выполнения алгоритма.
Параллельная реализация алгоритма имитации отжига
Одним из подходов к уменьшению времени работы алгоритма 5Л(М;, Т0) является его распараллеливание. В настоящее время известно несколько способов распараллеливания алгоритма имитации отжига.
1. Параллельный независимый запуск алгоритма имитации отжига на нескольких узлах с различными начальными приближениями. В качестве результата выбирается лучшее решение из найденных на всех узлах. Скорость поиска решений и их качество практически не отличаются от классического последовательного алгоритма.
2. Параллельный запуск алгоритма имитации отжига с периодическим обменом информацией о полученных решениях, при этом узлы вычислительной системы производят рестарт имитации отжига из найденных решений с наименьшим значением целевой функции. Такой способ универсален и приемлем для любых задач оптимизации, но требует больших затрат на обмен данными.
3. Разбиение пространства решений на области и поиск решения в каждой области отдельно с последующим объединением результатов поиска и выбором из них лучшего решения. Такой способ может эффективно применяться на широком классе архитектур, но требует разработки способа разбиения на области для каждой решаемой задачи.
Первые два способа распараллеливания алгоритма имитации отжига предполагают, что на каждом из вычислительных узлов доступна своя копия графа ВС и информационного графа программы. Данное условие может затруднять реализацию предложенных подходов для графов параллельной программы и ВС, которые невозможно целиком разместить в памяти одного ВУ. Поэтому для распараллеливания алгоритма имитации отжига был выбран способ, основанный на разбиении пространства поиска решений на независимые области.
Обозначим М; матрицу смежности информационного графа программы размера т, а М5 -матрицу смежности графа ВС размера п, где т << п. Выполним декомпозицию графа ВС по ВУ
путем разбиения матрицы Ms на k частей. Обозначим , i £ [1; fe], часть матрицы Ms, размещенную в памяти i-го ВУ.
Параллельная реализация алгоритма имитации отжига Р5Л(М;, Ms, fe, Гц) для k ВУ может быть описана следующим образом.
Шаг 1. Выполнить в цикле.
Шаг 1.1. Сформировать новое допустимое сочетание (C')¡ элементов матрицы смежности графа ВС Ms. Допустимым является сочетание, соответствующее назначению ветви параллельной программы на один процессор или вычислительное ядро.
Шаг 1.2. Передать значения элементов (С' )¡ очередному ВУ i в качестве элементов матрицы M¿ для выполнения алгоритма моделирования отжига.
Шаг 1.3. На каждом процессоре i-го ВУ выполнить алгоритм имитации отжига , М|, Г0).
Шаг 1.4. Для каждого ВУ выбрать лучшее решение из найденных на всех процессорах.
Шаг 1.5. Выбрать лучшее решение из найденных на всех ВУ.
Шаг 2. Если все сочетания рассмотрены, завершить выполнение алгоритма и принять в качестве искомого лучшее из найденных в процессе выполнения алгоритма решение. Иначе перейти на шаг 1 алгоритма.
Экспериментальные результаты
Для оценки эффективности разработанного алгоритма было выполнено размещение параллельных программ из тестового пакета NAS Parallel Benchmarks на ресурсах M^ с сетевой топологией «двумерная решетка» и состоящей из 64 процессоров. Запуск тестов осуществлялся на 8, 16, 32 и 64 процессорах. Для каждого теста с помощью функционала (9) вычислялось время выполнения коммуникационных обменов между ветвями после их размещения на процессорах с помощью алгоритмов PAL и PAR. Полученные схемы размещений улучшались с помощью разработанного алгоритма PSA, и вычислялось текущее время выполнения коммуникационных обменов. На рисунке 5 представлена диаграмма изменения времени выполнения тестов NAS Parallel Benchmarks и двух реализаций параллельного алгоритма умножения разреженной матрицы на вектор (MV_ALL и MV_Orig) после улучшения схем размещения PAL (PAL+PSA) и PAR (PAR+PSA). Среднее время построения новой схемы размещения ветвей на процессорах M^ с помощью алгоритма PSA не превышало 10 % от времени выполнения тестовой программы.
Как видно из рисунка 5, для двух тестов NAS Parallel Benchmarks (EP и FT) и программы
2-,
В
11
II
£ & <$ « <>> ^ ^ ^ ¿¡ь
'sa par + psa ¿ é^ &
i par + psa □ par + psa
Параллельные программы
Рис. 5. Сокращение времени выполнения параллельных программ после улучшения схем размещения PAL и PAR алгоритмом PSA
М^ЛЬЬ не удалось уменьшить время выполнения. Это объясняется тем, что в первых двух программах объем вычислений преобладает над количеством коммуникационных операций, а в третьей реализован обмен каждый-с-каждым. Для остальных программ время выполнения удалось сократить от 10 до 43 %.
Предложенный алгоритм отображения графа программы на граф ВС был реализован на языке С++ в виде программного модуля, который в дальнейшем может быть интегрирован в СУРЗ МВС. Запуск алгоритма осуществлялся с использованием программного комплекса «Пирамида» [6] на вычислительных ресурсах ПТК СПГПУ и МСЦ РАН.
В заключение отметим следующее. В МВС время выполнения параллельной программы зависит от того, как ее отдельные ветви размещены по вычислительным узлам и процессорам. Значительное влияние на время выполнения параллельной программы, а также латентность и пропускную способность коммуникационной среды оказывает конкуренция между взаимодействующими ветвями за коммуникационный ресурс.
Для уменьшения времени выполнения параллельной программы и сокращения конкуренции в сети предложен подход, основанный на выявлении и учете типовых коммуникационных операций в программе (коммуникационных шаблонов) при ее размещении на ресурсах МВС. Разработан параллельный алгоритм размещения программ на ресурсах МВС, основанный на методе моделирования отжига.
Результаты проведенных экспериментов показали существенное сокращение времени выполнения параллельных программ и целесообразность применения разработанного подхода и алгоритма для решения задачи эффективного размещения параллельной программы на ресурсах МВС. Программная реализация предложенного алгоритма размещения ветвей параллельной программы на
30
SÍ25
20
10
5
0
вычислительных ресурсах МВС может быть интегрирована в СУРЗ МВС.
Литература
1. Киселев Е.А. Построение информационного графа параллельной программы на основе данных профилирования и трассировки // Научный сервис в сети Интернет: экзафлопсное будущее: тр. Междунар. суперкомп. конф. (19-24 сентября 2011, г. Новороссийск). М.: Изд-во МГУ, 2011. С. 541-546.
2. Chou Chen-Ling, MarculescuRadu. Contention-aware Application Mapping for Network-on-Chip Communication Architectures. Computer Design, 2008. ICCD 2008. IEEE Intern. Conf. 2008.
3. NAS Parallel Benchmarks/ URL: http://www.nas.nasa. gov/publications/npb.html (дата обращения: 10.09.2012).
4. Аладышев О.С., Киселев Е.А., Корнеев В.В., Шабанов Б.М. Программные средства построения коммуникационной схемы многопроцессорной вычислительной системы. Высокопроизводительные вычислительные системы: матер. VII Междунар. науч. молодеж. школы. Таганрог: Изд-во ТТИ ЮФУ, 2010. С. 76-79.
5. Greening D.R. Parallel simulated annealing techniques, Emergent computation. 1991, pp. 293-306.
6. Баранов А.В., Киселев А.В., Киселев Е.А., Корнеев В.В., Семенов Д.В. Программный комплекс «Пирамида» организации параллельных вычислений с распараллеливанием по
данным // Научный сервис в сети Интернет: суперкомпьютерные центры и задачи: тр. Междунар. суперкомп. конф. (20-25 сентября 2010, г. Новороссийск). М.: Изд-во МГУ, 2010. С. 299-302.
References
1. Kiselev E.A., Trudy Mezhdunar. superkomp. konf. «Nauchny servis v seti Internet: ekzaflopsnoe buduschee» [Proc. of the Intern. Supercomp. Conf. «Scientific services in the Internet: exascale future»], Moscow, MSU, 2011, pp. 541-546.
2. Chou Chen-Ling, Marculescu Radu, IEEE Intern. Conf. ««Computer Design», 2008, pp. 5-10.
3. NAS Parallel Benchmarks, Available at: http://www.nas. nasa.gov/publications/npb.html (accessed 10 September 2012).
4. Aladyshev O.S., Kiselev E.A., Korneev V.V., Shaba-nov B.M., Materialy 7 Mezhdunar. Nauch. Molodezhnoy Shkoly [Proc. of the 7th Intern. Workshop on Modern School], Taganrog, Taganrog Technolog. Inst. of Southern Federal Univ., 2010, pp. 76-79.
5. Greening D.R., Emergent computation, 1991, pp. 293-306.
6. Baranov A.V., Kiselev A.V., Kiselev E.A., Korneev V.V., Semenov D.V., Trudy Mezhdunar. Superkomp. Konf. «Nauchny servis v seti Internet: superkomp. centry i zadachi» [Proc. of the Intern. Supercomp. Conf. «Scientific services in the Internet: supercomputing centers and objectives»], Moscow, MSU, 2010, pp. 299-302.
УДК 004.272, 004.31
НАСТРОЙКА ВЫПОЛНЕНИЯ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ
П.Н. Телегин, к.т.н., зав. отделом (Межведомственный суперкомпьютерный центр РАН, Ленинский просп., 32а, г. Москва, 119991, Россия, [email protected])
Статья посвящена разработке методов оптимизации настройки выполнения программ для параллельных вычислительных систем с распределенной памятью (в данном случае на выбранном оборудовании). Настройка выполнения - это выбор параметров для параллельной программы с учетом специфики используемого оборудования. Под параметрами подразумеваются схема параллельного выполнения программы и распределение работы между процессорами (ядрами). В статье рассматривается выполнение программы, над которой предварительно проведена параллельная декомпозиция и выделены псевдолинейные участки, представляющие собой простые операции, структуры ветвления, циклы и неструктурированные участки с одним входом и выходом. Описаны декомпозиция программы и ее выполнение в потоковой, динамической и статической схемах. Исследованы три способа оценки времени работы программных фрагментов - предсказание времени работы, профилирование, оценка пользователем. Описан эффект усиления при предсказании времени работы программных фрагментов. Отношение времени коммуникаций к времени операций в процессорах велико, поэтому требуется тщательный анализ программы для принятия решения о ее параллельном выполнении. Исследуется планирование параллельных циклов. Приводятся формулы оценки эффективности выполнения циклов в разных схемах для разных случаев множеств передаваемых данных. Описанные методы оценки производительности реализованы в системе автоматизированного распараллеливания Ratio. Приведено сравнение предсказанного и реального ускорений программы интегрирования. Параллельная программа, использующая динамическую модель, была построена с помощью системы автоматизированного распараллеливания Ratio и выполнялась на суперкомпьютере МВС-100К.
Ключевые слова: параллельная программа, эффективность выполнения программ, настройка программ, модель программы, автоматическое распараллеливание, кластер, планирование, схема программы, декомпозиция программы.
TUNING EXECUTION OF PARALLEL PROGRAMS
Telegin P.N., Ph.D., Head of Department (Joint Supercomputer Center of RAS, 32a, Leninsky Av., Moscow, 119991, Russia, [email protected]) Аbstract. The article describes issues related to development of optimization methods for tuning programs for distributed memory parallel computers. Optimization tuning of parallel programs for given hardware is discussed. Tuning means choice