Тема: Двухточечные блокирующие обмены.
Цель: Получить практические навыки по планированию операций обмена и взаимодействию процессов.
Задание к лабораторной работе
Необходимо разработать MPI-программу, которая выполняет поиск максимального и минимального значения среди элементов вектора чисел с плавающей точкой одинарной точности (float). Размер вектора задается на стадии выполнения программы. Для выделения динамической памяти используются функции стандартной библиотеки языка Си malloc() и free(). Взаимодействие процессов необходимо реализовать по схеме звезда. Главный процесс «раздает» вычислительные задачи подчиненным процессам, но и сам выполняет обработку своей части вектора. Главный процесс собирает результаты работы и выполняет окончательный поиск максимального и минимального элемента.
1. Изучите содержимое файла заготовки MPI-программы vector.c. В данном листинге пропущены вызовы некоторых обязательных функций MPI, добавьте вызовы этих функций. Изучите вспомогательные функции, описанные в данном файле.
2. Организацию взаимодействия выполнять по схеме звезда, когда главный процесс управляет работой подчиненных процессов. Главный процесс должен обеспечить выделение памяти под исходные данные и формирование исходных данных случайными данными.
Литература
Эндрю Таненбаум, Мартин ван Стеен Распределенные системы. Принципы и парадигмы = Andrew S. Tanenbaum, Maarten van Steen. "Destributed systems. Principles and paradigms. — Санкт-Петербург: Питер, 2003. — 877 с. — (Классика computer science). — ISBN 5-272-00053-6
С. Н. Андрианов, А. Б. Дегтярев 1 // ПАРАЛЛЕЛЬНЫЕ И РАСПРЕДЕЛЕННЫЕ ВЫЧИСЛЕНИЯ. — С.-Петерб.: Издательство С.-Петербургского университета, 2007. — 61 с.
А. А. Букатов, В. Н. Дацюк, А. И. Жегуло Программирование многопроцессорных вычислительных систем. — Ростов-на-Дону: ООО «ЦВВР», 2003. — 208 с. — ISBN 5-94153-062-5
Эндрюс Г.Р. Основы многопоточного, параллельного и распределенного программирования. Пер.с англ. — М.: Издательский дом «Вильямс», 2003.
Миллер Р., Боксер Л. Последовательные и параллельные алгоритмы. Пер. с англ. — М.: БИНОМ. Лаборатория знаний, 2006.
Богачёв К.Ю. Основы параллельного программирования. — М.: БИНОМ. Лаборатория знаний, 2003.