Минимизация времени выполнения MPI-программ с учетом конкуренции за каналы передачи данных коммуникационной среды кластерной системы

УПРАВЛЕНИЕ, ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА И ИНФОРМАТИКА

УДК 004.7+004.051

А. В. Юлдашев

МИНИМИЗАЦИЯ ВРЕМЕНИ ВЫПОЛНЕНИЯ MPI-ПРОГРАММ С УЧЕТОМ КОНКУРЕНЦИИ ЗА КАНАЛЫ ПЕРЕДАЧИ ДАННЫХ КОММУНИКАЦИОННОЙ СРЕДЫ КЛАСТЕРНОЙ СИСТЕМЫ

В данной работе исследуется влияние конкуренции за каналы передачи данных коммуникационной среды на время выполнения МР1-программ на кластерных системах, узлы которых построены на основе многоядерных процессоров. Предлагается модель конкурентного использования каналов передачи данных. Описывается разработанный метод назначения задач (МР1-программ) на узлы кластерной системы, позволяющий сократить время выполнения программ за счет минимизации задержек, возникающих при конкурентном использовании каналов передачи данных. Представлена апробация разработанного метода назначения задач на кластерной системе УГАТУ. Кластерная система; коммуникационная среда; многоядерный процессор; MPI; оценка времени коммуникаций; метод назначения задач

ВВЕДЕНИЕ

Узлы современных кластерных вычислительных систем строятся на основе многоядерных процессоров. При выполнении параллельных программ на узлах может находиться множество процессов (потоков), конкурирующих за общие ресурсы: кэш и оперативную память, дисковую систему, а также каналы передачи данных коммуникационной среды, что негативно сказывается на эффективности выполнения программ. Для того чтобы минимизировать задержки, возникающие при использовании общих ресурсов, необходимо комплексно учитывать характеристики программ и архитектуру высокопроизводительного кластера при назначении задач на узлы вычислительной системы. Однако в существующие системы пакетной обработки и планировщики не вложены модели и алгоритмы планирования, необходимые для оптимального использования общих ресурсов многоядерных узлов.

В данной работе исследуется конкуренция за каналы передачи данных коммуникационной среды, возникающая при выполнении параллельных программ, использующих интерфейс передачи сообщений MPI (Message Passing Interface).

Проведенные экспериментальные исследования производительности коммуникационной среды Infiniband с помощью доступных тестовых программ mpi-bench-suite и OSU microbenchmarks, а также собственных тестов, позволили разработать модель конкурентного использования канала передачи данных комму-

Контактная информация: +7(917)7741081

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

В целях сокращения времени выполнения MPI-программ на узлах кластерной системы с многоядерными процессорами, разработан метод назначения задач (MPI-программ), в котором учитывается загруженность коммуникационной среды и минимизируются задержки, возникающие при конкурентном использовании каналов передачи данных. Проведено экспериментальное сравнение предложенного метода с некоторыми известными методами - Best Fit и Least Utilized Node First [1], которое показало, что его использование позволяет сократить время выполнения программ на 20%.

1. ЭКСПЕРИМЕНТАЛЬНОЕ ИССЛЕДОВАНИЕ КОНКУРЕНЦИИ ЗА КАНАЛЫ ПЕРЕДАЧИ ДАННЫХ

Кратко рассмотрим результаты проведенных экспериментов, позволивших определить набор входных параметров для модели конкурентного использования канала передачи данных коммуникационной среды Infiniband.

Эксперименты проводились на кластерной системе УГАТУ, состоящей из 266 двухпроцессорных вычислительных узлов сверхплотной компоновки IBM BladeCenter HS21 Blade Server

на базе четырехядерных процессоров Intel Xeon 5300 (Clovertown), объединенных высокопроизводительной вычислительной сетью Infiniband SDR 4x 10-Gbps.

С помощью теста коммуникационной среды transfer из пакета mpi-bench-suite были определены латентность и пропускная способность каналов передачи данных в отсутствие конкуренции при пересылке сообщений размером от 16 B до 16 MB [2]. Проведено сравнение экспериментальных данных с оценками времени коммуникации, полученными из моделей Хокни, LogP, LogGP, pLogP. Получено, что наиболее простая из рассмотренных, модель Хокни, может использоваться для оценки времени коммуникации при пересылке больших сообщений (от 128 KB) с погрешностью менее 10%.

С помощью теста osu_mbw_mr из пакета OSU microbenchmarks были определены суммарная и средняя (на одну коммуникацию) пропускные способности каналов передачи данных при однонаправленных пересылках сообщений различного размера в случае нескольких конкурирующих коммуникаций. Было показано, что средняя пропускная способность уменьшается с увеличением числа коммуникаций, и наибольшее ее снижение наблюдается при пересылке больших сообщений.

На практике в параллельных программах осуществляются как коммуникации, так и вычисления. Для того чтобы исследовать влияние конкуренции на время коммуникации при наличии в программе вычислительной составляющей, была разработана тестовая MPI-программа, процессы которой итерационно выполняли передачу сообщения определенного размера и имитацию вычислительной работы в течение заданного времени [3]. Таким образом, было исследовано влияние конкуренции на время коммуникации при передаче больших сообщений (от 128 KB до 4 MB) в зависимости от числа конкурентов и доли коммуникаций, наблюдавшейся в программе в отсутствие конкуренции.

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

2. МОДЕЛЬ КОНКУРЕНТНОГО ИСПОЛЬЗОВАНИЯ КАНАЛА ПЕРЕДАЧИ ДАННЫХ

Пусть многоядерный узел кластерной системы содержит nc вычислительных ядер, и на

нем выполняются к = 2, пс независимых МРІ-процессов, итерационно осуществляющих коммуникации с процессами, расположенными на других узлах кластера и вычисления. Пусть

Стт - время коммуникаций, а ҐоІ - известное время вычислений на одной итерации і-го процесса, где і = 1, к . Необходимо оценить время коммуникаций в условиях конкуренции за общий канал передачи данных.

Возьмем за основу модель Хокни [4], которая позволяет оценить время коммуникации без учета конкуренции по формуле

т

і = Ъ +

B peak

где L - латентность, Bpeak - пиковая пропускная способность, m - размер передаваемого сообщения.

Приведенное соотношение удобно представить в виде

m w

t = L +----------= L + n • tm,

C W Bpeak ^

где w - размер сетевого пакета, n - число пакетов в сообщении, t^ - время передачи одного пакета.

Тогда без учета конкуренции суммарное время коммуникаций на одной итерации i-го процесса можно оценить по формуле

ti = riL + Nit ,

comm m ’

где Ni - суммарное число передаваемых пакетов, ri - количество пересылок на одной итерации i-го процесса.

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

Cm = r'L + N

Тогда время выполнения одной итерации i-го процесса составит

С = Cmm + Cl = r'L + N'

Для нахождения tg процесс передачи сетевых пакетов представляется возможным моделировать с помощью открытой одноканальной системы массового обслуживания (СМО) типа M/D/1 (рис. 1) с простейшим входящим потоком заявок [5].

Рис. 1. Одноканальная СМО

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

Пусть заявки поступают от 1-го процесса с интенсивностью

N1 1 = —. tier

Введем обозначение

а і = rL + С + ,

N1 и

Тогда интенсивность поступления заявок от 1-го процесса определяется как

Iі = —1— .

а' + to

Интенсивность входящего в СМО потока заявок X складывается из интенсивностей образующих его потоков, следовательно

k 1

1 =

tf а1 + to

Предположим, что поступающие заявки обслуживаются в системе с интенсивностью

т = — . Тогда из теории массового обслуживает

ния при соблюдении условия стационарности — < 1 среднее время ожидания заявки в очереди

т

можно найти по формуле

=-----1----.

0 2т

Таким образом, для нахождения среднего времени задержки ^ требуется решить систему, образованную уравнениями (3) и (4). В свою очередь, при известном е0 времена коммуникаций каждого процесса в условиях конкуренции

за канал передачи могут быть вычислены по формуле (1).

Решение системы уравнений (3) и (4) при различных а не удается выписать аналитически, тем не менее, оно может быть найдено численно.

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

3. НОВЫЙ МЕТОД НАЗНАЧЕНИЯ ЗАДАЧ НА МНОГОЯДЕРНЫЕ УЗЛЫ

Анализ производительности MPI-версий ряда пакетов численного моделирования (Eclipse, Tempest More, NGT BOS, Fire Dynamics Simulator) на кластерной системе УГАТУ показал, что для достижения минимального времени выполнения программ, число процессов, распределенных на узел (ppn), не должно быть более двух (на рис. 2 изображено распределение 4 процессов MPI-программы с ppn = 1 на некотором кластере с четырехядерными узлами). Иначе возникают задержки при конкурентном доступе процессов к общим ресурсам многоядерных узлов, приводящие к увеличению времени выполнения программ.

Рис.2. Распределение процессов с ррп = 1

Однако при таком способе распределения процессов большинство ядер на узлах простаивают. Тем не менее, по мере поступления задач на кластер можно также распределять процессы новых программ на группе ранее задействованных узлов, увеличивая количество загруженных ядер.

Тестирование показало, что даже при полной загрузке всех имеющихся на группе узлов ядер (в нашем примере для этого необходимо распределить с ррп = 1 процессы 4 программ), указанный способ распределения дает преиму-

щество по времени выполнения программ относительно распределения сppn=nc (рис. 3).

Рис. 3. Распределение процессов с ррп = пс

В то же время распределение на группе узлов процессов нескольких программ с ppn = 1 приводит к тому, что процессы различных МР1-программ, выполняющиеся на одном узле, разделяют общий канал передачи данных и могут конкурировать при выполнении коммуникаций (рис. 4).

Рис. 4. Распределение процессов двух программ на одной группе узлов

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

Пусть имеются МР1-программы с фиксированным количеством процессов (р) и известными характеристиками, которые требуется назначить на многоядерные узлы кластерной системы. Разобьем множество узлов на одинаковые группы, состоящие из p узлов, и получим G пронумерованных групп. При назначении МР1-программы на узлы выбирается некоторая группа, и процессы программы распределяются на каждый узел из выбранной группы с ppn = 1.

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

одной программе. Для этого рассмотрим некоторую группу узлов с номером 1, на которой выполняются k >1 программ. Считаем, что все процессы, принадлежащие определенной программе, выполняются итерационно и имеют одинаковые известные характеристики: количество пересылок Т^1 , суммарное число передаваемых сетевых пакетов N 1 и время вычислений

^ на одной итерации. Здесь ' = 1, к - порядковый номер программы, запущенной на группе с номером у.

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

Рассмотрим выполнение к процессов на одном из узлов выбранной группы в течение времени Т >> ^, V/ . Предполагаем, что за время Т процессы выполняют и1,1 итераций. С учетом (2) можно представить время Т как

Т = и1,1 (^' + т'^Ь + Л/,у (^ + (д )) =

= ии^, + и'и (т‘,]Ь + Л'^^) + ии]Л',]1д =

= Т',1' + Т/,1' + Т/,1'

ЬтатГ _г 1 <2 ?

где Т50! - суммарное время вычислений, Т/П* -суммарное время, затрачиваемое непосредственно на коммуникации, а Тд Т^ - суммарное

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

Так как на каждом узле выполняется к процессов и группа содержит р узлов, верно

к рТ = X р(Т0у + т^ + Т2 -), V = й.

'=1

Складывая приведенное соотношение по всем О группам, получим

О О ( к1 к1 к1 ^

X крТ = X р X то + X Т^ + X Ч

1=1

1=1

откуда следует

О к1

XXT01' ТТт2~

1=1 /=1

-+

1=1 /=1

-+

1=1 /=1

X кТ X кТ X кТ

=1

=1

=1

/=1

/=1

'=1

Слагаемые в левой части равенства могут принимать значения от 0 до 1 в зависимости от характеристик МР1-программ. Последнее слагаемое, которое обозначим / и будем называть долей задержек, показывает, какую часть времени задействованные ядра кластерной системы простаивают из-за конкуренции за каналы передачи данных. Таким образом, величина доли задержек влияет на эффективность загрузки кластерной системы: чем она меньше, тем эффективнее используются вычислительные ресурсы.

Доля задержек может быть выражена следующим образом:

1

I у

>1

в к

II

І=1 1=1

і"1

1о

а1,1 + і;

о

ГІ,І Т + іі,і

где а1,1 =--------------------------------—

+ і , а іО - среднее время за-

держки при передаче сетевых пакетов на -й группе. Далее, учитывая (3), получим

1 О

/д = -О----------X1 •

I к

І І=1

І=1

где X1 - интенсивность потока сетевых пакетов на вычислительных узлах і-й группы.

Отметим, что в полученном представлении /о отсутствуют и1,1 , следовательно, для нахождения доли задержек достаточно владеть характеристиками коммуникационной среды и процессов МР1-программ на одной итерации.

При назначении новой программы на группу с номером I будем иметь новую долю задержек:

(

/о =-

1

I к+1

Л

' ~'

о

1=1 Vі#'

=1

С целью повышения эффективности использования кластера необходимо определить, при каком I будет минимальна новая доля задержек или, что эквивалентно, изменение доли задержек:

и - /о =

1=1

,

С в \ в

!к1+1 Ек !к>+1

І-1 у і=1 1 1

Отсюда следует, что оптимально назначить новую программу на группу с номером ', для которой

:' (~'~' л'*'

8' =

Причем для нахождения 1 и необходимо решить систему уравнений

1

1'=I

і' = -‘о

а1' + і‘в

2т(т -1') ’ а для нахождения 1' и іо - систему 1 1

і'=I

V =

о

“ ау + о

2ц

+

а К,+и + ~'

Таким образом, для выбора оптимальной группы, необходимо О раз решить системы (7), (8) и выбрать такую группу, для которой Ь минимальна.

Отметим, что если до назначения новой программы на группе узлов выполнялась только одна программа, конкуренция за каналы передачи данных на узлах данной группы отсутствовала, следовательно, можно положить равной нулю.

4. ВЫБОР ГРУППЫ УЗЛОВ ДЛЯ НАЗНАЧЕНИЯ НОВОЙ ЗАДАЧИ В УПРОЩЕННОЙ ПОСТАНОВКЕ

Решение поставленной задачи (6) в общем случае может быть найдено только численно. Тем не менее, в упрощенной постановке - при

', 1 W •

условии, что параметр а , V /, 1 принимает не более двух различных значений, минимизируемая функция из (6) может быть выражена аналитически.

Случай 1. Характеристики процессов всех

', 1 W •

программ таковы, что а = а, V /, 1.

В этом случае системы уравнений (7) и (8) могут быть сведены к квадратным уравнениям, откуда выписываются единственные корни 1 = 1 (т, а, к1) и 1 = ~ (т, а, к), удовлетворяющие условию стационарности.

На рис. 5 представлен график зависимости функции Ь1 = Ь1 (ц, а, к1) от а на отрезке [0,38 х х 10-5...3,8 • 10-5] при ц = 219 и ряде фиксированных к = 1,7.

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

1=1

программы можно руководствоваться только значением параметра к. Таким образом, с точки зрения загрузки каналов передачи данных, оптимально будет назначить новую программу на группу, где выполняется наименьшее число программ. Также из рис. 5 следует, что при фиксированном значении к1 минимальное значение Ь достигается при максимальном значении а.

П f,- ч \\\\ л\' v ^ V .

•' \ \ * \ ’• \\\ N • \ \ \ - \ , •

П 7- \ 4 \V  • \ N  \ч \ \ \ \ \ V

ЯЁШ

0,00001

0,00002

Щ

к=2

к=3

к=4

к=5

— - к=б

• • к=7

0,00003

Рис. 5. График зависимости изменения доли задержки от а

Случай 2. Характеристики процессов всех

программ до назначения новой программы та-

і, і \~/

ковы, что а = аі, V і, і, характеристики процессов новой программы описываются параметром а2.

На рис. 6 представлен график зависимости функции 51 = 5г(ц, а1, а2, к1) от а1 на отрезке [0,38  10-5...3,8  10-5] при а2 = 2,08  10-5, ц = 219 и ряде фиксированных к = 1,7 .

Получено, что при любом фиксированном а1, минимальное значение 51 достигается при минимальном значении к , аналогично предыдущему случаю. В то же время при ряде к1 > 4 зависимость 51 от а1 становится немонотонной.

Например, пусть имеется три группы узлов, на которых запущено по 6 программ. Причем на первой группе для всех программ а1 = 0,5  10-5, на второй - а1 = 0,7  10-5, а на третьей - а1 = 2  10-5. С точки зрения загрузки каналов передачи данных наиболее загруженной группой является первая, а наименее загруженной - третья. Из рис. 6 видно, что оптимальным является назначение новой программы на третью группу. В то же время, оказывается, выгоднее назначить новую программу на первую группу, с наибольшей загруженностью каналов передачи данных, чем на вторую, со средней загруженностью, так как назначение программы на вторую группу приведет к большему увеличению 51 и, следовательно, доли задержек /е.

Таким образом, при наличии программ, характеристики которых описываются двумя и более различными а, выбор оптимальной группы для назначения новой программы не представляется возможным априори, без решения систем (7) и (8).

0.5

0,4-

т

0,2

0,1

\ -

\ \ 1 '

\ V \ ч ‘ ч \ Ч >

\ \ \ \ \ . V ’ , Ч v •

0,00 001 0,00 002 0,00003

Щ

к=2

к=3

к=4

к=5

— - к=б

• • к=7

Рис. 6. График зависимости изменения доли задержки от а1

В этом случае система (7) сводится к квадратному уравнению, а (8) - к кубическому, откуда явно выписываются единственные корни

Xі = Xі (ц, а1, к) и 1 = 1 (т,а1,а2,к1), удовлетворяющие условию стационарности.

5. АПРОБАЦИЯ РАЗРАБОТАННОГО МЕТОДА НАЗНАЧЕНИЯ ЗАДАЧ НА МНОГОЯДЕРНЫЕ УЗЛЫ КЛАСТЕРА

Проведено экспериментальное сравнение разработанного метода (В) с некоторыми известными методами назначения задач на узлы: Best Fit (A) и Least Utilized Node First (Б). Производилось назначение тестовых MPI-программ, с числом процессов p = 8, в которых на каждой итерации выполнялся вызов функции MPI_Alltoall с размером сообщения m, а также имитация вычислений в течение 300 мс. Рассмотрено два типа программ с m равным 128 KB и 1 MB. Проведено три серии экспериментов, в которых на шестнадцать вычисли-

2 к

программ каждого типа, где к - порядковый номер эксперимента. На рис. 7 представлены суммарные времена выполнения программ, полученные в результате экспериментов.

Рис. 7. Сравнение различных методов назначения задач на многоядерные узлы кластера

Во всех трех экспериментах применение разработанного метода (В) позволило сократить суммарное время выполнения программ на 6-20% по сравнению с методами А и Б. Сокращение времени было достигнуто за счет оптимального использования каналов передачи.

ЗАКЛЮЧЕНИЕ

Планируется апробация разработанного метода назначения задач на реальных приложениях для его дальнейшего внедрения в кластерный планировщик, разрабатываемый в УГАТУ, в целях более эффективного использования ресурсов вычислительного кластера.

В дальнейшем целесообразно исследовать возможность синтеза моделей конкурентного использования каналов передачи данных и конкурентного доступа к памяти для многоядерных систем. Это позволит оценить задержки, возникающие при выполнении широкого класса МР1-программ, для которых может иметь место конкуренция как за каналы передачи данных,

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

СПИСОК ЛИТЕРАТУРЫ

1. Полежаев П. Н. Исследование алгоритмов планирования параллельных задач для кластерных вычислительных систем с помощью симулятора // ПаВТ’2010: Тр. межд. науч. конф. Челябинск: ЮУр-ГУ, 2010. С. 287-298.

2. Халиуллина М. Р., Юлдашев А. В. Тестирование коммуникационной среды суперкомпьютера УГАТУ для решения задачи балансировки нагрузки // ПаВТ’2009: Тр. межд. науч. конф. Челябинск: ЮУрГУ, 2009. С. 826.

3. Юлдашев А. В. Балансировка нагрузки на основе сети в рамках программного комплекса автоматизированных расчетов на кластерных системах // Актуальные проблемы в науке и технике: Сб. труд. IV всероссийск. зимн. шк.-сем. асп. и мол. ученых. Уфа: Диалог, 2009. Т. 1. С. 573-577.

4. Hockney R. W. The Communication Challenge for MPP: Intel Paragon and Meiko CS-2 // Parallel Computing, North-Holland. 1994. Vol. 20. P. 389-398.

5. Клейнрок Л. Теория массового обслуживания. М.: Машиностроение, 1979. 432 с.

ОБ АВТОРЕ

Юлдашев Артур Владимирович, мл. науч. сотр. ИКИ при НИЧ, асс. каф. ВВТиС. Дипл. инж.-мат. (УГАТУ, 2006). Готовит диссертацию в области эффективного использования ресурсов кластерных вычислительных систем.