Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВС13 / ЛабРаб / Диплом.doc
Скачиваний:
36
Добавлен:
17.03.2015
Размер:
1.48 Mб
Скачать

2.3.5 Интегрирование

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

То есть интеграл заменяется суммой интегралов по меньшим непересекающимся областям. Таким образом, можно сформулировать алгоритм:

  1. Определение подинтегральной функции f(x).

  2. Запуск параллельного приложения, определение числа процессов и их номеров.

  3. Определение пределов интегрирования ai, ai+1 и частоты разбиения отрезка для каждого процесса.

  4. Интегрирование каждым процессом функции по своему отрезку.

  5. Пересылка каждым процессом полученного результата нулевому процессу.

  6. Суммирование нулевым процессом полученных значений и печать результата.

  7. Завершение параллельной части приложения и всей программы.

Для реализации алгоритма воспользуемся моделью 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 Ускорение, полученное при работе параллельного приложения