Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методическое пособие - MPI.docx
Скачиваний:
11
Добавлен:
04.09.2019
Размер:
2.42 Mб
Скачать

Федеральное агентство по образованию Российской Федерации

Московский авиационный институт (государственный технический университет)

О.М.Брехов, Г.Н.Петрова, Н.А.Баландин

Лабораторные работы по курсу «Параллельное программирование»

Москва 2011г.

Кластер Beowulf

Вычислительный кластер является многопроцессорной вычислительной системой (МВС) архитектуры MPP (Massively Parallel Processing), отличием которой является наличие оперативной памяти, распределенной по вычислительным узлам (ВУ). Это вычислительная система, состоящая из нескольких связанных между собой ЭВМ, расположенных в едином корпусе или соединенных скоростным каналом связи и используемых как единый, унифицированный вычислительный ресурс. Специализированные вычислительные кластеры в большинстве случаев работают под управлением Linux как наиболее мобильной машинно-независимой ОС.

Beowulf (Beowolf) — кластер состоит из широко распространённого аппаратного обеспечения, а именно, персональных компьютеров (ПС) , работающих под управлением операционной системы, распространяемой с исходными кодами (например, GNU/Linux, FreeBSD или Solaris).

Особенностью такого кластера также является масштабируемость, то есть возможность увеличения количества узлов системы с пропорциональным увеличением производительности. Узлами в кластере могут служить любые серийно выпускаемые автономные компьютеры, количество которых может быть от 2 до 1024 и более. Для распределения обработки данных между узлами используются технологии MPI или PVM.

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

Преимущества Beowulf-систем:

  • стоимость системы гораздо ниже стоимости суперкомпьютера;

  • возможность увеличения производительности системы;

  • возможность использования устаревших компьютеров, тем самым увеличивается срок эксплуатации компьютеров;

  • широкая распространённость, а значит и доступность, аппаратного обеспечения.

Существует несколько реализаций стандарта MPI для Linux, все их можно разделить на две большие группы – реализации MPI для систем с общей памятью и для систем с распределенной памятью. Реализации для систем с общей памятью основаны на создании участков разделяемой памяти для процессов (системный вызов mmap для Linux), реализации для систем массового параллелизма используют сетевые драйверы.

Рассмотрим подробнее реализации MPI для систем массового параллелизма. В качестве коммутатора могут использоваться сети Ethernet, Myrinet и Inifiniband. На каждом из узлов вычислительной сети запускается своя копия программы, которая выполняет свою часть распределенных вычислений и обменивается данными с остальными программами при помощи вызовов библиотеки MPI. За запуск задач на узлах и их управление отвечает сервер, осуществляющий удаленный доступ к операционной системе на всех узлах, что реализуется посредством протокола удаленного вызова процедур RPC (Remote Procedure Call). Недостатком данного протокола является его небезопасность, так как RPC-соединение является незащищенным. Решением проблемы безопасности соединения сервера и узлов является использование SSH (Secure Shell) – расширения RPC, создающего зашифрованный канал соединения между сервером и узлами.

Прежде чем запустить копии задачи на удаленных узлах, сервер должен передать узлам исполняемые файлы этих программ и файлы с исходными данными. Это реализуется при помощи прикладных сетевых файловых протоколов (FTP или Samba), однако более эффективным решением является использование сетевой файловой системы, как правило, это NFS. NFS (Network File System) – сетевая файловая система, основанная на протоколе удаленного вызова процедур RPC (Remote Procedure Call) и позволяющая монтировать удаленные файловые системы через сеть. В Linux монтирование осуществляется через виртуальную файловую систему VFS (Virtual File System), таким образом, для программы пользователя нет различия, осуществляет ли она доступ к файлу на локальном диске или удаленной машине через сетевую ФС.

Таким образом, программное обеспечение системы кластера Beowulf состоит из операционной системы и сетевых драйверов, протокола, обеспечивающего удаленное управление узлов сервером, сетевой ФС, предоставляющей узлам доступ к программам и файлам с исходными данными, библиотеки MPI и компилятора.