3П УДК 681.324 А.С. Посохов Институт физики полупроводников СО РАН, г. Новосибирск, Россия pas@isp.nsc.ru Параллельный алгоритм распределения задач набора по элементарным машинам вычислительной системы* Описан подход к организации функционирования большемасштабных вычислительных систем (ВС), работающих в режиме обработки наборов параллельных задач. Приведен алгоритм, осуществляющий распределение задач набора по элементарным машинам ВС, обеспечивающий субминимальное общее время их решения. Приведены результаты моделирования на кластерной ВС и проведен анализ полученных результатов. Современные вычислительные системы (ВС) являются распределенными и большемасштабными [1]. Число элементарных машин (ЭМ) в них неуклонно растет. Например, лидер списка ТОП 500 [2] редакции ноября 2005 года, суперкомпьютер фирмы IBM BlueGene/L состоит из 131072 процессоров. Такие вычислительные системы могут работать не только в монопрограммных режимах, когда решается одна сложная задача, но и в мультипрограммных, когда на системе решается набор параллельных задач. Так-же возможна ситуация, когда ресурсы большемасштабных систем предоставляются в коллективное пользование. Таким образом, в очереди на решение может оказаться набор, состоящий из сотен тысяч и миллионов задач. Необходимость эффективного использования вычислительных мощностей в такой ситуации становится актуальной. Использование ресурсов самой системы повышает ценность этих алгоритмов. Параллельный алгоритм, описанный в данной работе, является таковым. Точные алгоритмы, построенные на основе методов математического программирования, при таком объеме данных имеют очень большую трудоемкость, а следовательно, их применение не всегда оправдано. Достаточно эффективными оказываются эвристические алгоритмы [3]. 1. Постановка задачи На вычислительной системе, состоящей из J={J1 ,J 2 ,...,J m } – множества элементарных машин, работающей в мультипрограммном режиме, в очереди на решение оказывается набор параллельных независимых задач I={I1 ,I 2 ,...,I n } , каждая из которых характеризуется числом параллельных ветвей – r (ранг) в её программе, а также временем решения – t на r машинах. * Работа выполнена при поддержке Российского фонда фундаментальных исследований (гранты № 05-07-08011, № 05-07-90009). 258 «Искусственный интеллект» 4’2006 Параллельный алгоритм распределения задач набора по элементарным… 3П Требуется построить алгоритм, распределяющий задачи Ii большого набора по ЭМ J j вычислительной системы, который бы давал оптимальное значение целевой функции, характеризующей эффективность ВС. В качестве целевой функции будем использовать общее время решения задач Т на системе. Алгоритм основан на разбиении набора, поступающего для решения на ВС, на L частей. Распределением каждой части занимается отдельно взятая элементарная машина. В этом случае можно сократить время распределения . Каждая машина распределяет свою часть набора по последовательному алгоритму [4], использующему один из методов исследования операций [5]. Данный алгоритм осуществляет пошаговое распределение задач по элементарным машинам ВС. Число шагов зависит от J и I . I r – множество задач ранга r. На каждом шаге: 1) определяется максимальный ранг R среди непустых подмножеств I r ⊂ I ; 2) если есть длинная задача ранга k ≤ m − R , то она назначается для решения на машины, которые из дальнейшего рассмотрения исключаются; 3) распределяется подмножество I 0R ⊂ I R ; 4) распределяются некоторые задачи рангов r ≤ m − R . Наборы, сформированные каждой элементарной машиной, объединяются в общий, который, в свою очередь, и является оптимальным распределением задач по ВС. 2. Пример Моделирование на машине AMD Opteron 248 показало, что распределяя наборы при помощи последовательного алгоритма [4], время затраченное оказывается следующим (табл. 1). Таблица 1 № Число задач в наборе Время распределения, с 1 5x 104 9,3 2 105 39,67 3 2x 105 162,7 4 5 5 643 2617 4x 10 8x 105 Время распределения с увеличением числа задач растет квадратично, то есть система вместо того, чтоб решать задачи, долгое время занимается распределением, поэтому и был выбран описанный подход. 3. Эффективность Но при таком подходе общее время решения задач T на ВС может увеличиться, так как распределяющая ЭМ обладает информацией лишь о части набора, таким образом, надо выбрать оптимальное L, при котором T+Tapp → min , где Tapp – время, затраченное на работу алгоритма распределения. «Штучний інтелект» 4’2006 259 Посохов А.С. 3П Пусть τ – время выполнения одной операции на ВС, ω – среднее число операций, приходящихся на одну ЭМ, в задачах, поступающих на решение, l ( L) – функция потерь, при разбиении на L частей, c – некоторая константа. Таким образом, для получения выигрыша во времени необходимо выполнение следующего условия : cn 2 2 τ cn + τω n > τ 2 + τω n (1 + l ( L )) , L cn cn + ω > 2 + ω (1 + l ( L)) , L cn cn > 2 + ωl ( L) . L Откуда получаем следующую оценку эффективности разбиения: cn L2l ( L) > . (1) ω L2 − 1 4. Описание алгоритма Для описания алгоритма введем следующие операторы: begin, end – операторы, обозначающие соответственно начало и конец работы алгоритма; mod(x,y) – оператор, дающий остаток от деления x на y; [x] – оператор, дающий целую часть числа от х; if C then A1 else A2 – оператор означает: выполнение оператора A1, если верно условие C, и выполнение оператора A2, если условие C неверно; for (i=1; i<=s; i=i+1) do A – оператор означает циклическое выполнение оператора A, при котором переменная i на каждом шаге последовательно инкрементируется, до тех пор, пока i не достигнет значения s; send( J j , Ii , s) – оператор пересылки элементарной машине с номером j задач с номерами i, i+1,…, i+s; recv( J j , Ii ) – оператор приёма сформированного поднабора Ii от ЭМ с номером j; heuristic(s, Ii ) – оператор, формирующий поднабор Ii из s задач по последовательному алгоритму; form( I1 , I 2 ,…, I L ) – оператор формирования общего набора из поднаборов I1 , I 2 ,…, I L ; sendto( J i , Ii ) – оператор, пересылающий ЭМ с номером i сформированный поднабор Ii ; recvfrom( J i , s) – оператор приёма s задач от ЭМ с номером i. Алгоритм: begin; h = mod(k,L); s = [k/L]; x = 0; if (s < n) then for (j=1;j<=L;j=j+1) { if (j<h) then {send( J j , I x , s+1); x = x + s + 2;} else {send( J j , I x , s); x = x + s + 1;} 260 «Искусственный интеллект» 4’2006 Параллельный алгоритм распределения задач набора по элементарным… 3П } else { h = mod(k,n); s = [k/n]; for (j=1;j<=L;j=j+1) { if (j<h) then {send( J j , I x , s+1); x = x + s + 2;} else {send( J j , I x , s); x = x + s + 1;} } } for (j=1;j<=L;j=j+1) recv( J j , I j ); form( I1 , I 2 ,…, I L ); end. Схема алгоритма для ЭМ с номером j: begin; recvfrom( J i , s); heuristic(s, Ii ); sendto( J i , Ii ); end. 5. Результаты моделирования Моделирование проводилось на сегменте пространственно распределенной кластерной ВС [6], расположенном в Лаборатории вычислительных систем Института физики полупроводников СО РАН, состоящего из двухпроцессорных элементарных машин на базе процессоров AMD Opteron 248. Наборы задач были сформированы случайным образом. ω = 100 . Моделирование показало, что для таких наборов функция потерь ведет себя, как линейная l ( L) = k * L . Согласно формуле (1): cn L3 > 2 . kω L − 1 В табл. 2 представлены рекомендации по разбиению для некоторых наборов: Таблица 2 n L 6 2 10 6 5 2x 10 7 3x 106 10 4x 106 … … На рис. 1 представлена зависимость общего времени (затраченного на распределение + время на последующее решение набора) от числа элементарных машин, участвующих в распределении, для набора из 106 задач. При этом общее время решения задач GT = 49,97x106 , нижняя граница времени решения LB = 24,97x106 . В данном случае рекомендуется разбивать набор «Штучний інтелект» 4’2006 261 Посохов А.С. 3П на две части, при этом время решения набора плюс время, затраченное на распределение, RT = 25,52x106 , что достаточно близко к нижней границе. Рисунок 1 На рис. 2 рассмотрен случай для n= 2x106 . Рисунок 2 В данном случае GT = 100,89x106 , LB = 50,38x106 , набор оптимально разбивать на пять частей, при этом RT = 50,97x106 . При наборе из 3x106 задач (рис. 3), GT = 151, 42x106 , LB = 75, 64x106 , RT = 76, 49x106 получается при разбиении на семь частей. 262 «Искусственный интеллект» 4’2006 Параллельный алгоритм распределения задач набора по элементарным… 3П Рисунок 3 6. Выводы Итак, при распределении наборов задач оптимальным оказывается разбиение набора на пакеты по L задач, где L вычисляется по формуле (1). При этом общее время (решения + распределения) оказывается достаточно близко к нижней границе и, как видно из рисунков 1–3, выигрыш относительно последовательного алгоритма существенен. Рассмотренный выше параллельный алгоритм можно применять для наборов задач, при распределении которых выполняется оценка (1). В противном случае, для наборов, состоящих из небольшого числа задач, получается вырожденный случай (L = 1), который соответствует последовательному алгоритму. Литература 1. 2. 3. 4. 5. 6. Хорошевский В.Г. Архитектура вычислительных систем. – М.: МГТУ им. Н.Э. Баумана, 2005. – 512 С. TOP 500 Supercomputer sites (http://www.top500.org) Евреинов Э.В., Хорошевский В.Г. Однородные вычислительные системы. – Наука, 1978. Посохов А.С. Алгоритм функционирования вычислительных систем при решении набора сложных задач // Материалы Российской научно-технической конференции «Информатика и проблемы телекоммуникаций – 2005». – Новосибирск: СибГУТИ, 2005. – Том 1. – С. 223. Вентцель Е.С. Исследование операций. – М.: Высшая школа, 2001. Khoroshevsky V.G., Mamoilenko S.N., Maidanov Y.S., Sedelnikov M.S. Space-distributed multicluster computer system with multiprogramme regimes supporting // Proc. of the Second IASED International Multiconference on CIT – Software Engineering, June 20-24. – Novosibirsk (Russia). – Р. 136-138. О.С. Посохов Параллельный алгоритм розподілу задач набору по елементарним машинам обчислювальної системи Описаний підхід до організації функціонування великомасштабних обчислювальних систем (ОС), що працюють у режимі обробки наборів паралельних задач. Наведений алгоритм, що здійснює розподіл задач набору по елементарним машинам ОС, що забезпечує субмінімальний загальний час їх вирішення. Наведені результати моделювання на кластер ній ОС і проведений аналіз отриманих результатів. Approach for organization of large-scale computer systems (CS) working in set of parallel tasks processing functioning was described. Parallel algorithm which distributes tasks of set on CS’s elementary machines with a subminimal general time of solving them was given. Results of modeling by using cluster CS were showed, and analyze of them was realized. Статья поступила в редакцию 29.06.2006. «Штучний інтелект» 4’2006 263