ВУЗ:
Составители:
Рубрика:
- 28 -
MPI_Isend:
• MPI_Ibsend - неблокирующая передача сообщения с буферизацией
• MPI_Issend - неблокирующая передача сообщения с синхронизацией
• MPI_Irsend - неблокирующая передача сообщения по готовности
Цель работы – приобретение практических знаний и навыков в компиля-
ции и запуске простейших MPI-программ, практическое уяснение необходи-
мости синхронизации ветвей,
Необходимое оборудование – вычислительный кластер под управлением
UNIX-совместимой ОС, предустановленная поддержка MPI, рабочая консоль
программиста для управления прохождением пользовательских задач.
Порядок проведения работы – студент подготавливает исходные тексты
MPI-программ, компилирует их в
исполнимое приложение, запускает на
счет, анализирует выходные данные программы.
Часть 1 работы.
Первой задачей является компиляция простейшей MPI-
программы
EXAMPLE_01.C, запуск ее на исполнение на заданном преподава-
телем числе ВУ и анализ результатов.
// source code of EXAMP_01.C program
#include "mpi.h"
#include <stdio.h>
#include <sys/timeb.h> // for ftime function
int main(int argc, char **argv)
{
int CURR_PROC, ALL_PROC, NAME_LEN;
char PROC_NAME[MPI_MAX_PROCESSOR_NAME];
struct timeb t; // time contain structure
MPI_Init (&argc, &argv);
MPI_Comm_rank (MPI_COMM_WORLD, &CURR_PROC); /* current process */
MPI_Comm_size (MPI_COMM_WORLD, &ALL_PROC); /* all process */
// get processor name (really computer name)
MPI_Get_processor_name(PROC_NAME, &NAME_LEN);
ftime(&t); // get current time point
// t.time is time in sec since January 1,1970
// t.millitm is part of time in msec
// ATTENSION ! ftime may by used only after synchronization all processors time
// output to STDIN
printf("I am process %d from %d and my name is %s (time: %.3f sec)\r\n",
CURR_PROC, ALL_PROC, PROC_NAME, (t.time+1e-3*t.millitm));
MPI_Finalize();
} // end of EXAMPLE_01 program
MPI_Isend: • MPI_Ibsend - неблокирующая передача сообщения с буферизацией • MPI_Issend - неблокирующая передача сообщения с синхронизацией • MPI_Irsend - неблокирующая передача сообщения по готовности Цель работы – приобретение практических знаний и навыков в компиля- ции и запуске простейших MPI-программ, практическое уяснение необходи- мости синхронизации ветвей, Необходимое оборудование – вычислительный кластер под управлением UNIX-совместимой ОС, предустановленная поддержка MPI, рабочая консоль программиста для управления прохождением пользовательских задач. Порядок проведения работы – студент подготавливает исходные тексты MPI-программ, компилирует их в исполнимое приложение, запускает на счет, анализирует выходные данные программы. Часть 1 работы. Первой задачей является компиляция простейшей MPI- программы EXAMPLE_01.C, запуск ее на исполнение на заданном преподава- телем числе ВУ и анализ результатов. // source code of EXAMP_01.C program #include "mpi.h" #include#include // for ftime function int main(int argc, char **argv) { int CURR_PROC, ALL_PROC, NAME_LEN; char PROC_NAME[MPI_MAX_PROCESSOR_NAME]; struct timeb t; // time contain structure MPI_Init (&argc, &argv); MPI_Comm_rank (MPI_COMM_WORLD, &CURR_PROC); /* current process */ MPI_Comm_size (MPI_COMM_WORLD, &ALL_PROC); /* all process */ // get processor name (really computer name) MPI_Get_processor_name(PROC_NAME, &NAME_LEN); ftime(&t); // get current time point // t.time is time in sec since January 1,1970 // t.millitm is part of time in msec // ATTENSION ! ftime may by used only after synchronization all processors time // output to STDIN printf("I am process %d from %d and my name is %s (time: %.3f sec)\r\n", CURR_PROC, ALL_PROC, PROC_NAME, (t.time+1e-3*t.millitm)); MPI_Finalize(); } // end of EXAMPLE_01 program - 28 -
Страницы
- « первая
- ‹ предыдущая
- …
- 26
- 27
- 28
- 29
- 30
- …
- следующая ›
- последняя »