1 / 35

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

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

syshe
Download Presentation

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

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

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

  3. Общая схема работы системы “PARUS” • На вход системы поступает программа, оформленная как блок-схема потока данных. • Создатель алгоритма формирует набор этапов алгоритма и описывает схему их взаимодействия как процесс обмена информацией между этапами алгоритма. В результате получается ориентированный графпотока данных. • При создании программы этапы описываются как текстовый файл с набором операторов языка C (допустимы определения переменных и декларации типов). • Система “PARUS” воспринимает такое описание алгоритма, преобразует его в программу и осуществляет запуск алгоритма, где обмен информацией между этапами реализован через вызовы MPI-функций без участия создателя алгоритма.

  4. Краткое описание граф-программы Чтение и инициализация данных Алгоритм описывается как сеть извершин: • истоков • внутренних вершин • стоков Описание графа хранится в текстовом файле, по которому затем строится C++ код c MPI вызовами. Обработка данных Запись результатов

  5. Структура описания ребра графа • Массивы принимаемой и передаваемой информации по рёбрам графа разбиваются на непересекающиеся фрагменты (чанки). • Принимающей стороной фрагменты могут быть собраны в другом порядке. Int b[]; Int a[]; Принимающая вершина

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

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

  8. Этап создания граф-программы разработчиком Редактор графа Исходный файл граф-программы Преобразователь в C++ c MPI вызовами С++ граф-программа

  9. Этапы работы с системой “PARUS” • Тестирование многопроцессорной системы • Создание параллельной программы и её компиляция • Построение расписания и исполнение параллельной программы

  10. Цели этапа тестирования • Обеспечить систему “PARUS” сведениями о производительности процессоров и пропускной способности коммуникационной среды для этапа исполнения граф-программы. • Получить усреднённую производительность процессоров многопроцессорной системы при выполнении определённого числа действий с плавающей точкой. • Выяснить среднюю пропускную способность каналов многопроцессорной системы при передаче сообщения фиксированного размера при заданном уровне “шумовых” сообщений.

  11. Этаптестирования многопроцессорной системы Монитор Сетевой информации Тест сети Тест процессоров Результаты теста Результаты теста

  12. Тестирование производительности процессоров • Измерения производительности каждого процессора осуществляются с помощью типового теста (перемножения матриц определённого размера). • Результат записывается как вектор в файл (элемент вектора - время работы каждой MPI-нити на каждом из процессоров в секундах). • В дальнейшем этот файл будет использоваться при вычислении времени выполнения вершины на процессоре.

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

  14. Машины, на которых проводилось тестирование • MBC1000-M, 768 процессоров Alpha(кластерная архитектура) • IBM eServer pSeries 690 (“Регата”), 16 процессоров Power4+(NUMA архитектура) • Sun Fujitsu PRIMEPOWER 850 Server, 16 процессоров SPARC64-V (архитектура с общей памятью)

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

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

  17. Модель параллельных процессов, используемая “PARUS” • Параллельная программа строится как множество независимых между собой процессов (MPI-процессов), где каждый связан со своим исполнителем (процессоромили компьютером целиком). • Взаимодействие процессов и синхронизация их работы происходит с помощью передачи сообщений.

  18. Механизм исполнения граф-программы • Полученная скомпилированная С++ программа запускается на многопроцессорной системе, в результате получается множество MPI-процессов, по числу задействованных процессоров. Для обеспечения исполнения граф-программы “PARUS” разделяет MPI-процессы по “ролям”. • В процессе исполнения программы на многопроцессорной системе производится динамическое назначение вершин графа по MPI-процессам. • Минимизируются времена передач данных. • Выбирается процессор, на котором время обработки вершины минимально (в случае гетерогенной машины). • Передача по рёбрам происходит одновременно с обработкой других вершин граф-программы передающим MPI-процессом.

  19. Разделение MPI-процессов по ролям • Управляющая нить: • Выбирает вершину для назначения на нить • Выбирает ребро для назначения на нить • Остальные нити: • Исполняют вершины • Хранят наработанные вершинами данные • Пересылают и принимают данные по рёбрам другим MPI-процессам

  20. Режимы назначения вершин наобработку MPI-процессами “PARUS” • Статический • Назначение вершин происходит согласно расписанию, составленному заранее при помощи генетического алгоритма с учётом данных, полученных на этапе тестирования • Динамический • Расписание не составляется, а назначение вершин происходитв моменты освобождения процессоров с учётом данных, полученных на этапе тестирования • Комбинированный • Предоставляет возможность учитывать пожелания разработчика граф-программы по назначению вершины на MPI-процесс

  21. Этап построения расписания и исполнения параллельной программы Результаты тестов Откомпилированная граф-программа Результаты работы Исходный файл граф-программы Расписание Построитель расписаний

  22. Искусственная нейронная сеть (параллельный перцептрон) Распределённая операция над массивом Построение множественного выравнивания нуклеотидных последовательностей Апробация системы “PARUS” производилась на решении следующих практических задач:

  23. Параллельная реализация перцептрона • Каждый слой сети разделяется на группы. • Нейроны, попадающие в одну группу, относятся к одной вершине графа. • Рёбра между нейронами сливаются в одно ребро и превращаются в рёбра между группами.

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

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

  26. Параллельная реализация определённой операции над массивом чисел (на примере суммирования). • массив делитсяn на частей размера m. Эти части независимо друг от друга суммируются, в результате получаетсяnзначений суммы. • получившийся массив также делится на части размера не больше, чем m,и процедура повторяется.

  27. Граф-программа для реализации параллельного суммирования Массив разбит для операции над 2-мя элементами.

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

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

  30. Множественное выравнивание нуклеотидных последовательностей • Выравнивание используется для моделирования эволюции живых организмов, предсказания генов, и других задач генетики AY283774 TAGACGCGCTAGCTTCAGGTGTTAGTGTCCTTACGGACGTGGGGGTTCAAGTCCCCCCCC AY283775 TAGAC---CTCAACTGAGGTCTTTTTTTATGCCTGAAATCCAGTGTTTATCTATCTTTCC MC2TRGC CAGACGCACTAGACTTAGGATCTAGCGTCTTT---GACGTAAGGGTTCAAGTCCCTTATC ECTRNAL TAGACACGCTACCTTGAGGTGGTAGTGCCCAATAGGGCTTACGGGTTCAAGTCCCGTCCT **** ** * *** * * *** * * * AY283774 TCGCACCACGACTTT---AAAG--AATTGAACTAAAAATTCAAAAAGCAGTATTTCGGCG AY283775 CGCTATATTAACTCTCTCAAGGTCAACC-------GATATCAACGTAC-ATCTACCAACA MC2TRGC CCCCACCA--ATTTT---GAATTTAACC------AGATTTTTCTGGTTTTTTATTTGAAA ECTRNAL CGGTACCA-AATTCC---AGAA--AA-------GAGACGCTGAAAAGC-GTCTTTTTTCG * * * ** * * AY283774 AGTAGCG----CAGCTTGGTAGC- AY283775 TAT--------------------- MC2TRGC TTTTAAAATGTTATTTTAAGAAAT ECTRNAL TTTTG-------GTCCTGGT----

  31. Доступ к построителю множественного выравнивания • Реализация параллельной программы, осуществляющей множественное выравнивание нуклеиновых и аминокислотных последовательностей, доступна online по адресу: • http://monkey.genebee.msu.ru/~salnikov/

  32. Данные для тестированиязадачи множественного выравнивания. • Основу составила коллекция длинных терминальных повторов класса 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.

  33. Результаты тестирования • Тестирование проводилось на машине Prime Power 850. • В однопроцессорном варианте множественное выравнивание для ~1200последовательностейдлины ~1000занимает 1 час 8 минут. • В многопроцессорном варианте для 12 процессоров – 28 минут (ускорение приблизительно в 2,4 раза).

  34. Результаты диссертационной работы • Создана форма описания параллельной программы как графа зависимости по данным между последовательными фрагментами кода, а также компилятор языка, который строит исходный код на С++ со вставками вызовов MPI-функций. • Предложен алгоритм управления MPI-процессами и передачами данных при исполнении граф-программы на многопроцессорной системе. • Реализовано 3 алгоритма назначения вершин графа на MPI-процессы с использованием данных, полученных на этапе тестирования многопроцессорной системы. • Исследована применимость системы “PARUS” на основе созданных параллельных программных реализаций для модельных задач. • Программная реализация компонент системы “PARUS” оформлена как система с открытым исходным кодом и доступна в Internet по адресу:http://parus.sf.netи используется для решения ряда практических задач.

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

More Related