Библиотека        Биография        Ссылки        Статистика поиска


Донецкий национальный технический университет

Кияшко Антон Александрович

"Разработка и исследование алгоритмов формирования топологий MIMD-моделей сетевых объектов на базе MPI-стандарта."


Руководитель: Святный В.А.

Специальность: "Компьютерные системы и сети"

Автореферат магистрской выпускной работы

Донецк 2002






Общая характеристика работы

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

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

С развитием этой области компьютерной индустрии резко увеличелся спрос на подобную технику. Это привело к необходимости создания качественного програмного обеспечения Были созданны специальные стандарты для написания программ для параллельных вычислений. Это уже ставише популярными MPI,PVM и другие стандарты.

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

Данная проблема очень актуальна на сегодняшний день. Это объясняется тем, в наше время развитие науки и техники шагает киллометровыми шагами. В связи с этим связи с этим возникают такие объемные задачи, решить которые с помощью обычных компьютеров практически невозможно. Здесь на помощь приходят СуперЭВМ.

Содержание работы

СуперЭВМ и кластеры

Сейчас на рынке суперкомпьютеров наблюдается жесткая конкуренция двух основных классов параллельных вычислительных систем. С одной стороны выступают классические дорогостоящие высокопроизводительные суперЭВМ, с другой стороны - вычислительные кластеры.

Оба этих класса требуют внимания. Поэтому будет целесообразно дать краткую характеристику основных свойств каждого из них.

Классические суперкомпьютеры всегда ассоциировались с чем-то большим: размеры, гигантская производительность, немереная память и, конечно же, колоссальная стоимость.

Первым серьезным прорывом в уменьшении отношения цена/производительность стало появление компьютеров с массовым параллелизмом. Использование серийных микропроцессоров позволило не только гибко менять мощность установки в зависимости от потребностей и возможностей, но и значительно удешевить производство. Примерами суперкомпьютеров этого класса могут служить Intel Paragon, IBM SP, Сray T3D/T3E и ряд других.

Единственным способом взаимодействия процессоров в рамках подобных систем было их общение через некоторую коммуникационную среду, объединяющую процессоры в единую вычислительную установку. Например, в компьютерах семейства Сray T3D/T3E все процессоры объединены специальными высокоскоростными каналами в трехмерный тор, в котором каждый вычислительный узел имеет шесть непосредственных соседей. В компьютере IBM SP/2 взаимодействие процессоров идет через иерархическую систему переключателей, потенциально обеспечивающей непосредственное соединение каждого процессора с любым другим.

Однако все уникальные решения, да еще и с рекордными характеристиками обычно недешевы, поэтому и стоимость подобных систем никак не могла быть сравнима со стоимостью систем, находящихся в массовом производстве. Шло время, и прогресс в области сетевых технологий сделал свое дело: на рынке появились недорогие, но эффективные коммуникационные решения. Это и предопределило появление кластерных вычислительных систем, фактически являющихся одним из направлений развития компьютеров с массовым параллелизмом (MPP - massive parallel processing).

Если говорить кратко, то вычислительный кластер - это совокупность компьютеров, объединенных в рамках некоторой сети для решения одной задачи. Общая структура кластера показана на рис.1.



Рис.1. Общая структура кластера

В качестве вычислительных узлов обычно используются доступные на рынке однопроцессорные компьютеры, двух- или четырехпроцессорные SMP-серверы. Каждый узел работает под управлением своей копии операционной системы, в качестве которой чаще всего используются стандартные операционные системы: Linux, NT, Solaris и т.п. Состав и мощность узлов может меняться даже в рамках одного кластера, давая возможность создавать неоднородные системы. Выбор конкретной коммуникационной среды определяется многими факторами: особенностями класса решаемых задач, доступным финансированием, необходимостью последующего расширения кластера и т.п. Возможно включение в конфигурацию специализированных компьютеров, например, файл-сервера, и, как правило, предоставлена возможность удаленного доступа на кластер через Internet.

Ясно, что простор для творчества при проектировании кластеров огромен. Рассматривая крайние точки, кластером можно считать как пару ПК, связанных локальной 10-мегабитной сетью Ethernet, так и вычислительную систему, создаваемую в рамках проекта Cplant в Национальной лаборатории Sandia: 1400 рабочих станций на базе процессоров Alpha, связанных высокоскоростной сетью.

Классификация архитектур суперкомпьютеров

Теперь приведем классификацию основных видов архитектур суперкомпьютеров.

Самой первой и наиболее распространенной является классификация СуперЭВМ приведенная в 1966 году М.Флинном. В зависимости от числа потоков команд и потоков данных он выделил 4 класса архитектур параллельных вычислительных систем:

SISD (single instruction stream / single data stream) - одиночный поток команд и одиночный поток данных. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом и каждая команда инициирует одну операцию с одним потоком данных.

SIMD (single instruction stream / multiple data stream) - одиночный поток команд и множественный поток данных. В архитектурах подобного рода сохраняется один поток команд, включающий, в отличие от предыдущего класса, векторные команды. Это позволяет выполнять одну арифметическую операцию сразу над многими данными - элементами вектора.

MISD (multiple instruction stream / single data stream) - множественный поток команд и одиночный поток данных. Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных.

MIMD (multiple instruction stream / multiple data stream) - множественный поток команд и множественный поток данных. В вычислительных системах этого класса есть несколько устройств обработки команд, объединенных в единый комплекс и работающих каждое со своим потоком команд и данных.

В связи с тем, что наша дальнейшая работа будет связана только с MIMD системами, опишем этот класс СуперЭВМ более подробно.

Класс MIMD чрезвычайно широк. Наряду с большим числом компьютеров он объединяет и целое множество различных типов архитектур. Существует множество подходов к классификации таких систем. Рассмотрим один из них, разработанную английским ученым Р.Хокни. Систематизировав все возможные архитектуры этого класса, он предложил следующую структуру:



Рис.2. Классификация MIMD моделей параллельных вычислительных систем

Конвейерные системы - это те системы, которые работают в режиме разделения времени для отдельных потоков.

Переключаемые системы делятся еще на два типа:

*SMP - симметричные мультипроцессорные системы с общей памятью;
*MPP - мультипроцессорные системы с распределенной памятью.

Объясним принцип работы каждого из них:

SMP-компьютеры - это наиболее распространенные сейчас параллельные вычислительные системы, а 2-, 4-х процессорные ЭВМ стали уже массовым товаром.

Основное преимущество SMP - относительная простота программирования. В ситуации, когда все процессоры имеют одинаково быстрый доступ к общей памяти, вопрос о том, какой из процессоров какие вычисления будет выполнять, не столь принципиален. Однако общее число процессоров в SMP-системах, как правило, не превышает 16, а их дальнейшее увеличение не дает выигрыша из-за конфликтов при обращении к памяти. Это говорит о том, что мощности таких машин зачастую недостаточно для решения крупномасштабных задач.

Альтернативой SMP являются MPP суперЭВМ. В этом случае каждый процессор имеет доступ лишь к своей локальной памяти, а если программе нужно узнать значение переменной, расположенной в памяти другого процессора, то задействуется механизм передачи сообщений. Процессор, в памяти которого находятся нужные данные, посылает сообщение тому процессору, которому они требуются, а последний принимает его. Этот подход позволяет создавать компьютеры, включающие в себя тысячи процессоров. На таком принципе основаны все машины, имеющие производительность в сотни миллиардов операций в секунду.

Некоторые суперЭВМ, (Cray T3D и T3E,) созданы с виртуальной общей памяти. Каждый процессор по-прежнему может обращаться напрямую только к своей локальной памяти, однако все узлы используют единое адресное пространство. Это значительно ускоряет работу приложений, первоначально разработанных для последовательных архитектур.

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

Общая характеристика MPI (message passing interface)

Еще недавно одним из основных недостатков практически всех параллельных архитектур являлось отсутствие параллельных программ. Те программы, которые остались от последовательных систем имели слишком большой объем кода, принципиально не допускающий параллельного исполнения. И этот недостаток нельзя было преодолеть за счет усовершенствования техники компиляции.

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

За последнее время в деле создания ПО для систем с распределенной памятью наметился серьезный прогресс.

Самым крупным достижением была стандартизация интерфейса передачи сообщений MPI (message passing interface). Набор функций этого интерфейса вобрал в себя лучшие черты своих предшественников p4 и PVM. Во-первых, MPI поддерживает несколько режимов передачи данных, важнейшие из которых: синхронная передача, обеспечивающая надежную передачу данных сколь угодно большого размера, и асинхронная передача, при которой посылающий сообщение процесс не ждет начала приема, что позволяет эффективно передавать короткие сообщения. Во-вторых, MPI позволяет передавать данные не только от одного процесса к другому, но и поддерживает коллективные операции: широковещательную передачу, разборку-сборку, операции редукции. В-третьих, MPI предусматривает гетерогенные вычисления. Одним словом, это очень мощное средство, позволяющее управлять системами параллельных вычислений, полностью используя их потенциал.

Анализ средств формирования топологий в MPI

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

Мы привыкли понимать под топологиями какую-то определенную физическую архитектуру, в которой все связи между объектами реализованы на физическом уровне. Не стоит путать такое понятие с рассматриваемыми нами виртуальными топологиями процессов. Виртуальные топологи - это всего лишь абстрактная структура связей между процессами какого-либо приложения, которая реализуется программно. Создавая подобные топологии, мы просто именуем процессы, при этом максимально соблюдая соответствие коммуникационному шаблону данной задачи.

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

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

Основные результаты

В процессе работы над диссертацией были получены следующие результаты:

  • Проработан теоретический материал по теме диссертации.
  • Изучены методы кодирования и описания физической топологии изучаемого объекта.
  • Разработан алгоритм формирования виртуальных топологий.
  • Написаны програмные коды с использованием MPI стандарта, реализующие отображение простейших примеров физических топологий на топологию процессоров СуперЭВМ.
Список литературы
  • Святний В.А. Проблеми паралельного моделювання складних динамічних систем.
    Наукові праці ДонДТУ, Серія ІКОТ, вип. 6., 1999, с. 6-14.
  • Цой С., Цхай С.М. Прикладная теория графов.
    Алма-Ата: Наука, 1971, 500 с.
  • Параллельные вычисления / Под ред. Г. Родрига: Пер. с англ. / Под ред.Ю.Г. Дадаева.
    М.: Наука, 1986, 376 с.
  • Lusk E., Skjellum A., Gropp W. Using MPI: Portable Parallel Programming with the Message-Passing Interface,
    Cambridge, MA, MIT Press, 1994.
  • Абрамов Ф.А., Фельдман Л.П., Святный В.А. Моделирование динамических процессов рудничной аэрологии.
    Киев, Наукова думка, 1981, 291 с.
  • Евсеев И. MPI для начинающих.
    http://aerofmf.stu.neva.ru/press/help/mpihad.html
  • Нейл Макдональд,Ельсеф Минти,Тим Хардинг,Саймон Браун.
    Создание программ обмена сообщениями с помощью MPI.