Язык - С, С++, библиотека MPI, операционная система для тестирования - Linux.
Крайний срок - 16 декабря, 20-00
Описание задачи:
Необходимо разработать программу, которая моделирует выполнение операции MPI_scatterv на транспьютерной матрице(процессы могут пересылать данные только соседям справа и снизу) размером 4x4. Матрица содержит 16 узлов, в каждом из которых выполняется один процесс. Операция MPI_scatterv выполняется следующим образом:
1)Отправка данных всем процессам в матрице начинается от узла с координатами (0,0).
2)Каждый i-й процесс в матрице должен получить i чисел, где каждое число имеет длину 4 байта.
3)Для передачи данных использовать только пересылки MPI типа точка-точка (point-to-point).(SEND/RECV)
4)Необходимо получить временную оценку работы алгоритма, учитывая:
Время старта передачи ( равно 100), время передачи одного байта ) равно 1.
Все процессы выдают запрос на выполнение операции одновременно.
Операции процессора (чтение/запись в память) считать бесконечно быстрыми.
5) Составить мини-отчет
ожидаемый вывод -
Process (0,0) [rank 0] received:
Process (0,1) [rank 1] received: 1
Process (0,2) [rank 2] received: 2 3
Process (0,3) [rank 3] received: 4 5 6
Process (1,0) [rank 4] received: 7 8 9 10
Process (1,1) [rank 5] received: 11 12 13 14 15
Process (1,2) [rank 6] received: 16 17 18 19 20 21
....
Process (3,3) [rank 15] received: 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120