УДК 519.68
ОБ ОДНОМ ВАРИАНТЕ ДЕЦЕНТРАЛИЗОВАННОГО УПРАВЛЕНИЯ ПАРАЛЛЕЛЬНЫМ ВЫЧИСЛИТЕЛЬНЫМ ПРОЦЕССОМ 1
© А. М. Добычин
Ключевые слова: децентрализованное управление; паралельный вычислительный процесс; темперированное дерево рекурсивного алгоритма.
Аннотация: Предлагается схема децентрализованного управления паралельным вычислительным процессом, использующего темперированное дерево рекурсивного алгоритма.
Задача управления параллельным вычислительным процессом - основная задача программирования с использованием параллельных вычислительных кластеров.
Будем использовать основные определения и понятия из работы [1].
Имеется множество процессоров и темпорированное дерево рекурсивного алгоритма. У каждой вершины дерева имеется одно входное ребро и некоторое количество выходных ребер, которым приписаны натуральные веса. Вес обозначает очередность вычислений поддеревьев, которые начинаются с этих ребер. Совпадение весов обозначает параллельность вычислений.
Задача управления вычислительным процессом состоит в «назначении» поддеревьев определенным процессорам кластера. Это должно происходить в процессе вычислений, и не должен использоваться единый координирующий центр - диспетчер.
Сформулируем основные черты предлагаемого варианта схемы децентрализованного управления.
При каждой вершине дерева алгоритма создается изначально пустой список дополнительных процессоров (ДП). Пусть ребра некоторой вершины V имеют Ь различных весов. При этом ребер веса 1 будет у(1). При вычислении поддеревьев, которые начинаются с ребер веса 1, создадим регистр из у(1) флагов ребер.
Каждый флаг ребра будет принимать значения -1, 0, 1, 2, 3, которые имеют следующий смысл. Флаг 0 означает, что данные по этому поддереву еще не передавались. Флаг -1 означает, что данные по этому поддереву переданы, но состояние вычислительного процесса не определено. Флаг ребра принимает значение 1 в случае, если начаты вычисления всех листовых вершин этого поддерева. Флаг 2 означает, что вычисление данного поддерева закончено, а результат передан в вышестоящую вершину. Флаг 3 означает, что вычисление поддерева начато, но требуются дополнительные процессоры для более быстрого вычисления.
Существуют четыре счетчика Жш1, N0, N1, N2, соответствующие количеству флагов -1, 0, 1, 2. Когда количество флагов со значением 2 становится равным количеству ребер веса 1, то вычисление ребер этого веса считается законченным, переходим к вычислению ребер следующего веса. Если 1=И, то вычисление вершины завершено и результаты вместе со списоком ДП вершины передаются в вышестоящую вершину.
Развитие вычислительного процесса происходит следующим образом.
Главный процессор получает корневую вершину дерева, входные данные и список дополнительных процессоров ДП, содержащий все процессоры кластера: 1,2,..,п.
Пусть поддерево, полученное процессором в, (8=1..п), начинается с вершины V со списком ДП, содержащим g процессоров, включая в. Пусть 1..Ь - веса ребер, исходящих из вершины V.
1 Работа выполнена при частичной поддержке программы "Развитие потенциала высшей школы" (проект 2.1.1/1853).
Производится параллельное вычисление поддеревьев, начинающихся со всех ребер, исходящих из вершины V и имеющих вес i (i=l..h). Сначала вычисляются все поддеревья с весом 1, затем - с весом 2, и так далее - до веса h. При этом каждый раз вычисляются только те поддеревья, у которых флаги равны нулю.
Если число процессоров g в списке ДП не превосходит числа ребер u(i) веса i, то каждому процессору z из списка ДП передается по одной вершине и список ДП, состоящий из одного процессора z. Если g>u(i), то список ДП делится на u(i) частей так, чтобы s был первым процессором в первой части. Первому процессору в j-той (j=l..u(i)) части списка ДП передается j-тая вершина и вся j-тая часть списка ДП, если передаваемая вершина не листовая. Если передаваемая вершина является листовой, то передается только сам первый процессор.
Установка флагов ребер и перераспределение в списке ДП происходит следующим образом.
Когда процессор s получил листовую вершину, которая связана входным ребром R с вершиной V, то флаг ребра R устанавливается равным 1. Когда он заканчивает вычисление этой вершины, тогда флаг ребра R устанавливается равным 2 и номер процессора s дописывается в список ДП вершины V. Если вершина V не корневая вершина дерева алгоритма и список ДП этой вершины не пуст, то этот список ДП дописывается в список ДП вершины, с которой она связана входным ребром.
Предполагается реализовать такую схему организации вычислительного процесса, как альтернативную для схемы LLP. Обе схемы предполагается сравнить на реальных вычислительных задачах на кластере ТГУ им.Г.Р. Державина и на кластере МСЦ РАН.
ЛИТЕРАТУРА
1. Малашопок Г.И., Валеев Ю.Д. Организация параллельных вычислений в рекурсивных символьно-численных алгоритмах // Труды конференции ПаВТ’2008 (Санкт-Петербург). Челябинск: Изд-во ЮУрГУ, 2008. С. 153-165.
Abstract: there is suggested a scheme for decentralized control of a parallel computing process, which uses a tempered tree of a recursive algorithm.
Keywords: decentralized control; parallel computing process; tempered tree of a recursive algorithm.
Добычин Александр Михайлович аспирант
Тамбовский государственный университет им. Г.Р. Державина Россия, Тамбов e-mail: [email protected]
Alexandr Dobychin post-graduate student Tambov State University named after G.R. Derzhavin Russia, Tambov e-mail: [email protected]