Дополнительные функции
1) int MPI_Bsend (void* , int, MPI_Datatype, int, int, Mpi_Comm);
Функция MPI_Bsend помещает данные в буфер.
2) int MPI_Ssend (void* , int, MPI_Datatype, int, int, Mpi_Comm);
Возврат из функции MPI_Ssend произойдет только после реальной передачи данных..
3) int MPI_Rsend (void* , int, MPI_Datatype, int, int,Mpi_Comm);
Запуск функции MPI_Rsend возможен только при готовности к приему процесса получателя. Если процесс-получатель не готов к передаче, производится аварийное завершение и результат функции будет не определен.
Функции возвращают MPI_Success в случае удачи или код ошибки. Ошибка возможна при недостатке места в буфере.
Пример:
Пусть нулевой процесс пересылает всем остальным процессам:
некоторое число;
некоторый массив;
#include <iostream.h>
#include <mpi.h>
#define msgtag 77
void main (int argc, char**argv) {
MPI_Init (&argc, &argv);
Int rank, size;
MPI_Comm_size (MPI_COMM_WORLD, &size);
MPI_Comm_rank (MPI_COMM_WORLD, &rank);
1: MPI_Status status;
if (!rank) {
int m=5;
for (int i=0; i<size-1; i++)
MPI_Send(&m, 1, MPI_INT, i+1, msgtag, MPI_COMM_WORLD);
}
else {
int l=0;
MPI_Recv (&l, 1, MPI_INT, 0, msgtag, MPI_COMM_WORLD, &status);
}
MPI_Finalize();
}
Результат при size=3: rank=1 l=5
rank=2 l=5
2: const int n=10;
if (!rank) {
int m[n]={1, 2, 3, 4};
for (int i=0; i<size-1; i++)
MPI_Send(m, n, MPI_INT, i+1, msgtag, MPI_COMM_WORLD);
}
else {
int l[n];
MPI_Recv (l, n, MPI_INT, 0, msgtag, MPI_COMM_WORLD, &status);
}
MPI_Finalize();
}
- Содержание курса
- Общие сведения.
- Топологии Виды топологий
- Программирование «Трубы»
- Программирование «Звезды»
- Программирование «Клика»
- Синхронный обмен данными
- Функции синхронного обмена данными
- Примеры:
- Задание 1:
- Задание 2:
- Задание 3:
- Асинхронный обмен данными
- Функции необходимые для асинхронного обмена данными
- Пример:
- Определение времени вычисления на Parsytec.
- Определение времени в программе
- Структура компьютера
- Константы, типы данных, структуры mpi
- Тип данных mpi_Datatype
- Предопределённые константы
- Сообщения
- Функции mpi
- Функция передачи данных с блокировкой
- Дополнительные функции
- Виды параллелизма Геометрический (распараллеливание по пространству)
- Функциональный (распараллеливание по процессам)
- Конвейерный
- Параллелизм типа принятия коллективного решения
- Ускорение и эффективность вычислений на мвс
- Метод Рунге-Кутта 4
- 2. Расчётные формулы:
- 3. Алгоритм распараллеливания.
- Метод прогноза коррекции
- 2. Расчётные формулы
- 3. Алгоритм распараллеливания.
- 4. Ускорение вычислений.
- 4. Ускорение и точность вычислений.
- Решение уравнений в частных производных
- Колебания мембраны
- 2. Расчетные формулы
- Решение стационарных уравнений на мвс
- 2. Расчётные формулы
- Алгоритм распараллеливания.
- Ускорение вычислений
- Оптимизация на мвс
- Расчётные формулы
- Алгоритм распараллеливания
- Ускорение вычислений.