Лабораторная работа №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//.