Сальников А. Н. (salnikov@cs.msu.su) Факультет ВМиК МГУ

Preview:

DESCRIPTION

Система разработки параллельных программ “PARUS”. Сальников А. Н. (salnikov@cs.msu.su) Факультет ВМиК МГУ. Цели диссертационной работы. Создать среду программирования для разработки и исполнения параллельных программ в гетерогенной среде. - PowerPoint PPT Presentation

Citation preview

Система разработки параллельных программ “PARUS”

Сальников А. Н. (salnikov@cs.msu.su)

Факультет ВМиК МГУ

Цели диссертационной работы Создать среду программирования для

разработки и исполнения параллельных программ в гетерогенной среде.

Предложить способ описания алгоритма решения задачи как набора действий, взаимодействующих между собой через передачу данных.

Общая схема работы системы “PARUS” На вход системы поступает программа, оформленная

как блок-схема потока данных. Создатель алгоритма формирует набор этапов алгоритма и

описывает схему их взаимодействия как процесс обмена информацией между этапами алгоритма. В результате получается ориентированный граф потока данных.

При создании программы этапы описываются как текстовый файл с набором операторов языка C (допустимы определения переменных и декларации типов).

Система “PARUS” воспринимает такое описание алгоритма, преобразует его в программу и осуществляет запуск алгоритма, где обмен информацией между этапами реализован через вызовы MPI-функций без участия создателя алгоритма.

Краткое описание граф-программы Алгоритм описывается как

сеть из вершин:

истоков внутренних вершин стоков

Описание графа хранится в текстовом файле, по которому затем строится C++ код c MPI вызовами.

Чтение и инициализаци

я данных

Обработка данных

Запись результато

в

Структура описания ребра графа Массивы принимаемой и передаваемой информации по

рёбрам графа разбиваются на непересекающиеся фрагменты (чанки).

Принимающей стороной фрагменты могут быть собраны в другом порядке.

Int a[]; Int b[];Принимающая

вершина

Пример текстового описания вершины<NODE_BEGIN> number 1 type 1 weight 100 layer 2 num_input_edges 1 edges ( 1 ) num_output_edges 1 edges ( 2 ) head "head" body "node" tail "" <NODE_END>

Пример текстового описания ребра<EDGE_BEGIN>

number 2

weight 2

type GRAPH_NONE

num_var 1

num_send_nodes 1

send_nodes ( 2 )

num_recv_nodes 1

recv_nodes ( 5 )

<SEND_BEGIN>

<CHUNK_BEGIN>

name "*data_out"

type GRAPH_DOUBLE

left_offset "0"

right_offset "window_size+F_LEN"

<CHUNK_END>

<SEND_END>

<RECIEVE_BEGIN>

<CHUNK_BEGIN>

name "*data_out"

type GRAPH_DOUBLE

left_offset "0"

right_offset "window_size"

<CHUNK_END>

<RECIEVE_END>

<EDGE_END>

Этап создания граф-программы разработчиком

Исходный файл граф-программы

Преобразователь в C++

c MPI вызовами

С++ граф-программа

Редакторграфа

Этапы работы с системой “PARUS” Тестирование многопроцессорной

системы

Создание параллельной программы и её компиляция

Построение расписания и исполнение параллельной программы

Цели этапа тестирования

Обеспечить систему “PARUS” сведениями о производительности процессоров и пропускной способности коммуникационной среды для этапа исполнения граф-программы.

Получить усреднённую производительность процессоров

многопроцессорной системы при выполнении определённого числа действий с плавающей точкой.

Выяснить среднюю пропускную способность каналов многопроцессорной системы при передаче сообщения фиксированного размера при заданном уровне “шумовых” сообщений.

Этап тестирования многопроцессорной системы

Тест сети Тест процессоров

Результаты теста Результаты теста

МониторСетевой информации

Тестирование производительности процессоров Измерения производительности каждого

процессора осуществляются с помощью типового теста (перемножения матриц определённого размера).

Результат записывается как вектор в файл (элемент вектора - время работы каждой MPI-нити на каждом из процессоров в секундах).

В дальнейшем этот файл будет использоваться при вычислении времени выполнения вершины на процессоре.

Тестирование коммуникационной среды С помощью системы тестов измеряется

время передачи сообщений между MPI-процессами.

По результатам работы каждого теста формируется 4-мерное представление производительности сети (длина сообщения, передающий процессор, принимающий процессор, время передачи).

Машины, на которых проводилось тестирование

MBC1000-M, 768 процессоров Alpha (кластерная архитектура)

IBM eServer pSeries 690 (“Регата”), 16 процессоров Power4+ ( NUMA архитектура)

Sun Fujitsu PRIMEPOWER 850 Server, 16 процессоров SPARC64-V (архитектура с общей памятью)

Пример визуализации результатов тестирования

Пример визуализации загруженности каналов связи МВС-1000М, задействовано 15 процессоров, длина

передаваемого сообщения 1000 байт

Модель параллельных процессов, используемая “PARUS” Параллельная программа строится как

множество независимых между собой процессов (MPI-процессов), где каждый связан со своим исполнителем (процессором или компьютером целиком).

Взаимодействие процессов и синхронизация их работы происходит с помощью передачи сообщений.

Механизм исполнения граф-программы Полученная скомпилированная С++ программа запускается

на многопроцессорной системе, в результате получается множество MPI-процессов, по числу задействованных процессоров. Для обеспечения исполнения граф-программы “PARUS” разделяет MPI-процессы по “ролям”.

В процессе исполнения программы на многопроцессорной системе производится динамическое назначение вершин графа по MPI-процессам.

Минимизируются времена передач данных. Выбирается процессор, на котором время обработки

вершины минимально (в случае гетерогенной машины).

Передача по рёбрам происходит одновременно с обработкой других вершин граф-программы передающим MPI-процессом.

Разделение MPI-процессов по ролям Управляющая нить:

Выбирает вершину для назначения на нить Выбирает ребро для назначения на нить

Остальные нити: Исполняют вершины Хранят наработанные вершинами данные Пересылают и принимают данные по рёбрам

другим MPI-процессам

Режимы назначения вершин на обработку MPI-процессами “PARUS” Статический

Назначение вершин происходит согласно расписанию, составленному заранее при помощи генетического алгоритма с учётом данных, полученных на этапе тестирования

Динамический Расписание не составляется, а назначение вершин

происходит в моменты освобождения процессоров с учётом данных, полученных на этапе тестирования

Комбинированный Предоставляет возможность учитывать пожелания

разработчика граф-программы по назначению вершины на MPI-процесс

Этап построения расписания и исполнения параллельной программы

Исходный файл граф-программы

Построитель расписаний

Результаты тестов

Откомпилированнаяграф-программа

Результаты работы

Расписание

Апробация системы “PARUS” производилась на решении следующих практических задач:

Искусственная нейронная сеть (параллельный перцептрон)

Распределённая операция над массивом

Построение множественного выравнивания нуклеотидных последовательностей

Параллельная реализация перцептрона

Каждый слой сети разделяется на группы.

Нейроны, попадающие в одну группу, относятся к одной вершине графа.

Рёбра между нейронами сливаются в одно ребро и превращаются в рёбра между группами.

0,0

0,1

0,2

0,3

0,4

0,5

0,6

0,7

0,8

0,9

1,0

1,1

1,2

1,3

1,4

1,5

1,6

1,7

1,8

1,9

2,0

число входов перцептрона

уско

рен

ие 4 проц

6 проц

8 проц

10 проц

16 проц

Зависимость ускорения от числа входов по отношению к 2-процессорной реализации параллельного перцептрона

Результаты тестирования (число групп меньше числа процессоров)

0

1

2

3

4

5

6

7

8

число входов перцептрона

уско

рен

ие

4 проц

6 проц

8 проц

10 проц

16 проц

8 гр -16 проц

Параллельная реализация определённой операции над массивом чисел (на примере суммирования).

массив делится n на частей размера m. Эти части независимо друг от друга суммируются, в результате получается n значений суммы.

получившийся массив также делится на части размера не больше, чем m, и процедура повторяется.

Граф-программа для реализации параллельного суммирования

Массив разбит для операции над 2-мя элементами.

Ускорение для распределённого суммирования на машине МВС1000-М

02468

101214161820222426283032343638404244

уско

рен

ие

3 5 7 9 11 13 15 17 19 21 25 35 45 55 65 75 90 100

число процессоров

Эффективность для распределённого суммирования на машине МВС1000-М

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

1.1

Эф

фек

тив

но

сть

3 5 7 9 11 13 15 17 19 21 25 35 45 55 65 75 90 100

Процессоры

Множественное выравнивание нуклеотидных последовательностей Выравнивание используется для моделирования эволюции живых

организмов, предсказания генов, и других задач генетики

AY283774 TAGACGCGCTAGCTTCAGGTGTTAGTGTCCTTACGGACGTGGGGGTTCAAGTCCCCCCCCAY283775 TAGAC---CTCAACTGAGGTCTTTTTTTATGCCTGAAATCCAGTGTTTATCTATCTTTCCMC2TRGC CAGACGCACTAGACTTAGGATCTAGCGTCTTT---GACGTAAGGGTTCAAGTCCCTTATCECTRNAL TAGACACGCTACCTTGAGGTGGTAGTGCCCAATAGGGCTTACGGGTTCAAGTCCCGTCCT **** ** * *** * * *** * * *

AY283774 TCGCACCACGACTTT---AAAG--AATTGAACTAAAAATTCAAAAAGCAGTATTTCGGCGAY283775 CGCTATATTAACTCTCTCAAGGTCAACC-------GATATCAACGTAC-ATCTACCAACAMC2TRGC CCCCACCA--ATTTT---GAATTTAACC------AGATTTTTCTGGTTTTTTATTTGAAAECTRNAL CGGTACCA-AATTCC---AGAA--AA-------GAGACGCTGAAAAGC-GTCTTTTTTCG * * * ** * *

AY283774 AGTAGCG----CAGCTTGGTAGC-AY283775 TAT---------------------MC2TRGC TTTTAAAATGTTATTTTAAGAAATECTRNAL TTTTG-------GTCCTGGT----

Доступ к построителю множественного выравнивания Реализация параллельной программы, осуществляющей

множественное выравнивание нуклеиновых и аминокислотных последовательностей, доступна online по адресу: http://monkey.genebee.msu.ru/~salnikov/

Данные для тестирования задачи множественного выравнивания. Основу составила коллекция длинных

терминальных повторов класса 5 (LTR5). http://math.genebee.msu.ru/

Совместный проект Института физико-химичесой биологии им. А.Н. Белозерского МГУ и Людвиговского института раковых исследований "Ludwig Institute for Cancer Research", грант CRDF RB01277-MO-2.

Alexeevski A.V., Lukina E.N., Salnikov A.N., Spirin S.A. “Database of long terminal repeats in human genome: structure and synchronization with main genome archives” // “Proceedings of the fours international conference on bioinformatics of genome regulation and structure”, Volume 1. BGRS 2004, Novosibirsk, редакционно-издательский отдел ИциГ СО РАН, стр. 28-29.

Результаты тестирования

Тестирование проводилось на машине Prime Power 850.

В однопроцессорном варианте множественное выравнивание для ~1200 последовательностей длины ~1000 занимает 1 час 8 минут.

В многопроцессорном варианте для 12 процессоров – 28 минут (ускорение приблизительно в 2,4 раза).

Результаты диссертационной работы Создана форма описания параллельной программы как графа

зависимости по данным между последовательными фрагментами кода, а также компилятор языка, который строит исходный код на С++ со вставками вызовов MPI-функций.

Предложен алгоритм управления MPI-процессами и передачами данных при исполнении граф-программы на многопроцессорной системе.

Реализовано 3 алгоритма назначения вершин графа на MPI-процессы с использованием данных, полученных на этапе тестирования многопроцессорной системы.

Исследована применимость системы “PARUS” на основе созданных параллельных программных реализаций для модельных задач.

Программная реализация компонент системы “PARUS” оформлена как система с открытым исходным кодом и доступна в Internet по адресу: http://parus.sf.net и используется для решения ряда практических задач.

Спасибо за внимание!

Recommended