Поиск минимального разбиения множества вершин взвешенного графа, с. 1..13.
Постановка задачи оптимального разбиения графов
Естественной и адекватной моделью распределения задач по процессорам кластера является взвешенный неориентированный граф G, который задан множеством вершин V и множеством рёбер U: G(V, E). Кроме того, на множестве вершин определена неотрицательная функция F1(V), а на множестве рёбер также неотрицательная функция F2(E). Значения функции F1 называются весами вершин графа, а значения функции F2 – весами рёбер графа. Каждая вершина этого графа представляет собой одну из задач, а вес этой вершины - число операций, выполняемых при решении этой задачи. Вес ребер моделирует коммуникационные затраты на обмен данными между задачами, соответствующими вершинам, соединенным этими ребрами. С помощью этой модели распределение задач по процессорам представляется как разбиение множества вершин графа V на непересекающиеся подмножества, которое порождает разбиение графа G(V,E) на непересекающиеся подграфы. При этом каждый подграф ассоциируется с некоторым процессором, который будет использоваться для решения всех задач, соответствующих вершинам этого подграфа. Таким образом, оптимальное распределение вычислительной нагрузки между доступными процессорами сводится к оптимальному разделению графа G(V, E). Критериями оптимальности могут быть: 1) равенство сумм весов вершин подграфов, 2) минимальность суммы весов ребер, соединяющих вершины, принадлежащие разным подграфам; 3) число подграфов.
Первый критерий обеспечивает баланс вычислительной нагрузки процессоров. Смысл второго критерия состоит в том, что он обуславливает минимум коммуникационных затрат. Наконец, число подграфов определяет число используемых процессоров. Легко видеть, что указанные выше критерии могут противоречить друг другу. Чаще всего в различных постановках задач оптимального разбиения графов один из критериев считается главным, а остальные рассматриваются как ограничения.
Задача оптимального разделения графа является NP – полной и, как показывает анализ состояния исследований в этой области, в общей постановке задача эта задача решается только в узком диапазоне значений параметров k, n, m. На практике обычно оптимальное разделение графа выполняется для некоторого частного случая, например: 1) веса вершин и ребер графа равны 1 и в качестве приоритетного критерия используется либо условие 1, либо условие 2; 2) веса вершин различны, веса ребер равны 0, и в качестве критерия оптимальности используется только условие 1. В последнем частном случае задача оптимального разделения графа сводится к задаче оптимального разбиения множества, для решения которой может быть применён метод ветвей и границ [1]. Ниже описывается постановка задачи (модель) оптимального разбиения вершин графа, критерий решения которой предполагает балансировку сумм вычислительных нагрузок и коммуникационных затрат, требуемых для решения задач, ассоциированных с каждым процессором. На основе указанной модели предлагается комбинаторный подход к поиску минимального разбиения множества вершин графа G(V, E), основанный на конструктивном перечислении вариантов разбиений указанного множества. Целью этого поиска минимального разбиения множества вершин графа является определение минимального количества процессоров, совокупность которых обеспечивает заданное ускорение
Пусть задан неориентированный взвешенный граф G(V,E) с числом вершин равным n: V={v1,…,vn}, и числом рёбер равным m: E ={e1,…,em}. Функция F1 ставит в соответствие каждой вершине графа vi ее вес qi, аналогично функция F2 ставит в соответствие каждому ребру графа ei его вес ri. Такой граф определяет, что при использовании одного процессора все задачи могут быть решены в результате выполнения T1 операций, где T1 представляет собой сумму весов всех вершин множества V: T1= F1(V).
Теперь рассмотрим разбиения множества вершин V графа G(V,E) на k непересекающихся подмножеств P={V1,…,Vk}. Этими подмножествами вершин определяются подграфы G1(V1,E1),…, Gk(Vk,Ek), для которых выполняются следующие соотношения:
1) ∀ i,j ∈{1, 2, …, k} (i≠ j) ⇒ Vi ⋂ Vj =∅; 2) V1⋃ V2 ⋃ …⋃Vk=V;
3) n1 + n2 + …+ nk = n, где n1= |V1|, n2=|V2|, …, nk=|Vk|, n=|V|.
Будем считать, что при заданном разбиении число операций выполняемых i-тым процессором определяется как сумма весов вершин
i-того подмножества: Qi =∑ F1(Vi). Пусть C (Vi, Vj) множество рёбер, соединяющих вершины из множества Viс вершинами множества Vj: C (Vi, Vj) = {(u,w)|u∈Vi,w∈Vj}. Тогда сечением Ri по подмножеству Viграфа G(V,E) будем называть совокупность ребер, соединяющих вершины принадлежащие множеству Viс вершинами, не принадлежащими этому множеству: Ei=⋃j(C (Vi, Vj)), где i≠j. Тогда затраты на передачу и получение информации i-тым процессором можно определить как сумму весов рёбер i-того сечения: Ri= F2 (Ei). Исчисляемое в числе операций время решения всех задач для данного разбиения с использованием k процессоров будет равно: Tk=max((Qi + Ri), где i=1, 2, …, k).
Далее пусть задан требуемый коэффициент ускорения S. Тогда поиск минимального разбиения множества вершин графа G(V,E) сводится к поиску разбиения, минимального по числу непересекающиеся подмножеств P={V1,…,Vk}, для которого выполняются условия достижения заданного ускорения: max((Qi + Ri), где i=1, 2, …, k)≤ T1/S. (1.1)
При этом значение параметра k определяет минимальное число процессоров в многопроцессорной вычислительной системе, которые будут использоваться согласно разбиению P и обеспечат достижение заданного ускорения.
2. Проверка монотонности зависимости Tk от числа процессоров к
Результаты теоретического анализа предложенных вычислительных схем и экспериментального исследования временной сложности алгоритма Eq2_1 показали эффективность этого математического обеспечения. Но эта эффективность основывалась на неявном предположении о монотонном убывании значений функции Tk, удовлетворяющего соотношению (1.1), при увеличении числа процессоров k. Проверка монотонности Tk выполнялась с использованием статистического моделирования: в каждой точке эксперимента рассчитывалась матрица смежности вершин взвешенного графа (матрица A), который затем подвергался разбиению. Каждая экспериментальная точка характеризовалась числом вершин в графе (n =10, 11, …, 15) и диапазоном отклонения весов вершин и рёбер графа от среднего значения (dtmax=10, 20, …50). При генерации случайных значений матрицы матрица A, подчиняющихся равномерному распределению, использовались стандартные функции языка Си [2, стр. 753]. В ходе вычислительного эксперимента анализировались все возможные варианты разбиения множества V. Эти варианты разбиений были разбиты на классы эквивалентности, каждый из которых включал в себя разбиения с одинаковым числом подмножеств (np). Это число подмножеств являлось номером соответствующего класса эквивалентности. Таким образом, классы эквивалентности получили номера 1, 2, …, n, где n – это число вершин в графе G(V,E). Для каждого класса эквивалентности определялось разбиение, обеспечивающее минимизацию функции Tk.
Основные результаты вычислительного эксперимента с программной реализацией приведённого выше алгоритма представлены в таблицах 1, 2.
Таблица 1
np | Функция max((Qi + Ri), где i=1, 2, …, k), n= 10, kf=5 | ||||
dtmax=10 | dtmax=20 | dtmax=30 | dtmax=40 | dtmax=50 | |
1047.93 | 1109.71 | 1204.94 | 1207.09 | 1326.16 | |
1046.84 | 1099.97 | 1183.43 | 1197.96 | 1278.16 | |
912.141 | 939.28 | 990.687 | 999.382 | 1075.45 | |
748.269 | 781.278 | 830.781 | 840.565 | 892.291 | |
547.908 | 573.773 | 628.536 | 631.851 | 665.934 | |
542.773 | 572.548 | 608.786 | 626.196 | 659.396 | |
542.584 | 566.843 | 606.34 | 607.744 | 648.45 | |
540.253 | 559.112 | 589.004 | 600.598 | 636.543 | |
538.378 | 553.213 | 584.825 | 589.711 | 623.346 | |
300.195 | 321.148 | 345.694 | 359.529 | 382.16 |
Таблица 2
np | Функция S, n= 10, kf=10 | ||||
dtmax=10 | dtmax=20 | dtmax=30 | dtmax=40 | dtmax=50 | |
1055.85 | 1085.55 | 847.791 | 1224.94 | 1281.17 | |
788.788 | 815.194 | 685.55 | 911.122 | 951.402 | |
663.544 | 670.366 | 558.81 | 729.754 | 752.192 | |
532.374 | 542.54 | 409.554 | 598.506 | 620.633 | |
380.065 | 393.036 | 403.619 | 442.324 | 462.905 | |
378.611 | 389.079 | 396.358 | 432.056 | 450.07 | |
375.762 | 384.239 | 390.168 | 428.051 | 445.064 | |
374.347 | 380.112 | 382.772 | 412.031 | 425.039 | |
370.591 | 375.182 | 233.047 | 408.587 | 420.734 | |
203.888 | 218.698 | 847.791 | 246.71 | 260.888 |
Анализ результатов вычислительного эксперимента, приведённых в таблицах 1, 2, показал, что значения исследуемой функции монотонно возрастают с увеличением номера класса эквивалентности np при всех практически значимых сочетаниях таких параметров как число вершин графа, соотношение временной сложности вычислений и коммуникационных затрат, величин отклонений весов вершин и рёбер от среднего значения.