Многоуровневые алгоритмы отображения параллельных МР1-программ на вычислительные кластеры

МНОГОУРОВНЕВЫЕ АЛГОРИТМЫ ОТОБРАЖЕНИЯ ПАРАЛЛЕЛЬНЫХ МР1-ПРОГРАММ НА ВЫЧИСЛИТЕЛЬНЫЕ КЛАСТЕРЫ

A.A. Пазников, М.Г. Курносов, М.С. Куприянов*

Сибирский государственный университет телекоммуникаций и информатики 630102, Новосибирск, Россия, * Санкт-Петербургский государственный электротехнический университет „ЛЭТИ" им. В. И. Ульянова (Ленина) 197376, Санкт-Петербург, Россия.

УДК 004.272

В работе рассматривается задача отображения параллельных MPI-программ на иерархические кластерные вычислительные системы (ВС). Требуется по заданному информационному графу программы распределить ее процессы по процессорным ядрам системы с целью минимизации накладных расходов на межмашинные обмены. Для приближенного решения задачи предложены алгоритмы, основанные на эвристических методах разбиения взвешенных графов. Оптимизация достигается за счет распределения интенсивно обменивающихся ветвей параллельной программы по процессорным ядрам, связанным быстрыми каналами связи. В алгоритмах учитываются все иерархические уровни коммуникационной сети ВС. Приводятся результаты экспериментов по отображению MPI-программ из пакетов SPEC MPI и NAS Parallel Benchmarks в пространственно-распределенную мультикластерную вычислительную систему.

Ключевые слова: отображение параллельных программ, MPI, распределенные вычислительные системы, кластерные вычислительные системы.

In this paper multilevel algorithms for mapping parallel programs to hierarchical distributed computer systems (CS) are proposed. They minimize execution time by mapping intensively communicating processes to processor cores connected with high-performance communication channels. The algorithms are based on graph partitioning heuristics and take into account all hierarchical levels of CS. Results of experimental evaluation of the algorithms on the mapping SPEC MPI and NAS Parallel Benchmarks to the real distributed CS are presented.

Key words: task mapping, task allocation, MPI, computer clusters.

Введение. Пространственно-распределенная вычислительная система (ВС) — это совокупность территориально рассредоточенных вычислительных подсистем (вычислительных кластеров и/или проприетарных систем с массовым параллелизмом), логически объединенных в единую систему для решения на ней параллельных задач |1|. К классу про-странствепно-распределепных ВС относятся мультиклаетерные и GRID-еиетемы, Параллельные программы для таких ВС разрабатываются в модели передачи сообщений, как

1Работа выполнена при поддержке РФФИ (гранты № 15-07-02693, 15-07- 00653), а также Министерства образования и науки Российской Федерации в рамках договора № 02.G25.31.0058 от 12.02.2013 г.

правило, с использованием библиотек стандарта MPI (РАСХ [2], MCMPI [3], Stampi [4], NumGRID [5]) или специализированных пакетов распределенных вычислений (X-Com [6], BOINC [7]).

Одной из важных проблем организации функционирования проетранетвенно-раепре-деленных ВС является оптимизация отображения на них параллельных программ (task mapping, task allocation, task assignment). Под оптимальным отображением понимается такое распределение ветвей параллельной программы по процессорным ядрам ВС, при котором достигается минимум накладных расходов на межмашинные обмены информацией.

Коммуникационные среды пространственно-распределенных ВС имеют иерархическую организацию. Как правило, в них можно выделить минимум три уровня: первый уровень — сеть связи между подсистемами (кластерами); второй уровень — сеть связи между вычислительными узлами отдельной подсистемы (кластера) ; третий уровень — общая память вычислительных узлов. Время передачи информации между процессорными ядрами существенно зависит от их размещения в системе [8].

Существующие библиотеки MPI (MPICH2, Open MPI, Intel MPI и др.) реализуют алгоритмы отображения параллельных программ с учетом только двух уровней коммуникационной сети — сети межузловых связей и общей памяти вычислительных узлов. Например, пакет hwloc [9, 10], который входит в библиотеки MPICH2 и Open MPI, использует информацию об иерархической структуре распределенных ВС и реализует отображение при помощи библиотеки Scotch [11] разбиения графов.

Часть существующих работ направлена на вложение параллельных программ в фиксированные структуры коммуникационных сред ВС, Например, в работах [12, 13, 14] предложены алгоритмы вложения программ в системы, имеющие тороидальную структуру коммуникационной среды, В работах [15] и [16] оптимизируется вложение регулярных и нерегулярных информационных графов в структуры, представленные двумерными и трехмерными решетками и торами, В статье [17] предлагается специализированный алгоритм TreeMatch вложения, ориентированный на ВС с NUMA-узлами,

Некоторые из предложенных алгоритмов [18, 19] направлены на оптимизацию вложения MPI-программ лишь определенного класса.

Отдельные работы направлены на оптимизацию вложения виртуальных MPI-топологий, В работах [20, 21] рассматривается задача вложения виртуальных MPI-топологий в SMP-кластеры, Авторами работы [22] предлагаются подходы для повышения эффективности построения виртуальных топологий стандарта MPI, В статье [23] предлагаются алгоритмы вложения виртуальных MPI-топологий на основе анализа информационного графа параллельной программы и структуры системы, однако в нем не учитываются архитектурные особенности мультиклаетерных систем,

В работе [24] исследуются универсальные эвристические алгоритмы вложения в гетерогенные системы, проводится сравнение производительности алгоритмов и их масштабируемости на болынемасштабпых системах, В качестве показателей эффективности используется средняя длина пути (в смысле теории графов), пройденная сообщением, и минимальное время передачи сообщения,

В большей части работ при оптимизации вложения учитываются только дифференцированные обмены (point-to-point). Авторами статьи [25] предлагается подход, позволяющий учитывать коллективные операции при вложении. Однако данный подход ограничен в применении, так как требует информации об алгоритмах реализации коллективных обме-

нов, В статье [26] рассматривается подход к оптимизации вложения с целью оптимизации коллективных операций в тороидальной сети системы Blue Gene/P и Blue Gene/Q,

Немаловажным является то, как в целевой функции (критерий оптимизации) учитывается интенсивность взаимодействия параллельных ветвей. Время выполнения программ с большим числом информационных обменов небольшого размера (это характерно для программ на языках семейства PGAS — Partition Global Address Space) существенно зависит от накладных расходов, связанных с латентностью при передаче информационных сообщений, В алгоритмах отображения таких программ целесообразно учитывать количество обменов, а не суммарный размер сообщений. Данное обстоятельство в недостаточной степени учитывается в существующих работах.

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

В данной работе предлагаются эвристические алгоритмы отображения MPI-программ в пространственно-распределенные ВС, В предложенных алгоритмах учитываются все иерархические уровни коммуникационной сети ВС,

Отображение параллельных программ на кластерные ВС. Пусть имеется пространственно-распределенная ВС, состоящая из H подсистем. Коммуникационная среда системы имеет иерархическую организацию и может быть представлена в виде дерева, содержащего L уровней.

Рассмотрим отображение параллельной программы на подсистему из N элементарных машин (ЭМ), рис, 1, Для параллельной программы системой управления ресурсами выделяется подсистема (на рис, 1 обозначена серым цветом), которая также также имеет иерархическую структуру. Введем обозначения: щ — количество элементов на уровне l € {1,2,...,L}; nlk — количество прямых дочерних узл ов элемента k € {1,2,... ,nl}, находящегося на уровне l; clk — количество ЭМ, принадлежащих потомкам данного элемента. Параллельная программа, созданная в модели передачи сообщений, может быть представлена информационным графом G = (V,E), где V = {1,2,... ,N} — множество ветвей параллельной программы, a E С V х V — множество информационно-логических связей между ветвями. Обозначим через dij вес ребра (i,j) € E, отражающий интенсивность обменов данными между ветвями inj при выполнении программы, В этой работе рассмотрено два способа задания весов ребер: 1) dij — суммарный объем данных, передаваемых между ветвями i и j за время выполнения программы ([dj] = байт), 2) dij — количество переданных сообщений между ветвями i и j. Заметим, что вес dij ребра может отражать как абсолютные, так и относительные объем или количество информационных обменов. Эти значения могут быть получены путем профилирования параллельной программы.

Отображение параллельной программы на структуру ВС задается значениями переменных Xij € {0,1} Xij = 1, если ветвь i € V назначена на процессорное ядро j € {1,2,... ,N}, в противном случае xij = 0,

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

Рис. 1. Пример подсистемы ЭМ для решения параллельной задачи ранга N = 16

ся время Т выполнения информационных обменов. Оно определяется максимальным из времен выполнения обменов ветвями программы.

Обозначим ¿(г,],р, д) — суммарное время взаимодействий между ветвями %,] Е V, назначенными на процессорные ядра р ид соответственно. Тогда

{МММ

Т

\ 3 = 1 Р= 1 9=1

Значение функции ¿(г,],р,д) может быть получено согласно различным моделям дифференцированных обменов (Ь^Р, 1^СР, Носкпеу), Например, в случае модифицированной модели Хокни (Я. Носкпеу) функция ¿принимает вид ¿(г,],р,д) = /Ь(р,д), оде Ь(р,д) — пропускная способность канала связи между процессорными ядрами р ид.

Сформулируем задачу оптимального отображения параллельной программы па ВС с иерархической организацией:

Т (X) = тах

г€У

{МММ л

53 ХрХ39¿(

3 = 1 р=1 9=1 )

^ тт

при ограничениях

М

]>> = 1, г = 1,2,... ,М,

3=1

Рис. 2. Отображенеие программы Parallel Ocean Problem (POP) на подсистему из N = 32 ЭМ методом HierarchicTaskMap

N

^ Хц = 1,7 = 1,2,...

г=1

Хц € {0,1}, i € €{1,2,...,^}.

Ограничения (2), (4) гарантируют назначение каждой ветви параллельной программы на единственную ЭМ. Ограничение (3) обеспечивает назначение на машину одной ветви.

Задача (1)-(4) относится к дискретной оптимизации и является трудноразрешимой. Рассмотрим приближенный метод ее решения.

Многоуровневые алгоритмы отображения параллельных программ на кластерные ВС. Метод основан на разбиении графа задачи на подмножества интенсивно об-

менивающихея параллельных ветвей и отображении их на ЭМ, связанные быстрыми каналами связи. Цель разбиения — минимизация суммы весов ребер, инцидентных разным подмножествам разбиения. Разбиение выполняется многократно: для каждого уровня иерархии коммуникационной среды (рис, 2), Обозначим описанный метод HierarchicTaskMap. В листинге 1 приведен его псевдокод,

_Листинг 1, Псевдокод метода HierachicTaskMap

HierachicTaskM ар

Вход: G — информационный граф параллельной программы, l k

Выход: Xij — отображение; Xj = 1, если ветвь i назначена на ЭМ j, иначе xij = 0,

1 if l < L then

2

3 for k = 1 to nik do

4 HierarchicTaskMap

5 end for

6 else

7 return

8 end if

Суть метода рассмотрим на примере отображения параллельной программы на подсистему из 16 ЭМ (рис, 1), На первом шаге выполняется разбиение (Par.tGr.APh) исходного графа С на п11 подграфов (С21 и С22) по с21 и с22 вершин. Далее графы С21 и С22 рекурсивно разбиваются на п21 и п22 частей по с21 и с22 вершин соответственно. Полученные в результате подграфы С31, С32, С33 (их вершины — ветви программы) назначаются на узел 1 (процессорные ядра 1,... ,4) и узел 2 (процессорные ядра 5,... ,8) кластера А и узел 1 (процессорные ядра 9,... ,16) кластера В,

Функция РлнтСндрн возвращает список подграфов, получаемых в результате разбиения исходного графа. Задача оптимального разбиения взвешенного графа на к непересекающихся подмножеств является трудноразрешимой. Для ее решения существуют точные и приближенные алгоритмы различной вычислительной сложности. Интерес представляют многоуровневые алгоритмы разбиения графов [27, 28], позволяющие получать субоптимальные решения этой задачи и характеризующиеся невысокой вычислительной сложностью. Данные алгоритмы включают этапы сжатия графа, начального разбиения и улучшения разбиения, В основе большинства алгоритмов улучшения разбиений лежит модифицированная нетрудоемкая эвристика Кернигана-Лина (Кеп^Ьап-Ып) [29].

Вычислительная сложность метода 11плгдьчшс Гдяк.Мдр определяется количеством выполнений процедуры РлнтСндрн. В случае, если используется многоуровневый алгоритм разбиения графа, трудоемкость ее составляет ТРс = 0(|Е| г), где |Е| — количество ребер в графе, г — число подмножеств разбиения графа. Разбиение выполняется в пределах каждого уровня I = 1,..., Ь — 1 для всех его элементов к = 1,..., щ (графы С1к), Время работы метода приведено па рис, 3,

Выполнение многоуровневого алгоритма при необходимости можно ограничить любым коммуникационным уровнем ВС, На основе метода 111кн.\ьч'н1с'М.\р предложены алгоритмы, различающиеся между собой уровнями I коммуникационной среды, которые учи-

t, с

Рис. 3. Зависимость времени работы алгоритма ЫМар от количества N ветвей в параллельной программе для различного числа k подмножеств разбиения (процессор Intel Xeon Е5420): 1 — k =16.

2 — k = 32,3 — k = 64,4— k =128

тываются при формировании разбиения. Назовем LIM АР алгоритм, учитывающий только уровень l = 1 связи между подсистемами (кластерами) и не учитывающий уровень связи между узлами, L2MAP — алгоритм, учитывающий только уровень l = 2 связи между узлами и не учитывающий уровень связи между подсистемами, L12MAP — алгоритм, учитывающий как уровень связи между узлами, так и уровень связи между подсистемами, и т. д.

Моделирование работы алгоритмов. Моделирование алгоритмов отображения проводилось на мультиклаетерной ВС Центра параллельных вычислительных технологий Сибирского государственного университета телекоммуникаций и информатики(ЦПВТ ФГОБУ ВПО „СибГУТИ") и Лаборатории вычислительных систем Института физики полупроводников им. А. В. Ржанова СО РАН (ИФП СО РАН).

Средства запуска параллельных программ. Для запуска MPI-программ на ресурсах пространственно-распределенных подсистем реализован подход на основе межсетевого протокола IPv6 (рис. 4). В данном протоколе используется 128-битовая адресация, которая позволят выделять всем вычислительным узлам пространственно-распределенной ВС глобальные IP-адреса. Наличие уникальных адресов обеспечивает возможность установления сетевого IP-соединения между любой парой узлов системы для запуска на них MPI-программ. Получение адресов и взаимодействие между узлами подсистем осуществлялось с помощью протокола 6to4, который реализует передачу пакетов протокола IPv6 поверх сети IPv4. При этом сначала головным узлам, имеющим глобальный 1Р\'4-адрее, по протоколу 6to4 выделялись 1Р\'6-адрееа, после чего средствами службы radvd 1Р\'6-адрееа от головных узлов всех подсистем раздавались вычислительным узлам.

Для запуска MPI-программ пользователь должен зайти на одну из подсистем и создать файл со списком узлов мультиклаетерной ВС для выполнения параллельной программы. После этого он запускает MPI-программу утилитой mpiexec (mpirun). Описанная схема запуска MPI-программ требует от библиотеки MPI поддержки протокола IPv6. В данной работе применялась библиотека Open MPI 1.4.5.

t, c 250 г

t, c

100 г

90 •

80 •

70 •

60 •

50 •

40 •

30 •

20 • 10 0

1!

!.....I

t, c

300 г

250 •

200 150 100 50

0

m

t, c 900 r 800 700 • 600 500 • 400 • 300 • 200 • 100 0

t, c

250 г

m

I

I

и

Рис.4. Сравнение алгоритмов отображения параллельных программ, а — POP, r = 120, б — Sweep3D,

r = 120, в - NPB МG, r = 64, г _ NPB SP, r = 64, д — NPB LU, r = 120 e — NPB ВT, r = 64

тш! — линейное отображение, fxv?^ — L2Map, — LI Map, vtttti — L12Map

200

150

100

50

datasize

datasize

datasize

200

150

100

50

0

datasize

datasize

Инструментарий оптимизации отображения на мулътикластерные ВС. Разработанные алгоритмы реализованы в программном пакете MPIGridMap, который позволяет запускать MPI-программы на пространственно-распределенных ВС с субонгимальным распределением параллельных ветвей но элементарным машинам.

Схема использования пакета выглядит следующим образом (рис, 5), На нервом шаге программа компилируется с подключенной библиотекой профилирования VampirTrace и запускается с линейным отображением (но умолчанию). Результат профилирования — up0T0K0.li prog, otf выполнения программы в формате Open Trace Format (OTF). Данный протокол анализируется программой OTFParse дня получения информационного графа prog.c.sr параллельной задачи в формате Compressed Sparse Row (CSR). Граф отражает количество (nops) или размеры (datasize) передаваемых сообщений в дифференцированных обменах (point-to-point) при выполнении MPI-программ.

Информационный граф подается вместе со списком machinefile узлов мультикластер-пой ВС па вход модуля MPIGridMap формирования отображения. При построении отображения могут быть использованы различные пакеты разбиения графов (METIS, Scotch, gpart). Результатом является файл rankfile, который содержит отображение параллельных ветвей программы па множество элементарных машин. Пользователь указывает файл rankfile при запуске MPI-программы,

Пакет MPIGridMap является свободно распространяемым. Он написан па языках С и С--дня операционной системы GXU/Linnx,

Организация, экспериментов. Натурные эксперименты но отображению тестовых MPI-программ проводились на действующей мультикластерной системе ЦПВТ „СибГУТИ" и Лаборатории ВС ИФП СО РАН, Тестовая подсистема (рис, 6) включала в себя три вычислительных кнастера:

— сегмент D: 4 узла (2 х Intel Xeon 5150, 16 процессорных ядер),

— сегмент Е: 4 узла (2 х Intel Xeon 5345, 32 процессорных ядра),

— сегмент F: 18 узлов (2 х Intel Xeon 5420, 144 процессорных ядра).

Рис.5. Функциональная схема пакета MPIGridMap

Сеть связи между узлами — Gigabit Ethernet, сеть связи между сегментами ВС — Gigabit Ethernet.

На подсистемах установлена операционная система GNU/Linux. Использовались библиотека Open MPI 1.4.5 с поддержкой IPv6 и библиотека VampirTrace для профилирования MPI-программ.

Опираясь на известные распространенные схемы межмашинных обменов [30], были выбраны следующие тестовые MPI-программы: The Parallel Ocean Program (пакет моделирования климатических процессов в мировом океане), SWEEP3d (программа для моделирования процессов распространения нейтронов), GRAPH500 (тест производительности ВС на основе обработки неструктурированных данных графового типа) и программ LU, SP, MG, ВТ из пакета тестов производительности NAS Parallel Benchmarks.

При формировании отображений использовались библиотеки разбиения графов Scotch [31], METIS [32], и gpart. Все пакеты реализуют многоуровневые алгоритмы разбиения графов с использованием прямого метода разбиения на k непересекающихся подмножеств. Стоит заметить, что библиотека Scotch используется в пакете hwloc [9, 10] при отображении параллельных MPI-программ в пакетах MPICH2 и Open MPI.

Ранг r параллельной программы выбирался из множества {120, 64, 36, 32} в зависимости от задачи.

Для каждой программы генерировалось два информационных графа в зависимости от способа формирования весов dj ребер. В первом случае вес ребра отражал объем данных, передаваемых между ветвями г и j (datasize). Во втором графе вес ребра отражал количество информационных сообщений, передаваемых между ветвями г и j (nops).

Результаты экспериментов. На рис. 4 представлены некоторые результаты исследования алгоритмов. В процессе моделирования измерялось время выполнения параллельных

Рис. 6. Конфигурация тестовой подсистемы мультикластсрной ВС

программ при отображении их па мультикластерную ВС алгоритмами L2MAP, LIMap и L12MAP, Дня разбиения графов задач применялся пакет gpart. Выполнялось сравнение полученных отображений с линейным отображением, при котором ветви последовательно вкладываются в ЭМ выделенной подсистемы (такое отображение реализуется но умолчанию библиотеками MPI).

Время выполнения MPI-программ при отображении их алгоритмом L12MAP ниже но сравнению с остальными алгоритмами. Это объясняется тем, что данный алгоритм позволяет учитывать как впутрик.настерпую сеть связи между узлами, так и сеть связи между кластерами. Различие результатов LIMap и L2MAP обусловлено схемами межмашинных обменов в конкретных параллельных программах.

Уменьшение времени выполнения параллельных программ POP (в 2,5 раза, r = 120), Sweep3D (на 30%, r = 120), GRAPH500 (до 10 раз, r = 120), NPB MG (в 5 раз, r = 64), NPB SP (на 30%, r = 64), NPB LU (на 10%, r = 120) оптимизированного отображения но сравнению с линейным отображением обусловлено разреженностью и неоднородностью графов и преобладанием в программе дифференцированных MPI-обменов. В таких графах можно выделить подмножества параллельных ветвей, интенсивно обменивающиеся данными, и распределить их но ЭМ, которые соединены быстрыми каналами связи. Эффект от использования созданных алгоритмов при отображении параллельных программ

Т, С 250 г

200 •

150

100

50

Т, c 900 г 800 700 • 600 500 • 400 • 300 • 200 • 100 0

t, c

50 -

40 -

30 -

20 -

10 -

0

T, c

250 -

200 -

150 -

100 -50 0

t-.

T, c

300 Г 250 • 200 • 150 100 50 0

T, c

500 r 450 • 400 • 350 • 300 • 250 • 200 • 150 100 50 0

Рис. 7. Сравнение библиотек разбиения графов а POP, r = 120, б r = 64 г — NPB SP, r = 64, д — NPB LU, r = 120, е гег^ — линейное отображение, i i — METIS, кут^ — Scotch, Г7773

Sweep3D, r = 120, в NPB ВТ, r = 64

gpart

NPB MG,

datasize

datasize

с однородными графами (XPB LU, XPB ВТ) и с графами недетерминированных обменов незначителен.

Время работы алгоритмов отображения не превышает 1 с (рис. 3). Оптимальный выбор способа формирования информационного графа (datasize или nops) зависит от тина параллельной программы и от ее ранга. Если известно, что в графе параллельной программы преобладают частые обмены сообщениями небольшого размера, рекомендуется использовать тин графа nops. В остальных случаях рекомендуется использовать datasize.

Проведено моделирование с цепью сравнения эффективности пакетов METIS, Scotch и gpart разбиения графов (рис. 7). В качестве алгоритма отображения применялся L2MAP. Использование библиотеки Scotch обеспечивает незначительное сокращение времени выполнения программы POP но сравнению с другими пакетами. На остальных тестах все библиотеки дают сопоставимые или противоречивые результаты.

Заключение. Разработан метод HierarchicTaskMap и алгоритмы иерархического отображения в ироетраиетвешю-раеиределехшые ВС параллельных MPI-нрограмм с целью минимизации времени их выполнения. Суть метода заключается в последовательном разбиении графа параллельной программы в соответствии с уровнями иерархии системы, что позволяет полностью учитывать структуру коммуникационной среды пространственно-распределенных ВС. Алгоритмы могут применяться не только при отображении MPI-нрограмм, но также в run-time системах языков семейства PGAS.

Созданные алгоритмы позволяют сократить время выполнения параллельных программ в среднем на 30%. Результаты моделирования отображения реальных MPI-нрограмм показали, что на всех тестовых задачах алгоритм L12MAP обеспечивает меньшее время выполнения программ. Данный алгоритм учитывает архитектурные особенности мультикластерпых и GRID-систем, в которых вычислительные узлы разных подсистем взаимодействуют через медленные каналы связи.

Эффективность отображения зависит от объема и интенсивности передаваемой информации в дифференцированных обменах. Алгоритмы позволяют снизить время выполнения параллельных программ с информационными графами, имеющими разреженную

структуру с преобладанием дифференцированных обменов (например, POP, NPG MG, GRAPH500).

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

Список литературы

1. Хорошевский В. Г. Распределенные вычислительные системы с программируемой структурой // Вестник СибГУТИ. 2010. № 2 (10). Р. 3-41.

2. Gabriel е., Resch XL. Ruhle R. Implementing MPI with optimized algorithms for metacomputing //In Proc. of the third MPI Developer's and User's Conference. 1999. P. 31-41.

3. Saito H., Taura K. Locality-aware Connection Management and Rank Assignment for Wide-area MPI //In Proc. of the 7th IEEE International Symposium on Cluster Computing and the Grid (CCGRID 2007). 2007. P. 249-256.

4. Imamura Т., Tsujita Y., Koide H., Takemiya H. An Architecture of Stampi: MPI Library on a cluster of parallel Computers // In Proc. of the 7th European PVM/MPI'2000. 2000. V. 1908. P. 200-207.

5. Malyshkin N. V., Roux В., Fougere D., Malyshkin V. E. The NumGRID metacomputing system //In Bulletin of the Novosibirsk Computing Center, series Computer Science. 2004. N 21. P. 57-68.

6. Филамофитский М.П. Система поддержки метакомпьютерных расчетов X-Com: архитектура и технология работы // Вычислительные методы и программирование. 2004. Т. 5. Р. 123137.'

7. Anderson D. P. Boinc: A system for public-resource computing and storage // 5th IEEE/ACM International Workshop on Grid Computing. 2004. P. 4-10.

8. Хорошевский В.Г., Курносов М.Г. Алгоритмы распределения ветвей параллельных программ по процессорным ядрам вычислительных систем // Автометрия. 2008. № 2 (44). С. 5667.

9. Broquedis F., Clet-Ortega J., Moreaud S., Furmento N., Goglin В., Mercier G., Thibault S., Namyst R. hwloc: a Generic Framework for Managing Hardware Affinities in HPC Applications // Int. Conference on Parallel, Distributed and Network-Based Processing (PDP2010). 2010. P. 180-186.

10. Mercier G., Clet-Ortega J. Towards an Efficient Process Placement Policy for MPI Applications in Multicore Environments // Proceedings of the 16th European PVM/MPI Users' Group Meeting on Recent Advances in Parallel Virtual Machine and Message Passing Interface. 2009. V. 5759. P. 104-115.

12. Yu H., Chung I.-H., Moreira J. Topology mapping for Blue Gene/L supercomputer //In Proc. of SC'06. 2006. N. 116. P. 1-52.

13. Bhanot G. Optimizing task layout on the Blue Gene/L supercomputer // IBM Journal of Research and Developmen. 2005. V. 49, N 2. P. 489-500.

14. Balaji P., Gupta R., Vishnu R., Beckman P. Mapping Communication Layouts to Network Hardware Characteristics on Massive-Scale Blue Gene Systems // Special edition of the Springer Journal of Computer Science on Research and Development. 2011. V. 26. P. 247-256.

15. Bhatele A., Gupta G.R., Kale L.V., Chung I.H. Automated mapping of regular communication graphs on mesh interconnects // 2010 International Conference on High Performance Computing. 2010. P. 1-10.

16. Bhatele A., Kale L. V. Heuristic-Based Techniques for Mapping Irregular Communication Graphs to Mesh Topologies // 13th IEEE International Conference on High Performance Computing and Communication. 2011. P. 765-771.

17. Jeannot E., Mercier G. Near-optimal placement of MPI processes on hierarchical NUMA architectures // Proceedings of the 16th international Euro-Par conference on Parallel processing: Part II. 2010. V. 6272. P. 199-210.

18. Bhatele A., Kale L. V., Kumar S. Dynamic topology aware load balancing algorithms for molecular dynamics applications //In Proc. of the 2009 ACM International Conference on Supercomputing (ICS'09). 2009. P. 110-116.

19. Lipplander J., Miller P., Venkataraman R. et al. Mapping Dense LU Factorization on Multicore Supercomputer Nodes // Parallel and Distributed Processing Symposium (IPDPS), 2012 IEEE 26th International. 2012. P. 596-606.

20. Trapp J.L. Implementing the MPI Process Topology Mechanism // Proceedings of the ACM/IEEE conference on Supercomputing. 2002. P. 1-14.

21. Karlsson C., Davies T., Chen Z. Optimizing Process-to-Core Mappings for Application Level Multi-dimensional MPI Communications // Proceedings of the 2012 IEEE International Conference on Cluster Computing. 2012. P. 486-494.

22. Hoepler T., Rabenseipner R., Ritzdorp H. et al. The scalable process topology interface of MPI 2.2 // Concurr. Comput.: Pract. Exper. 2011. V. 23, N 4. P. 293-310.

23. Rashti M. J., Green J., Balaji P. et al. Multi-core and network aware MPI topology functions // Proceedings of the 18th European MPI Users' Group conference on Recent advances in the message passing interface. 2011. V. 6960. P. 50-60.

24. Hoepler T., Snir M. Generic Topology Mapping Strategies for Large-scale Parallel Architectures //In Proc. of the 2011 ACM International Conference on Supercomputing (ICS'll). 2011. P. 75-85.

25. Zhang J., Zhai J., Chen W., Zheng W. Process Mapping for MPI Collective Communications // Proceedings of the 15th International Euro-Par Conference on Parallel Processing. 2009. V. 5704. P. 81-92.

26. Bhatele A., Gamblin T., Langer S.H. et al. Mapping applications with collectives over sub-communicators on torus networks // SC '12 Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis. 2012. P. 1-11.

27. Hendrickson B., Leland R. A multilevel algorithm for partitioning graphs // Proc. of ACM/IEEE conference on Supercomputing. — San Diego : IEEE Press. 1995. P. 1-28.

28. Karypis G., Kumar V. Multilevel k-wav partitioning scheme for irregular graphs // Journal of Parallel and Distributed computing. 1998. V. 48(1). P. 96-129.

29. Fiduccia C. \I.. Mattheyses R. M. A linear-time heuristic for improving network partitions // Proc. of conference "Design Automation". 1982. P. 175-181.

30. Asanovic K. et al. The Landscape of Parallel Computing Research: A View from Berkeley // Electrical Engineering and Computer Sciences, University of California, Berkeley. Technical Report No. UCB/EECS-2006-183. 2006. P. 1-54.

31. Pellegrini F. Distillating knowledge about Scotch // Combinatorial Scientific Computing, Dagstuhl Seminar Proceedings series. 2009. N 09061. P. 1-12.

32. Abou-Rjeili A., KarypisG. Multilevel Algorithms for Partitioning Power-Law Graphs // IEEE International Parallel k, Distributed Processing Symposium (IPDPS). 2006. P. 1-15.

33. Fernandez E., Heymann E., Senar M.A. Supporting efficient execution of MPI applications across multiple sites //In Proc. of Euro-Par'2006. 2006. V. 4128. P. 383-392.

34. Takano R., Matsuda XL. Kudoh T., Kodama Y, Okazaki F., Ishikawa Y, Yoshizawa Y. High performance relay mechanism for MPI communication libraries run on multiple private IP

address clusters //In Proc. of 8th IEEE international symposium on cluster computing and the grid (CCGRID 2008). 2008. P. 401-408.

35. M ercier G., J eannot E. Improving MPI applications performance on multicore clusters with rank reordering // Proceedings of the 18th European MPI Users' Group conference on Recent advances in the message passing interface. 2011. V. 6960. P. 39-49.

36. Subramoni H., Potluri S., Kandalla К. et al. Design of a scalable InfiniBand topology service to enable network-topologv-aware placement of processes // Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis. 2012. P. 1-12.

Пазников Алексей Александрович — канд. техн. наук, доц. каф.

вычислительных систем ФГОБУ ВПО „СибГУТИ" тел.: +7 (383) 269-82-86, e-mail: apaznikov@gmail.com Курносое Михаил Георгиевич, — канд. техн. наук, доц. каф. вычислительных систем ФГОБУ ВПО „СибГУТИ" тел.: +7 (383) 269-82-75, e-mail: mkurnosov@gmail.com

Куприянов Михаил Степанович — докт,ор техн. наук, профессор, декан, факультета компьютерных технологий и, информатики, ФГБОУ ВПО „Санкт-Петербургский государственный электротехнический университет „ЛЭТИ" им. В. И. Ульянова (Ленина)" тел.: +7 (812) 234-27-4-6, e-mail: mskupriyanov@mail.ru

Дат,а поступления — 12.02.2015