- •Лабораторные работы по курсу «Параллельное программирование»
- •Кластер Beowulf
- •Структура кластера кафедры 304
- •Организация взаимодействия между процессами при параллельных вычислениях
- •Основные функции mpi
- •Вычисление числа π методом численного интегрирования
- •Вычисление числа π методом Монте-Карло
- •Содержание отчета
- •Лабораторная работа №2
- •Введение
- •Коммуникации точка-точка в mpi
- •Коллективные коммуникации в mpi
- •Алгоритмы параллельного поиска и сортировки
- •Задание
- •Содержание отчета
- •Лабораторная работа №3
- •Введение
- •Умножение матриц ленточным методом
- •Алгоритм Фокса умножения матриц
- •Пример работы Fox's алгоритма
- •Этап 0 (шаг 1 ( слева ), шаг 2 ( по центру ), шаг 3 ( справа ) ):
- •Этап 1 ( слева ) и этап 2 (справа ):
- •Содержание отчета
- •Список литературы
Структура кластера кафедры 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).
Основные технические характеристики кластера:
Количество вычислительных узлов |
18 |
Число процессоров на одном узле |
1 |
Рабочая частота процессора (GHz) |
2.4 |
Cache-память процессора (kb) |
512 |
Разрядность процессора (bit) |
32 |
Объём оперативной памяти одного узла (Mb) |
512 |
Объём дискового пространства одного узла (Gb) |
10 |
Коммуникационная сеть |
Fast Ethernet, 100 Mbit/sec |
Латентность сети (мксек) |
≈40 |
Энергопотребление всей системы (kW) |
2 |
Интерфейс 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 на примере параллельных алгоритмов вычисления числа π, компиляции и запуску параллельных программ на кластере.
Порядок выполнения заданий:
После ознакомления с теоретической частью данной работы, студент компилирует предложенный ему вариант программы вычисления числа π на своем рабочем месте (один из узлов кластера) и запускает ее на этом узле. После успешного запуска параллельной программы на своей машине можно копировать программу на сетевой диск и запускать ее с сервера на числе процессоров, определяемым вариантом задания.
