Структура кластера кафедры 304
Кластер 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 и компилятора.
Структура кластера кафедры 304
Кластер состоит из персональных компьютеров на базе процессора Intel Pentium 4 частотой 2.5 ГГц, 512 Мб оперативной памяти (RAMBUS PC-1066, 2х512 k L2 Cache) , жесткого SATA-диска с объемом для записи 10 Гб и сетевыми картами Realtek 100 Mb/s. Эти компьютеры выступают как в роли узлов, так и в роли сервера. На всех машинах установлена ОС OpenSuse Linux 11.3(ядро 2.6.38, файловая система ext3).
Узлы объединены в общую сеть топологии пассивная звезда при помощи концентратора 100Мб/с, образуя физический сегмент сети (используемый протокол – TCP/IP). Подобный сегмент сети может функционировать как отдельно, так и в составе сложного кластера
сетевой топологии (как правило, «дерево») в качестве “виртуального узла”.
Рассмотрим достоинства и недостатки данной топологии.
Достоинства:
· выход из строя одной рабочей станции не отражается на работе всей сети в целом;
· простая масштабируемость сети;
· лёгкий поиск неисправностей и обрывов в сети;
· высокая производительность сети (при условии правильного проектирования);
· гибкие возможности администрирования.
Недостатки:
· выход из строя центрального концентратора обернётся неработоспособностью сети (или сегмента сети) в целом;
· конечное число рабочих станций в сети (или сегменте сети) ограничено количеством портов в центральном концентраторе (около 20-30).
Основные технические характеристики кластера:
Количество вычислительных узлов | |
Число процессоров на одном узле | |
Рабочая частота процессора (GHz) | 2.4 |
Cache-память процессора (kb) | |
Разрядность процессора (bit) | |
Объём оперативной памяти одного узла (Mb) | |
Объём дискового пространства одного узла (Gb) | |
Коммуникационная сеть | Fast Ethernet, 100 Mbit/sec |
Латентность сети (мксек) | ≈40 |
Энергопотребление всей системы (kW) |
Интерфейс MPI реализован на кластере при помощи пакета LAM – Local Area Multicomputer. LAM поддерживает стандарты MPI, MPI2, передачу сообщений между узлами по сети (Ethernet/Inifiniband) или через разделяемую память. Еще одним преимуществом LAM является поддержка гетерогенной структуры кластера, т.е. на разных узлах могут быть установлены разные версии Linux и разное оборудование, независимо от этого кластер будет функционировать как единый вычислительный ресурс. Для конечного пользователя на узле функционирование LAM является “прозрачным”, так как LAM запускается на узлах как системный процесс и не требует участия пользователя.
Помимо стандартного интерфейса MPI,MPI/2, LAM имеет дополнительно свой интерфейс для отладки приложений и мониторинга использования ресурсов системы. Основой этого дополнительного интерфейса служат функции, позволяющие “на лету” получать снимки процессов. Эти снимки включают в себя всю ключевую для программирования в MPI информацию – все аспекты синхронизации, группы коммуникаторов MPI, сообщения и их теги и т.д. Все эти функции могут использоваться для визуализации работы кластера.
Для обмена информацией между узлами поверх протокола TCP/IP используется протокол SSH. SSH - сетевой протокол сеансового уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений. В отличие от RPC, протокол SSH предоставляет безопасное соединение и повышает безопасность кластера при размещении его узлов в физически удаленных местах. Кроме этого, SSH предоставляет более широкие возможности для администрирования системы.
Узлам необходимо иметь общее дисковое пространство для разделения данных через файлы. Для этого используется сетевая файловая система NFS, основанная на NFS Kernel Server. NFS Kernel Server работает как модуль ядра ОС Linux, что обеспечивает более высокую производительность файловой системы, нежели у прикладных протоколов, таких как Samba и FTP.
Базовые пакеты установки OpenSuse Linux включают в себя компилятор gcc, версия 4, утилиты make и automake, на которых основан компилятор mpicc для библиотек MPI. Кроме того, gcc включает в себя набор библиотек OpenMP для написания многопоточных параллельных программ. Все это вместе позволяет использовать в программах одновременно MPI и OpenMP, что значительно расширяет возможности программиста для разработки программ для кластера, узлами которого являются многоядерные компьютеры.
При разработке MPI-программ нужно воспользоватся командой mpicc, аналогичной gcc.
Лабораторная работа №1.
“ Кластер Beowulf. Основные механизмы передачи данных в среде MPI ”
Цель работы – обучение основам программирования с использованием MPI на примере параллельных алгоритмов вычисления числа π, компиляции и запуску параллельных программ на кластере.
Порядок выполнения заданий:
После ознакомления с теоретической частью данной работы, студент компилирует предложенный ему вариант программы вычисления числа π на своем рабочем месте (один из узлов кластера) и запускает ее на этом узле. После успешного запуска параллельной программы на своей машине можно копировать программу на сетевой диск и запускать ее с сервера на числе процессоров, определяемым вариантом задания.
Дата добавления: 2016-05-31; просмотров: 1379;