- •Государственное образовательное учреждение
- •1 Параллельная обработка данных в вычислительных системах кластерного типа
- •1.1 Параллельная обработка данных
- •1.1.1 Основные определения
- •1.1.2 Два основных подхода к достижению параллельности
- •1.2 Модели и схемы параллелизма
- •1.2.1 Простейшая модель параллельного программирования (pram)
- •1.2.2 Простейшая классификация схем параллелизма
- •1.3 Существующие параллельные вычислительные средства класса mimd
- •1.4 Архитектура кластерных систем
- •1.5 Сетевое оборудование
- •1.5.1 Коммуникационная технология sci
- •1.5.2 Коммуникационная технология Myrinet
- •1.6 Системы программирования для кластеров
- •1.6.1 СтандартOpenMp
- •1.6.2 Стандарт mpi
- •1.6.3 Реализации mpi
- •1.7 Выводы по главе 1
- •2 Эффективность кластера и алгоритмы, используемые в параллельных и распределенных приложениях
- •2.1 Эффективность
- •2.2 Структура программы с двухточечным обменом данными между процессами
- •2.3 Алгоритмы
- •2.3.1 Вычисление частных сумм последовательности числовых значений
- •2.3.2 Умножение матрицы на вектор
- •2.3.3 Матричное умножение
- •2.3.4 Сортировка
- •2.3.5 Интегрирование
- •2.4 Выводы по главе 2
- •3 Практическая реализация системы кластерного типа
- •3.1 Создание кластера
- •3.2 Тестирование кластерной системы
- •3.3Выводы по главе 3
- •4 Руководство по эксплуатации кластерной системы
- •4.1 Руководство программиста
- •4.1.1 Среда разработки
- •4.1.2 Программный пакет wmpi 1.3
- •4.1.3 Состав пакетаWmpi1.3
- •4.1.4 Основные функцииMpi
- •4.2 Руководство пользователя
- •4.2.1 Построение программы
- •4.2.2 Запуск
- •4.3 Выводы по главе 4
- •Заключение
- •Список использованных источников
2.3.5 Интегрирование
В алгоритме нахождения определенного интеграла методом трапеций область под интегралом разбивается на множество трапеции. Определение значение интеграла сводится к суммированию их площадей. Возможность распараллеливание информации заключается в разбиении на отдельные области суммируемого участка для каждого процесса. В конце вычислений от каждого процесса передается результат, а полученные значения складываются.
То есть интеграл заменяется суммой интегралов по меньшим непересекающимся областям. Таким образом, можно сформулировать алгоритм:
Определение подинтегральной функции f(x).
Запуск параллельного приложения, определение числа процессов и их номеров.
Определение пределов интегрирования ai, ai+1 и частоты разбиения отрезка для каждого процесса.
Интегрирование каждым процессом функции по своему отрезку.
Пересылка каждым процессом полученного результата нулевому процессу.
Суммирование нулевым процессом полученных значений и печать результата.
Завершение параллельной части приложения и всей программы.
Для реализации алгоритма воспользуемся моделью SIMD. Найдем интеграл на промежутке от 0 до 2.5 для гиперболической функции f(x) = x3 .
Вычислим эффективность алгоритма интегрирования. По закону Амдала ускорение можно определить следующим образом
, , W= .
2.4 Выводы по главе 2
В данной главе были рассмотрены вопросы целесообразности и эффективности кластерной системы. Представлены формулы (закон Амдала) позволяющие на предварительном этапе выяснить эффективность распараллеливания алгоритма.
Рассмотрено взаимодействие параллельных ветвей задачи в виде структуры программы с двухточечным обменом данными между процессами.
Рассмотрены типичные алгоритмы, используемые в параллельном программировании. Такие как:
Вычисление частных сумм последовательности числовых значений
Умножение матрицы на вектор
Матричное умножение
Сортировка
Интегрирование
3 Практическая реализация системы кластерного типа
3.1 Создание кластера
Для создания кластерной системы, в качестве узлов кластера, был взят компьютерный класс Аэрокосмической школы, который состоит из 11 одинаковых персональных компьютеров. При работе кластера использовались 9 компьютеров. Характеристики компьютеров:
Процессоры Intel Pentium с частотой 433 МГц;
Оперативной памяти 64 МБ;
Жесткий диск объемом 2, 10 ГБ;
Сеть FastEthernet пропускной способностью 100 Мбит/с;
Коммутатор (switch);
Операционная система Windows 98 SE.
Компьютеры и сетевое окружение изначально были в рабочем состоянии и не потребовали дополнительной настройки.
Для работы кластера необходимо было установить систему параллельного программирования и настроить параллельные приложения для запуска. Так как наиболее распространенным интерфейсом параллельного программирования в модели передачи сообщений является MPI, то для работы кластера была выбрана его бесплатная реализация WMPI. Пакет WMPI представляет собой дистрибутив (Описание и преимущества пакета WMPI даны в Руководстве программиста). Установка пакета обладает диалогом с пользователем и имеет понятный интерфейс. (См. рис. 3.1)
Рис. 3.1 Установка пакета WMPI1.3
После установки пакета WMPI 1.3 на компьютеры следует запустить программу-демон (приложение клиента), который позволит связываться с главным компьютером, от которого будут исходить команды и данные.
Затем, если вы имеете код параллельного приложения, вы можете протестировать работу кластера (некоторые примеры идут вместе с дистрибутивом). Для этого надо настроить компилятор и сделать из кода параллельного приложения исполняемый файл. Затем, следует скопировать исполняемый файл на те узлы кластера, которые будут участвовать в обработке и настроить файл списка запускаемых процессов. (Этапы запуска клиентского приложения, запуск и настройка пользовательских приложений подробно описывается в главе Руководство пользователя).
После этих подготовительных действий можно запустить пользовательское приложение на обработку. На рисунке 3.2 показано ускорение, полученное при работе параллельного приложения, которое вычисляло значение числа . Тестирование было проведено с различными объемами вычислений (количество интервалов) и различным количеством процессов.
Рис. 3.2 Ускорение, полученное при работе параллельного приложения