Цель работы:
Изучить различные способы двухточечного обмена в MPI, производные типы данных и операции упаковки и распаковки данных.
Ход работы:
1. Ознакомиться с теоретическими сведениями.
2. Изучить рассмотренный ниже пример. Запустить программу на двух процессорах. Поменять местами строки, помеченные в комментариях (1) и (2), и запустить программу еще раз. Просмотреть выходной файл и файл ошибок.
3. Разработать алгоритм решения задания, с учетом разделения вычислений между несколькими процессорами. Составить схему взаимодействия процессов.
3. Реализовать алгоритм с применением функций двухточечного обмена библиотеки MPI и протестировать его на нескольких примерах. Засечь время выполнения программы для различных наборов данных и различного количества процессоров. Вычислить ускорение и эффективность написанной программы.
4. Заменить все операции обменов в программе на обмены с упакованными данными, с последующей их распаковкой на стороне приема. Выяснить, улучшилась ли эффективность программы. Подумать почему, при необходимости изменить алгоритм или заменить тип обмена.
5. Оформить отчет.
6. Ответить на контрольные вопросы, заданные преподавателем.