В транспьютерной матрице размером 8*8, в каждом узле которой находится один процесс, необходимо выполнить операцию редукции MPI_MAXLOC, определить глобальный максимум и соответствующих ему индексов. Каждый процесс предоставляет свое значение и свой номер в группе. Для всех процессов операция редукции должна возвратить значение максимума и номер первого процесса с этим значением.
Реализовать программу, моделирующую выполнение данной операции на транспьютерной матрице при помощи пересылок MPI типа точка-точка.
Оценить сколько времени потребуется для выполнения операции редукции, если все процессы выдали эту операцию редукции одновременно. Время старта равно 100, время передачи байта равно 1 (Ts=100,Tb=1). Процессорные операции, включая чтение из памяти и запись в память, считаются бесконечно быстрыми.
Этот шаг требует установленного Docker, но может быть пропущен, если на хосте установлен MPI.
$ source dockerfile.sh
$ mpicc ./task1/transputer_matrix.c -o tm.o
$ mpirun -n 64 tm.o
Доступен здесь.
Доработать MPI-программу, реализованную в рамках курса “Суперкомпьютеры и параллельная обработка данных”. Добавить контрольные точки для продолжения работы программы в случае сбоя. Реализовать один из 3-х сценариев работы после сбоя:
a) продолжить работу программы только на “исправных” процессах;
б) вместо процессов, вышедших из строя, создать новые MPI-процессы, которые необходимо использовать для продолжения расчетов;
в) при запуске программы на счет сразу запустить некоторое дополнительное количество MPI-процессов, которые использовать в случае сбоя.
Этот шаг требует установленного Docker, но может быть пропущен, если на хосте установлен MPI.
$ source dockerfile.sh
$ mpicc ./task2/jac_3d_mpi_noft.c -o jac_noft.o
$ mpirun -n 8 jac_noft.o
Доступен здесь.
Доступен здесь.
Этот шаг требует установленного Docker, но может быть пропущен, если на хосте установлен MPI, поддерживающий ULFM.
$ source dockerfile.sh
$ mpicc ./task2/jac_3d_mpi_ft.c -o jac_ft.o
$ mpirun -n 8 --with-ft ulfm jac_ft.o
$ rm -f ./CP/*
Доступен здесь.
Доступен здесь.