2017 Электротехника, информационные технологии, системы управления № 21 УДК 004.383.3
В.А. Романчук, В.В. Лукашенко
Рязанский государственный университет им. С.А. Есенина, Рязань, Россия
МОДЕЛИРОВАНИЕ СТРУКТУРЫ НЕЙРОКОМПЬЮТЕРНОГО ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА
Рассматривается модель вычислений глобального распределенного вычислительного кластера на базе нейрокомпьютеров, которая имеет программную реализацию в виде системы управления глобальным распределенным вычислительным кластером. Показанная обобщенная модель формирования вычислительной структуры кластера на базе нейропроцессоров, включает модель формирования вычислительной нейрокластерной структуры, модель передачи пакетов по сети, модель загрузки подзадач в вычислительную структуру кластера нейрокомпьютеров. Разработанные модели позволяют реализовывать эффективные кластерные параллельные и распределенные системы с заданными параметрами производительности. Высокий уровень распараллеливания обеспечивает возможность реализации «гибких», перестраиваемых систем различной структуры, т.е. формировать аппаратную базу под заданный алгоритм задачи. Существуют два принципиальных подхода к формированию вычислительной структуры кластера: статический и динамический, поскольку перед непосредственным распределением очередной подзадачи на очередной вычислительный модуль необходимо ввести его в состав вычислительной структуры, а затем направить на него саму задачу. Для реализации модели формирования структуры был выбран динамический подход, согласно которому очередной вычислительный узел резервируется динамически посредством опроса всех вычислительных машин после выполнения задачи предыдущим вычислительным модулем. Плюсом такого вычислительного кластера является сверхбыстрое выполнение задач, минусом - возможные ошибки в маршрутизации и в графе выполнения программ поступившей задачи. В разрабатываемой системе применен принцип динамического резервирования вычислительных машин. Предлагаемая модель передачи сообщений основана на принципе коммутации пакетов при передаче данных, однако следует заметить, что в рамках настоящего исследования рассматриваются и моделируются однонаправленные коммуникации.
Ключевые слова: вычислительная система, облачные вычисления, выбор структуры, граф потока управления, нейрокомпьютер.
V.A. Romanchuk, V.V. Lukashenko
Ryazan State University named after S.A. Yesenin, Ryazan, Russian Federation
MODELING OF THE STRUCTURE OF THE BRAIN-COMPUTER
COMPUTING CLUSTER
In this paper the model of computation of global distributed computing cluster based on neurocomputers, which is a software implementation of a management system globally distributed computing cluster. Shows a generalized model of cluster computing cluster structure based neuroprocessors includes model of computing neuro-clasters structure, packet transmission network model, model download sub-tasks in the computing cluster structure of neuro-computers. The developed models allow to realize
effective clustered parallel and distributed systems with the specified parameters of performance. The high level of parallelization allows the implementation of the "flexible", reconfigurable systems with different structures, that is to form the hardware basis for a given algorithm problem. There are two Prince pial approach to the formation of cluster computing structures: static and dynamic as before the direct distribution of the next sub-tasks for the next calculation module you must enter it in the computer structure, and then direct the task itself to it. To implement dynamic approach was chosen as the model of formation of the structure, according to which another compute node dynamically reserved by interviewing all the computers after the task the previous computing fashion-lem. The advantage of this is the ultra-fast computing cluster tasks. The downside of possible errors in routing and execution of programs box, received the task. The developed system uses the principle of dynamic provisioning of computing machines. Offered messaging model is based on the principle of packet switching for data transmission, but it should be noted that in this study are considered and modeled one-way communication.
Keywords: computer system, cloud computing, the choice of structure, control flow graph, neurocomputer.
Введение. В современной научной и производственной сфере достаточно актуальна задача эффективного использования систем обработки данных из-за недостаточности вычислительных ресурсов для решения ряда задач. Модель вычислений осуществляет связь между архитектурой и моделью программирования в вычислительных системах, а также отражает взаимодействие процессов в них. Но в настоящее время для классифицированных технологий нейрокомпьютерных кластерных вычислений универсальных моделей не построено, что объясняется сильной зависимостью модели вычислений от архитектуры распределенной системы.
В работе рассматривается модель вычислений глобального распределенного вычислительного кластера на базе нейрокомпьютеров, которая имеет программную реализацию в виде системы управления глобальным распределенным вычислительным кластером.
Статический и динамический подходы к формированию вычислительной структуры кластера. Существуют два принципиальных подхода к распространению задач внутри кластера [1]. В рассматриваемом случае это означает, что существуют два подхода к формированию вычислительной структуры кластера: статический и динамический, поскольку перед непосредственным распределением очередной подзадачи на очередной вычислительный модуль необходимо ввести его в состав вычислительной структуры, а затем направить на него саму задачу.
При статическом подходе к распространению подзадач внутри вычислительной структуры вычислительные машины резервируются заранее и остаются занятыми до конца вычислений, после чего запус-
кается процедура разрезевирования, и вычислительные машины возвращаются в режим ожидания. Достоинствами такого способа являются четкая маршрутизация и четкое следование по графу выполнения программы. К недостаткам можно отнести замедление выполнения задач на вычислительном кластере [2, 3].
При динамическом подходе очередной вычислительный узел резервируется динамически посредством опроса всех вычислительных машин после выполнения задачи предыдущим вычислительным модулем. Плюсом такого вычислительного кластера является сверхбыстрое выполнение задач, а минусом - возможные ошибки в маршрутизации и в графе выполнения программ поступившей задачи. В разрабатываемой системе применен принцип динамического резервирования вычислительных машин.
С математической точки зрения задача динамического резервирования определенных машин кластера состоит в нахождении такой функции
81 (г), г = 1, N, где г е[0;+¥ - произвольный момент времени, что
81 (г)->01 (г) = {р (г), Щ (г), Е1 (г), С (г), М1 (г), щ (г), (г), щ (г), щ (г)}.
Функция р (г), г = 1, N показывает, сколько необходимо вычислительных машин кластера для его вычислительной работы в момент времени ге [0; +¥).
Функция Щ (г), г = 1, N показывает, сколько необходимо коммутаторов для связи вычислительных машин в единую сеть в момент времени г е [0; +»). В данном случае в роли коммутатора также может
выступать и вычислительная машина, не участвующая в данных вычислениях, но передающая данные далее по сети.
Функция Ег (г), г = 1, N показывает сетевой маршрут между вычислительными машинами, коммутаторами в момент времени г е [0; +»).
Функции Сг (г), Мг (г), 01 (г), г = 1, N определяют для каждого вычислительного узла количество вычислительных ядер - нейропроцес-соров, объемы оперативной и дисковой памяти в мегабайтах в момент
времени ге [0; +¥).
Функции di (t) и щ (t), как и ранее, показывают объемы доступной оперативной и дисковой памяти, а функция щ (t) характеризует
загруженность вычислительных ядер.
Вычислительные ядра могут относиться как к отдельным процессорам, так и к нескольким многоядерным процессорам. С целью упрощения модели они рассматриваются как единое множество вычислительных ядер узла Pi: X i = (xj,...,xN}, i = 1, N.
Вычисление динамических параметров кластера. Пусть
X = Xi - множество вычислительных ядер всех узлов кластера. Тогда рассмотрим задачу вычисления динамических параметров di (t), mi (t), Ui (t). Процессы, выполняющиеся на вычислительных ядрах, могут напрямую считывать и записывать информацию в оперативную и дисковую память данного узла, взаимодействуя с ними через системную шину или коммутатор. При необходимости передачи сообщения другому вычислительному узлу в рамках одного кластера задействуется сетевая подсистема, осуществляющая разбиение сообщения на пакеты и передачу их по высокопроизводительной коммуникационной сети. Сетевая подсистема каждого узла также содержит коммутатор, выполняющий функции маршрутизации собственных и транзитных пакетов.
Обозначим в качестве id (x,t) номер задачи, исполняющейся на ядре x е X в момент времени t. Если же ядро x в момент времени t было свободно, то id(x,t) = 0. Пусть state(x,t) = (free, communication, computation} - состояния вычислительного ядра x е X в момент времени t (free -свободно, communication - исполняет процесс на стадии коммуникации, computation - исполняет процесс на стадии вычислений).
Значения динамических параметров узла pi в момент времени t могут быть вычислены по следующим формулам:
|(xе Xi: id(x, t) > 0&state(x,t) = computation}
щ (t) = C ' (1)
щ (t) = Mi - X mre , (2)
xeXi ,e=id(x,t)>0
dt (t) = D, - Xdre , (3)
xeXi ,e=id (x,t )>0
где mre и dre - соответственно объемы оперативной и дисковой памяти, необходимой каждому процессу e -й параллельной подзадачи.
Также важно отметить, что индекс i = 1, N строго зависит от N -количества доступных к обработке подпрограмм:
PR =<MK1,MK2,...,MKi,...,MKN >.
Модель передачи сообщений. Предлагаемая модель передачи сообщений основана на принципе коммутации пакетов при передаче данных. Пусть b - стандартный фиксированный размер одного пакета, тогда h < b - размер заголовочной части пакета, в котором содержатся стандартные инструкции по передаче пакета по сети: адреса получателя и отправителя, контрольные суммы, а t < b - хвостовая часть пакета, в которой содержится служебная информация об очередности данного программного кода в графе выполнения программы и очередной номер узла в вычислительной нейрокластерной структуре. Тогда для передачи
сообщения размером m необходимо будет Pack = —m— пакетов.
b - h -1
Тогда модель передачи пакетов по сети распределенного вычислительного кластера можно представить в виде маршрута - множества, членами которого будут являться вычислительные узлы и коммутаторы, которые проходит пакет от вычислительного узла с адресом начала до узла с адресом конца, не нарушая контрольных сумм маршрута:
a = (n1,...ni}, n e P и K, i = . (4)
Основным параметром, характеризующим передачу пакетов по маршруту сети, а также являющимся наиболее важной составляющей общей производительности вычислительного кластера, является время передачи пакета от узла n1 до n - rpacktrans. Для этого сначала определим функцию задержки пакета при передаче от узла n1 до n2, т.е. задержку при передаче пакета между крайними узлами Delay(E12), где E1,2 - сетевая связь из множества Ei между вычислительными узлами
n1 и n2 при условии, что эти узлы связаны напрямую. В данном случае коммутаторы являются узлами, передающими пакеты далее по сети. В вычислениях они не участвуют. Также некоторые вычислительные узлы могут быть заняты для вычислений в данный момент времени t,
но свободны для передачи пакетов далее по сети - в таком случае эти вычислительные узлы выступают в роли коммутаторов.
Таким образом rpacktrans - время передачи пакета Pack по сетевому
маршруту a можно вычислить следующим образом:
rr / п n ^ b b(Pack-1) , ,.. ...
TPacktranS(a, pack) = У + , + U^ac^), (5)
x=1 Delay(£l, x+1) niinDelay( +i)
x=0,,-1
где troutlng - среднее время маршрутизации пакета. Это время затрачивает каждое сетевое устройство любого узла. В данной формуле не учитываются задержки, связанные с сетевой конкуренцией пакетов, поскольку она исключается использованием вычислительных нейрок-ластерных структур и динамического распределения задач по узлам вычислительного кластера.
Вычислительная загрузка кластера формируется из потока подзадач Task = {task1,...,task}, i = 1,N, которые формируются в результате
работы Az - алгоритма разбиения задач, поступивших на выполнение в вычислительный кластер, помещаемых им в очередь задач. Каждая задача является параллельной неинтерактивной программой, способной работать в пакетном режиме. Процессы этой задачи запускаются планировщиком, реализующим один из подходов к распространению подзадач внутри вычислительной структуры, в данной работе выбран динамический подход. Процессы запускаются одновременно по мере освобождения вычислительных машин от предыдущих задач, во время работы вычислительные ядра-нейропроцессоры обмениваются друг с другом сообщениями.
Для каждой задачи task1 необходимо математически определить требования к ресурсам кластера, такие как: количество необходимых нейропроцессоров xi, объем оперативной mre и дисковой памяти dre, необходимой каждому процессу e -й параллельной подзадачи в килобайтах, временную оценку ti - время, необходимое для исполнения каждого процесса в нейропроцессоре, и время выполнения подзадачи на нейропроцессоре целиком - Тюп.
taski = (xi > mre, dre, ti, ^п X (6)
Гвзп = t1 u t2... u t,i, i = 1, N. (7)
С учетом выделенных планировщиком ресурсов T взп можно вычислить по формуле
Tвзп=-^ ' (8)
min Si
ieNj
где Sj - относительная производительность каждого нейропроцессора,
которая определяет, во сколько раз ядра данного узла работают быстрее вычислительных ядер самого непроизводительного узла, Nj - множество номеров вычислительных узлов p,, отданных подзадаче.
Структура каждой задачи taski может быть описана с помощью
SPMD-модели. SPMD (Single Program Multiple Data) - модель, подкласс MIMD моделей по классификации Флинна, описывает систему, где на всех процессорах MIMD-машины выполняется только одна единственная программа, и на каждом процессоре она обрабатывает разные блоки данных, именно такая модель присуща распределенным вычислительным кластерам [6]. Выполнение каждого процесса параллельной задачи представляет собой чередование коммутационной фазы и фазы вычислений.
Опишем коммуникационную фазу выполнения подзадачи. Коммуникационная фаза на каждой итерации может быть представлена в виде одного коммуникационного паттерна CPp из множества
CP = |СР:,...,CP,...,CPN},i = IN :
CP = (proCj, pi (proCj, proCj+1)), (9)
где proc1 - множество процессов подзадачи, а pt (proc, ,proc(-+1) -функция, определяющая количество пакетов сообщения, передаваемого от процесса proc, к процессу proci+1. Выполнение коммуникационной фазы для каждого процесса proc, состоит из двух шагов: на первом шаге происходит неблокируемая рассылка сообщений всем свободным процессам, ожидающим приема пакетов, а на втором шаге происходит блокируемый прием пакетов от конкретных процессов, которым предназначаются рассылаемые неблокируемые данные. В литературе встречаются следующие типичные паттерны: Random, Pairs, Ring, One-to-all и All-to-all [4-8].
В рамках настоящего исследования рассматриваются и моделируются однонаправленные коммуникации. Моделирование коллективных коммуникаций достаточно сложно и не входит в задачи исследования. Опишем вычислительную фазу выполнения подзадачи. Основным параметром, характеризующим эту фазу, является время выполнения процесса proc; на нейропроцессоре. Введем функцию j(proc;) ® pi, которая ставит в соответствие каждому процессу proc вычислительный модуль -
нейропроцессор, на который он назначен алгоритмом планирования. В общем виде будем считать, что каждый процесс тратит одинаковое время на выполнение вычислительной части каждой итерации SPMD-мо-дели задачи. Тогда время выполнения коммутационной фазы процессом proci можно вычислить по формуле:
T выч(РГОС; ) = —^-- . (10)
miSi (j(proc;))
Следовательно, если взять T^^roc) - время выполнения коммуникационной фазы процессом proc; задачи taslq, тогда реальное время выполнения задачи Ttask может быть вычислено по формуле:
Гm; t 1
Тtask= max\ 2:Гк0м(proc;) + ——j-- k (11)
[;=1 m;Si(j(proc;)) J
Следует отметить, что величина Тком (proc;) зависит от сетевой
конкуренции и от физического расположения нейропроцессов на вычислительных узлах, ее значение может быть вычислено непосредственно в процессе работы вычислительного кластера и его управляющей системы. Также следует отметить, что в рамках данной модели происходит пренебрежение временем разбиения сообщения на пакеты ввиду его незначительности [9-11].
Выводы. Показаны формализованное описание и обобщенная модель функционирования вычислительной системы на базе нейрокомпьютеров, включающая ее характеристики, возможные структуры при взаимодействии с памятью, модель передачи сообщений и модель распределения задач внутри облачного кластера. Модель нейрокомпь-ютерного кластера позволяет более эффективно использовать системы обработки данных на базе специализированных аппаратных ресурсов -нейропроцессоров.
Библиографический список
1. Галушкин А.И. Нейронные сети: основы теории. - М.: Горячая линия-Телеком, 2010.
2. Топорков В.В. Модели распределенных вычислений. - М.: Физматлит, 2004.
3. Ручкин В.Н., Романчук В. А., Лукашенко В.В. Обобщенная модель вычислений кластера нейрокомпьютеров // Вестник Рязан. гос. ун-та им. С.А. Есенина. - 2015. - № 2(47). - С. 146-150.
4. Лукашенко В.В. Анализ основных вопросов классификаций распределенных вычислительных систем // Современная техника и технологии. - 2015. - № 4(44). - С. 65-69.
5. Романчук В. А., Ручкин В.Н. Оценка результатов моделирования вычислительных систем на базе нейропроцессоров // Известия Тульск. гос. ун-та. Технические науки. - 2013. - Вып. 9-2. -С. 194-203.
6. Романчук В.А., Ручкин В.Н. Разработка алгоритмов определения вида структуры нейропроцессорной системы на основе описания связей ее элементов // Информатика и прикладная математика: межвуз. сб. науч. тр. - 2011. - Вып. 17. - С. 106-109.
7. Романчук В.А., Лукашенко В.В. Модель описания функционирования нейропроцессора как сложной параллельной системы // Автоматизация и управление в технических системах. - 2015. -№ 2(14). - С. 13-24.
8. Романчук В.А. Разработка алгоритмов определения связей элементов вычислительной структуры на базе нейропроцессоров // Информатика и прикладная математика: межвуз. сб. науч. тр. - Рязань: Изд-во Рязан. гос. ун-та им. С. А. Есенина, 2011. - Вып. 17. - С. 102-105.
9. Макаров Д.В., Романчук В. А. Облачные SaaS, IaaS, PaaS системы для искусственного интеллекта [Электронный ресурс] // Современная техника и технологии. - 2015. - № 5(45). - С. 75-78. - URL: http://technology.snauka.ru/2015/05/6731 (дата обращения: 04.01.2017).
10. Бурцев В.С. Параллелизм вычислительных процессов и развитие архитектуры супер ЭВМ. - М.: Изд-во ИВВС РАН, 1997.
11. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. -СПб.: БХВ-Петербург, 2002.
ВА. PoMamyK, B.B. ïïyKarnenKo
References
1. Galushkin A.I. Neironnye seti: osnovy teorii [Neuron networks: the theory base]. Moscow: Goriachaia liniia-Telekom, 2010.
2. Toporkov V.V. Modeli raspredelennykh vychislenii [Grid computer models]. Moscow: Fizmatlit, 2004.
3. Ruchkin V.N., Romanchuk V.A., Lukashenko V.V. Obobshchennaia model' vychislenii klastera neirokomp'iuterov [Generic models of the neural computers calculation clusters]. Vestnik Riazanskogo gosudarstvennogo universiteta imeni S.A. Esenina, 2015. no. 2(47), pp. 146-150.
4. Lukashenko V.V. Analiz osnovnykh voprosov klassifikatsii raspredelennykh vychislitel'nykh sistem [The analysis of the distributed system classification main questions]. Sovremennaia tekhnika i tekhnologii, 2015, no. 4(44), pp. 65-69.
5. Romanchuk V.A., Ruchkin V.N. Otsenka rezul'tatov modeli-rovaniia vychislitel'nykh sistem na baze neiroprotsessorov [Results assessment of computing system modeling on the base of neuroprocessor]. Izvestiia Tul'skogo gosudarstvennogo universiteta. Tekhnicheskie nauki, 2013, iss. 9-2, pp. 194-203.
6. Romanchuk V.A., Ruchkin V.N. Razrabotka algoritmov opredeleniia vida struktury neiroprotsessornoi sistemy na osnove opisaniia sviazei ee elementov [Algorithms development of neuroprocessor system structure type definition]. Mezhvuzovskii sbornik nauchnykh trudov "Informatika iprikladnaia matematika", 2011, iss. 17, pp. 106-109.
7. Romanchuk V.A., Lukashenko V.V. Model' opisaniia funktsioni-rovaniia neiroprotsessora kak slozhnoi parallel'noi sistemy [The model of neuroprocessor functional description as complex parallel system]. Avtoma-tizatsiia i upravlenie v tekhnicheskikh sistemakh, 2015, no. 2(14), pp. 13-24.
8. Romanchuk V.A. Razrabotka algoritmov opredeleniia sviazei elementov vychislitel'noi struktury na baze neiroprotsessorov [Algorithm development of computing structure elements connection definitions on the base of neuroprocessor]. Mezhvuzovskii sbornik nauchnykh trudov "Informatika i prikladnaia matematika". Riazanskii gosudarstvennyi universitet imeni S.A. Esenina, 2011, iss. 17, pp. 102-105.
9. Makarov D.V., Romanchuk V.A. Oblachnye SaaS, IaaS, PaaS sistemy dlia iskusstvennogo intellekta [Cloud-based systems SaaS, IaaS, PaaS for artificial intelligent]. Sovremennaia tekhnika i tekhnologii, 2015,
no. 5, available at: URL: http://technology.snauka.ru/2015/05/6731 (accessed 04 January 2017).
10. Burtsev V.S. Parallelizm vychislitel'nykh protsessov i razvitie arkhitektury super elektronno-vychislitel'nykh mashin [Computing process concurrent and super computer architecture derivation]. Moscow: Institut vysokoproizvoditel'nykh vychislitel'nykh sistem Rossiiskoi akademii nauk, 1997.
11. Voevodin V.V., Voevodin Vl.V. Parallel'nye vychisleniia [Parallel computing]. Saint Petersburg: BKhV-Peterburg, 2002.
Сведения об авторах
Романчук Виталий Александрович (Рязань, Россия) - кандидат технических наук, доцент кафедры информатики, вычислительной техники и методики преподавания информатики Рязанского государственного университета им. С. А. Есенина (390000, Рязань, ул. Свободы, 46, e-mail: v.romanchuk@rsu.edu.ru).
Лукашенко Владислав Владиславович (Рязань, Россия) - инженер отдела телекоммуникаций Рязанского государственного университета им. С.А. Есенина (390000, Рязань, ул. Свободы, 46, e-mail: v.lukashenko@rsu.edu.ru).
About the authors
Romanchuk Vitaliy Aleksandrovich (Ryazan, Russian Federation) is a Ph.D. in Technical Sciences, Associate Professor of computer science, computer engineering and computer science teaching methodology at Ryazan State University named after S.A. Yesenin (390000, Ryazan, 46, Svobody Str., e-mail: v.romanchuk@rsu.edu.ru).
Lukashenko Vladislav Vladislavovich (Ryazan, Russian Federation) is an Engineer of telecommunications Department at Ryazan State University named after S.A. Yesenin (390000, Ryazan, 46, Svobody Str., e-mail: v.lukashenko@rsu.edu.ru).
Получено 16.02.2017