/i>
*/
{= 0; _global = 0.0; (received
{= MPI_ANY_SOURCE; = 2; = MPI_Recv (& q_local, 1, MPI_DOUBLE, source, tag, MPI_COMM_WORLD,
& status); _global = q_global + q_local; = received + 1;
}
}
/*
головний процесор видає результат
*/(process_id == master)
{(" n"); ("Головний процесор: n"); ("Інтеграл ф-ії F (x) =% f n", q_global ); ("Помилка обчислень% f n", q_global - 0.624); _time = MPI_Wtime (); (" n"); ("Час, витрачений на обчислення =% f n",
end_time - start_time);
}
/* MPI.
*/= MPI_Finalize ();
/*.
*/(process_id == master)
{
printf (" n");
printf ("Головний процесор: n");
printf ("Нормальне завершення обчислень. n");
printf (" n"); ();
} 0;
}
/************************************** **********************/f (double x)
{value; = 2.0 * cos (x)/(2.0 + x * x); value;
}
/************************************** **********************/timestamp (void)
{
# define TIME_SIZE 40char time_buffer [TIME_SIZE]; struct tm * tm; _t now; = time (NULL); = localtime (& now); (time_buffer, TIME_SIZE, "% d% B% Y% I:% M:% S% p ", tm); ("% s n ", time_buffer);;
# undef TIME_SIZE
}
Література
1.http ://ru. wikipedia.org/wiki/Message_Passing_Interface <.
2.http ://ccas.ru/mmes/educat/lab04k/01/basics.html # Sec1 < - основи програмування в MPI.
. Богачов К.Ю. Основи паралельного програмування. - М.: БИНОМ. Лабораторія знань, 2003. p>. < - поширені питання з MPI.