Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по MPI (реферат) (2).doc
Скачиваний:
34
Добавлен:
28.06.2014
Размер:
108.03 Кб
Скачать

Int _tmain(int argc, _tchar* argv[])

{

int nSize = 0;

int nRank = 0;

int nResult = 0;

int nError = 0;

MPI_Init(&argc, &argv);

MPI_Comm_size(MPI_COMM_WORLD, &nSize);

MPI_Comm_rank(MPI_COMM_WORLD, &nRank);

nError = MPI_Reduce(&nRank, &nResult, 1, MPI_INT, MPI_SUM, 0, MPI_COMM_WORLD);

if(nError)

{

printf("MPI_Reduce returned Error %d\n", nError);

}

else

{

if(!nRank)

{

printf("Result is %d\n", nResult);

}

}

MPI_Finalize();

return 0;

}

Результат работы функции. Вывод полученного значения суммы номеров всех процессов(для 4-х процессов):

Result is 6

Функция MPI_AllReduce() отличается только тем, что сохраняет данные во всех процессах, поэтому в ней не указывается корневой процесс. Список параметров аналогичен предыдущей функции.

int MPI_Allreduce(void* sendbuf, void* recvbuf, int count,

MPI_Datatype datatype, MPI_Op op, MPI_Comm comm)

Соседние файлы в предмете Параллельные вычислительные системы