Параллельное программирование кластера нейрокомпьютеров для эмуляции топологии вычислительной сети
Конференция: X Международная научно-практическая конференция "Научный форум: технические и физико-математические науки"
Секция: Информатика, вычислительная техника и управление
X Международная научно-практическая конференция "Научный форум: технические и физико-математические науки"
Параллельное программирование кластера нейрокомпьютеров для эмуляции топологии вычислительной сети
Parallel programming of the neurocomputer cluster for emulation of the computer network topology
Lukashenko Vladislav
Scientific employee of the department of ICT and MPI Ryazan State University named after S.A. Yesenin, Russia, Ryazan
Vitaly Romanchuk
Candidate of Technical Sciences, Associate Professor of the Department of ICT and MPI, Ryazan State University named after S.A. Yesenin, Russia, Ryazan
Аннотация. В статье рассмотрен способ программного виртуального эмулирования кластерной топологии более высокого уровня, а затем, и динамического резервирования в полученной топологии вычислительных машин для создания вычислительной нейрокластерной структуры для нужд параллельного программирования.
Abstract. The article describes a method for software virtual emulation of a cluster topology of a higher level, and then, and dynamic reservation in the resulting topology of computers to create a computational neural cluster structure for the needs of parallel programming
Ключевые слова: распределенныей вычисления; кластерные вычисления; кластеризация вычислительных ресурсов; нейровычисления, нейрокомпьютеры; кластеризация нейрокомпьютеров.
Keywords: distributed computing; cluster computing; clustering of computing resources; neuro computing; neurocomputers; clustering of neurocomputers.
Введение
В современной научной и производственной сфере достаточно актуальна задача использования систем распределенной обработки данных из-за недостаточности вычислительных ресурсов для решения ряда задач. Эффективнее всего для решения поставленной проблемы применимы масштабируемые параллельные высокоскоростные кластеры на базе нейрокомпьютеров [3]. В работе рассматривается конкретная реализация вычислительного кластера на базе нейрокомпьютеров MB77.07 ЗАО «НТЦ Модуль», технические характеристики, преимущества и перспективность которых описана в работах [2-8].
Одним из важнейших компонентов любого кластера при его проектировании является топология внутренней вычислительной сети кластера [9]. С другой стороны в нейрокомпьютерных системах обработка поступающих задач происходит посредством специализированных вычислительных структур [2]. В обоих случая встречаются нестандартные топологии вычислительных сетей связи. В статье рассмотрен способ программного виртуального эмулирования кластерной топологии более высокого уровня, а затем, и динамического резервирования в полученной топологии машин для создания вычислительной структуры. Данный процесс необходим, поскольку в основе идеи разработки кластера на нейрокомпьютерах лежит принцип двойного распараллеливания задач, поступающих на выполнение в такой кластер. Первый этап – это стандартное разбиение задач на атомарные подзадачи, второй этап – размещение на нейрокомпьютеры кластера такого количества задач и данных для них, чтобы их выполнение не занимало более одного нейропроцессорного такта.
Рассмотрим с алгоритмической точки зрения процесс организации и оптимизации четырехмерного гиперкуба на базе стандартной Ethernet сети: выбор первой вычислительной машины кластерной подсети, у которой четвертая секция IP-адреса равна "1", направление broadcast-запроса на широковещательный адрес вычислительной подсети, рекурсивный просмотр tcpdump-файлов каждой вычислительной машины, поиск четырех наименьших значений времени приема пакета, запись в матрицу смежности в соответствующую ячейку последней четвертой секции IP-адреса, переход на шаг 1, выбирая вычислительную машину со следующим порядковым номером 4 секции IP-адреса.
Пример. Пусть есть вычислительный кластер с количеством вычислительных машин . Каждой вычислительной машине назначен IP адрес вида 192.168.0.1-10 и широковещательный адрес 192.168.0.255. Выберем вычислительную машину, у которой 4 секция IP-адреса равна "1". Направляем запрос на широковещательный адрес, для этого воспользуемся специально подготовленной функцией C++.
Формируем очередную ячейку матрицы смежности связей вычислительной подсети кластера.
Следующим шагом исследования является динамическое построение вычислительной нейрокластерной структуры из топологии четырехмерного куба. Рассмотрим модель расписания и критерии по которым составляется расписание планировщиком ресурсов.
Пусть для множества операций , связанных отношением последовательности выполнения операций задан отрезок планирования - переменная времени. Пусть - моменты начала и окончания операции . Тогда расписание в общем случае примет вид:
. (1)
Рассмотрим критерии, влияющие на решение задачи (1). Следует отметить, что первым и самым важным критерием являются количество ресурсов. Чаще всего ресурсы состоят из набора процессоров, памяти и дополнительных ресурсов. Задаются общие уровни наличия каждого типа ресурса во времени:
, (2)
где - число типов ресурсов. Причем - не зависит от времени, верхняя граница -го типа (число процессоров, пропускную способность коммуникационной системы) будем обозначать .
Следующим критерием является система операций. Система операций описывается следующим образом: задается множество операций, которые необходимо выполнить. На множестве операций определяется отношение - последовательности выполнения операций представляемое, в виде ориентированного бесконтурного графа с множеством вершин, соответствующих операциям, и множеством дуг. При этом .
Для - ой операции задается длительность выполнения на -м типе ресурса. Каждая операция характеризуется потребностьюв ресурсах типа , причем . Удельная стоимость (или вес) операции чаще всего полагается постоянной. Тогда стоимость завершения операции равна и представляет собой представляет собой неубывающую от срока завершения операции функцию. Параметры , и образуют вектор параметров операции, а совокупность таких векторов параметрически описывает систему операций и соответствующую графовую модель.
Еще одним критерием являются ограничения на составление расписаний. Расписание (1) является допустимым, если выполняются следующие условия:
, (3)
, (4)
, (5)
где - множество операций, выполняемых в момент времени. - потребность в ресурсе-го типа, а - уровень наличия ресурса-го типа в момент времени . Исходя из вышеописанных принципов формулируется задача составления допустимого в соответствии с (3)-(5) расписания (1).
Решим поставленную задачу для нашего кластера нейрокомпьютеров. Отметим, что в данной статье не рассматривается алгоритм выбора вычислительной структуры нейрокластера под задачу, данный вопрос рассматривается в работе [7].
Вычислительная структура, полученная в результате работы алгоритма, описанного в [7], по своей структуре является полным взвешенным направленным графом. В этом случае ее удобно представить в виде матрицы смежности, строки и столбцы которой будем именовать коэффициентами .
Алгоритм динамического формирования вычислительной структуры
Алгоритм динамического формирования вычислительной структуры:
1. Считывание очередной подзадачи из очереди задач. Если таких не осталось, то переходим на шаг 4.
2. Считывание строки матрицы смежности вычислительной структуры.
· Если подпрограммы, соответствующие операциям в структуре находятся в отношении параллельности, то возвращаемся на шаг 1.
· Если подпрограммы, находятся в отношении последовательности, то переходим на шаг 3.
3. Направление рекурсивного запроса от диспетчера кластера в сетевую топологию, созданную программным путем, т.е. совершаем обход матрицы смежности топологии вычислительной сети кластера. Хвост пакета запроса содержит совокупность параметров , где ,,, определяющие количество нейропроцессоров, объемы свободной оперативной памяти и дисковой памяти в мегабайтах, - разрядность данных, которые возможно разместить на каждом нейропроцессоре вычислительного узла.
4. Резервирование вычислительной машины под каждую подзадачу соответственно очереди, затем направление подзадачи и данных для их работы на зарезервированных вычислительные машины, затем вычисление результатов операций, затем сигнализирование об окончании вычислений пакетом, содержащим результаты вычислений в диспетчер кластера , переход на шаг 1, затем конец вычислений, выдача финального результата вычислений.
Таким образом, был совершен переход от топологии вычислительного кластера к вычислительной нейрокластерной структуре.
Рассмотрен способ программного виртуального эмулирования кластерной топологии, на примере топологии четырехмерного куба, более высокого уровня, а затем и динамического резервирования в полученной топологии машин для создания вычислительной нейрокластерной структуры. Данный процесс позволяет реализовать основную идею разработки кластера на нейрокомпьютерах. В основе его лежит принцип двойного распараллеливания задач, поступающих на выполнение в такой кластер. Первый этап – это стандартное разбиение задач на атомарные подзадачи, второй этап – размещение на нейрокомпьютеры кластера такого количества задач и данных для них, чтобы их выполнение не занимало более одного нейропроцессорного такта.