Задание. 1) Каждой бригаде, по варианту (журнал ЛР по курсу ВВС), необходимо получить один из численных методов решения системы линейных уравнений (см

Домашняя подготовка

1) Каждой бригаде, по варианту (журнал ЛР по курсу ВВС), необходимо получить один из численных методов решения системы линейных уравнений (см. приложение 1) для дальнейшей реализации в параллельном режиме на MPI.

2) Написать последовательную программу, реализующую данный метод.

3) Полученная программа должна удовлетворять следующим условиям:

· Программы должна быть написана на языке Си.

· Программы должна чётко реализовывать алгоритм указанного метода.

· Программа должна позволять обсчитывать системы различной размерности (любое число, но не более 200 уравнений в системе).

· Все входные данные должны считываться программой только из файла входных данных, а все выходные данные должны выводиться только в файл выходных данных.

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

4) Отладить программу на ПЭВМ. Создать набор тестовых задач с различным числом уравнений в системе и различным набором коэффициентов. Для этого необходимо создать несколько файлов входных данных.

5) Выявить в алгоритме независимые (по данным) операции и составить граф задачи в ярусно-параллельной форме (ЯПФ).

6) Продумать и составить алгоритм параллельной реализации решения системы линейных уравнений при различном числе процессоров.

7) Используя библиотеку функций MPI (для Си), написать программу реализующую разработанный параллельный алгоритм.

8) Параллельная программа должна удовлетворять следующим условиям:

· Программа должна быть масштабируемой (для различного числа параллельных процессов).

· В текст программы необходимо включить вызовы функции MPI_Wtime (см. приложение 2), для замера времени выполнения расчётов.

9) Составить отчёт о выполнении ЛР (см. приложение 2).

10) Подготовить исходные тексты последовательной и параллельной программ, а, так же файлы входных данных тестовых задач для выполнения задания в лаборатории.

Задание в лаборатории

1) Выполнить на ПК последовательную программу (без функций MPI) реализующую вариант задания.

2) Выполнить на ПК программу (с функциями MPI), с запуском одного процесса и с различным размером системы уравнений.

3) Выполнить на ПК программу (с функциями MPI), с запуском нескольких процессов и с различным размером системы уравнений.

4) Показать работающие программы преподавателю.

5) Выполнить пункты 2) и 3) на кластерной системе с замером времени выполнения.

Содержание отчёта смотрите в приложении 2.

Литература

1) Д. Мак-Кракен, У. Дорн. Численные методы и программирование на Фортране. -М.: Изд-во «МИР», 1977. г. -585 с..

2) Коношенко М.П. Параллельные вычисления. –М.: Изд-во МЭИ, 1995. г. –82 с..

3) Илья Евсеев. MPI для начинающих http://www.csa.ru/

4) Илья Евсеев. MPI программный инструмент для параллельных вычислений http://www.csa.ru/

5) Воеводин Вл.В. Курс лекций: «Параллельная обработка данных» http://parallel.ru/vvv/index.html

6) Ортега

7) Шамаева

Приложение 1. Варианты задания

№№ бригад Методы
1,5,9 Блочный.
2,6,10 Исключения (Гауса).
3,7,11 Якоби
4,8,12 Гауса-Зейделя

Приложение 2. Содержание отчёта о выполнении лабораторной работы.

1) Титульный лист, Ф.И.О. студентов, номер группы и номер бригады.

2) Текст задания.

3) Блок-схема последовательного алгоритма.

4) Текст последовательной программы с комментариями.

5) Спецификация данных.

6) Набор тестовых заданий.

7) Результат выполнения на ПК (без библиотеки MPI).

8) Граф ЯПФ параллельного решения задачи.

9) Блок-схема параллельного алгоритма.

10) Текст параллельной MPI программы с комментариями.

11) Таблицы результатов эксперимента (зависимости,).

12) Зависимости времени вычисления от размерности системы уравнений и числа задействованных процессоров кластерной ВС.

13) Относительные и абсолютные коэффициенты ускорения.

14) Выводы.

Приложение 3. Основные функции библиотеки MPI.

В данном приложении описаны некоторые из основных функций библиотеки MPI. Описания функций и комментарии взяты из [5].

При описании процедур MPI будем пользоваться словом OUT для обозначения "выходных" параметров, т.е. таких параметров, через которые процедура возвращает результаты.


Общие процедуры MPI

int MPI_Init(int* argc, char*** argv)

MPI_Init - инициализация параллельной части приложения. Реальная инициализация для каждого приложения выполняется не более одного раза, а если MPI уже был инициализирован, то никакие действия не выполняются и происходит немедленный возврат из подпрограммы. Все оставшиеся MPI-процедуры могут быть вызваны только после вызова MPI_Init.

Возвращает: в случае успешного выполнения - MPI_SUCCESS, иначе - код ошибки. (То же самое возвращают и все остальные функции, рассматриваемые в данном руководстве.)



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: