Лабораторная работа №5. Знакомство с библиотекой MPI
Задание
Основные классы MPI
1. Инициализировать MPI окружение с помощью класса MPI. Enviroment (http://www. osl. iu. edu/research//documentation/reference/current/html/T_MPI_Environment. htm), вызвав конструктор класса без параметров. Использовать оператор using.
2. Инициализировать MPI окружение с помощью класса MPI. Enviroment (http://www. osl. iu. edu/research//documentation/reference/current/html/T_MPI_Environment. htm), вызвав конструктор класса с параметрами и уровнем поддержки многопоточности: Single, Funneled, Serialized или Multiple – по выбору студента (http://www. osl. iu. edu/research//documentation/reference/current/html/P_MPI_Environment_Threading. htm). Использовать оператор using.
3. Вывести на консоль имя процессора, выполняющего программу, используя свойство MPI. Environment. ProcessorName (http://www. osl. iu. edu/research//documentation/reference/current/html/P_MPI_Environment_ProcessorName. htm).
4. Завершить все выполняемые процессы с помощью метода MPI. Enviroment. Abort (http://www. osl. iu. edu/research//documentation/reference/current/html/M_MPI_Environment_Abort. htm).
5. Вывести на консоль ранг текущего процесса в рамках коммуникатора, выполняющего программу, используя свойство Communicator. world. Rank (http://www. osl. iu. edu/research//documentation/reference/current/html/P_MPI_Communicator_Rank. htm).
6. Вывести на консоль количество процессов, выполняющих программу, используя свойство Communicator. world. Size (http://www. osl. iu. edu/research//documentation/reference/current/html/P_MPI_Communicator_Size. htm).
Группы процессов
1. Создать новую группу процессов в виде объекта класса Group (http://www. osl. iu. edu/research//documentation/reference/current/html/T_MPI_Group. htm). Включить в неё только процессы, запущенные в окружении с рангом 1 и 3, используя метод IncludeOnly (http://www. osl. iu. edu/research//documentation/reference/current/html/M_MPI_Group_IncludeOnly. htm).
2. Создать новую группу процессов в виде объекта класса Group (http://www. osl. iu. edu/research//documentation/reference/current/html/T_MPI_Group. htm). Включить в нее все процессы, запущенные в окружении, кроме процессов с рангом 1 и 3, используя метод Exclude (http://www. osl. iu. edu/research//documentation/reference/current/html/M_MPI_Group_Exclude. htm).
3. Создать новый коммуникатор, используя ранее созданную группу процессов с помощью метода Create (http://www. osl. iu. edu/research//documentation/reference/current/html/M_MPI_Communicator_Create. htm).
4. Создать два новых коммуникатора, используя метод Split (http://www. osl. iu. edu/research//documentation/reference/current/html/M_MPI_Communicator_Split. htm). В первый коммуникатор включить процессы с нечётным рангом, а во второй – с чётным.
5. Создать три новых коммуникатора, используя метод Split (http://www. osl. iu. edu/research//documentation/reference/current/html/M_MPI_Communicator_Split. htm). В первый коммуникатор включить root процесс, во второй – процессы с рангом меньше 5. В третий – все остальные процессы.
Творческая часть: создать экземпляры коммуникаторов TopologicalCommunicator (http://www. osl. iu. edu/research//documentation/reference/current/html/T_MPI_TopologicalCommunicator. htm) и GraphCommunicator (http://www. osl. iu. edu/research//documentation/reference/current/html/T_MPI_GraphCommunicator. htm), являющиеся наследниками разные реализации классов Communicator и Intracommunicator (http://www. osl. iu. edu/research//documentation/reference/current/html/T_MPI_Communicator. htm, http://www. osl. iu. edu/research//documentation/reference/current/html/T_MPI_Intracommunicator. htm).
Замечание
Для демонстрации разработанного приложения использовать не менее 10 процессов.
Варианты
Вариант | Основные классы MPI | Группы процессов | |||||||||
1 | 2 | 3 | 4 | 5 | 6 | 1 | 2 | 3 | 4 | 5 | |
1 | × | × | × | × | |||||||
2 | × | × | × | × | |||||||
3 | × | × | × | × | |||||||
4 | × | × | × | × | |||||||
5 | × | × | × | × | |||||||
6 | × | × | × | × | |||||||
7 | × | × | × | × | |||||||
8 | × | × | × | × | |||||||
9 | × | × | × | × | |||||||
10 | × | × | × | × | |||||||
11 | × | × | × | × | |||||||
12 | × | × | × | × | × | ||||||
13 | × | × | × | × | |||||||
14 | × | × | × | × | |||||||
15 | × | × | × | × | |||||||
16 | × | × | × | × | |||||||
17 | × | × | × | × | × | ||||||
18 | × | × | × | × | |||||||
19 | × | × | × | × | × | ||||||
20 | × | × | × | × |
Для решения задач следует использовать библиотеку , доступную на сайте http://www. osl. iu. edu/research//.


