
- •Лабораторная работа №3
- •2. Методические указания к лабораторной работе. Методы решения систем линейных уравнений Метод исключения (метод Гаусса)
- •Итерационный метод Гаусса-Зейделя
- •Итерационный метод Якоби
- •Блочный метод
- •Алгоритм выделения ветвей независимых операций в последовательной программе для её распараллеливания. Критерий выделения параллельных ветвей для машин класса мкмд (mimd)
- •3. Задание. Домашняя подготовка
- •Задание в лаборатории
- •4. Литература
- •Приложение 1. Варианты задания
- •Приложение 2. Содержание отчёта о выполнении лабораторной работы.
- •Приложение 3. Основные функции библиотекиMpi.
3. Задание. Домашняя подготовка
Каждой бригаде, по варианту (журнал ЛР по курсу ВВС), необходимо получить один из численных методов решения системы линейных уравнений (см. приложение 1) для дальнейшей реализации в параллельном режиме на MPI.
Написать последовательную программу, реализующую данный метод.
Полученная программа должна удовлетворять следующим условиям:
Программы должна быть написана на языке Си.
Программы должна чётко реализовывать алгоритм указанного метода.
Программа должна позволять обсчитывать системы различной размерности (любое число, но не более 200 уравнений в системе).
Все входные данные должны считываться программой только из файла входных данных, а все выходные данные должны выводиться только в файл выходных данных.
В программе должны быть предусмотрены возможности аварийного выхода с оповещением в случае, если нет возможности получения решения в виду вырожденности системы уравнений, отсутствии корней уравнений или достижения предельно заданного числа итераций.
Отладить программу на ПЭВМ. Создать набор тестовых задач с различным числом уравнений в системе и различным набором коэффициентов. Для этого необходимо создать несколько файлов входных данных.
Выявить в алгоритме независимые (по данным) операции и составить граф задачи в ярусно-параллельной форме (ЯПФ).
Продумать и составить алгоритм параллельной реализации решения системы линейных уравнений при различном числе процессоров.
Используя библиотеку функций MPI(для Си), написать программу реализующую разработанный параллельный алгоритм.
Параллельная программа должна удовлетворять следующим условиям:
Программа должна быть масштабируемой (для различного числа параллельных процессов).
В текст программы необходимо включить вызовы функции MPI_Wtime(см. приложение 2), для замера времени выполнения расчётов.
Составить отчёт о выполнении ЛР (см. приложение 2).
Подготовить исходные тексты последовательной и параллельной программ, а, так же файлы входных данных тестовых задач для выполнения задания в лаборатории.
Задание в лаборатории
Выполнить на ПК последовательную программу (без функций MPI) реализующую вариант задания.
Выполнить на ПК программу (с функциями MPI), с запуском одного процесса и с различным размером системы уравнений.
Выполнить на ПК программу (с функциями MPI), с запуском нескольких процессов и с различным размером системы уравнений.
Показать работающие программы преподавателю.
Выполнить пункты 2) и 3) на кластерной системе с замером времени выполнения.
Содержание отчёта смотрите в приложении 2.
4. Литература
Д. Мак-Кракен, У. Дорн. Численные методы и программирование на Фортране. -М.: Изд-во «МИР», 1977. г. -585 с..
Коношенко М.П. Параллельные вычисления. –М.: Изд-во МЭИ, 1995. г. –82 с..
Илья Евсеев. MPIдля начинающихhttp://www.csa.ru/
Илья Евсеев. MPIпрограммный инструмент для параллельных вычисленийhttp://www.csa.ru/
Воеводин Вл.В. Курс лекций: «Параллельная обработка данных» http://parallel.ru/vvv/index.html
Ортега
Шамаева