Сбор и трансляция сообщений

Страницы работы

Содержание работы

Лабораторная работа №7. Сбор и трансляция сообщений

Для решения задач следует использовать библиотеку MPI.Net, доступную на сайте http://www.osl.iu.edu/research/mpi.net/. Документация о библиотеке MPI.NET доступна по ссылке http://www.osl.iu.edu/research/mpi.net/documentation/reference/current/Index.html.

Для демонстрации разработанного приложения использовать не менее 10 процессов.

Задание

Сбор и размещение

1.  Осуществить синхронизацию всех процессов в одной точке программы, используя метод Communicator.Barrier. вызов этого метода осуществить в root процессе. Вывести на консоль текстовое сообщение о прибытии всех процессов в точку синхронизации из root процесса.

2.  Отправить текстовое сообщение, содержащее имя текущего процесса, в процесс с рангом 0 из всех остальных процессов, используя метод Intracommunicator.Gather. Вывести на консоль массив результатов из процесса с рангом 0.

3.  В каждом процессе, получить случайное целое число с помощью генератора случайных чисел. Отправить полученное значение остальным процессам, используя метод Intracommunicator.AllGather. Вывести на консоль массив результатов из процесса с рангом 0.

4.  Создать массив текстовых переменных в root процессе, размер массива должен быть равен количеству процессов. Содержание массива выбирается на усмотрение студента. Отправить элементы этого массива процессам с помощью метода Intracommunicator.Scatter. При этом i-й элемент массива должен быть доставлен процессу с рангом i. Вывести на консоль значение массива, полученное каждым процессом.

5.  Осуществить пересылку ранга текущего процесса в виде целого числа в root процесс из всех процессов с рангом больше 0. Для получения сообщений в root процессе использовать метод Intracommunicator.Gather. Вывести на экран полученные значения из root процесса.

Рассылка и всеобщий обмен

1.  Осуществить отправку случайного целого числа из root процесса всем другим процессам с помощью метода Intracommunicator.Broadcast. Каждый процесс при получении числа должен вывести на консоль свой ранг и полученное значение.

2.  Осуществить отправку массива случайных целых чисел из root процесса всем другим процессам с помощью метода Intracommunicator.Broadcast. Каждый процесс при получении массива должен вывести на консоль свой ранг и полученные значения.

3.  Создать матрицу случайных целых чисел, количество строк и столбцов которой должно равняться количеству процессов. Осуществить транспонирование созданной матрицы с помощью метода Intracommunicator.Alltoall транспонировать созданную матрицу, передав созданный массив в качестве параметра. Вывести на консоль элементы исходной и транспонированной матриц.

Творческая часть: создать две группы процессов, созданные на основе непересекающихся множеств процессов. Передать массивы целых чисел между созданными группами, используя 2-3 метода класса Intercommunicator.

Варианты

Вариант

Сбор и размещение

Рассылка и обмен

1

2

3

4

5

1

2

3

1

×

×

×

2

×

×

×

3

×

×

×

4

×

×

×

5

×

×

×

6

×

×

×

7

×

×

×

8

×

×

×

9

×

×

×

10

×

×

×

11

×

×

×

12

×

×

×

13

×

×

×

14

×

×

×

15

×

×

×

16

×

×

×

17

×

×

×

18

×

×

×

19

×

×

×

20

×

×

×

Похожие материалы

Информация о работе