Сальников А. Н. ([email protected]) Факультет ВМиК МГУ

35
Система разработки параллельных программ “PARUS” Сальников А. Н. ([email protected]) Факультет ВМиК МГУ

Upload: syshe

Post on 23-Jan-2016

69 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

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

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

Сальников А. Н. ([email protected])

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

я данных

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

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

в

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

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

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

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

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

вершина

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

Пример текстового описания вершины<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>

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

Пример текстового описания ребра<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>

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

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

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

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

c MPI вызовами

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

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

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

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

системы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Расписание

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

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

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

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

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

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

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

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

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

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

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

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-процессорной реализации параллельного перцептрона

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

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

0

1

2

3

4

5

6

7

8

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

уско

рен

ие

4 проц

6 проц

8 проц

10 проц

16 проц

8 гр -16 проц

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

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

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

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

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

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

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

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

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

02468

101214161820222426283032343638404244

уско

рен

ие

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

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

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

Эффективность для распределённого суммирования на машине МВС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

Процессоры

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

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

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

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----

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

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

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

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

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

терминальных повторов класса 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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