Параллельное программирование в стандарте MPI. Баканов В.М - 41 стр.

UptoLike

Составители: 

- 41 -
щей процедуры тестирования (более полный набор тестов можно получить с
http://parallel.ru/testmpi
).
Для виртуального кластера максимально достижимая реальная произво-
дительности коммуникационной сети достигается при размере сообщений
более 128
÷
256 kбайт, при этом величина латентности может достигать
300
÷
400 мксек (что является платой за виртуальное совмещение сетей
управления и коммуникаций единой физической Fast Ethernet-сетью).
Необходимое оборудованиевычислительный кластер под управлением
UNIX-совместимой ОС, предустановленная поддержка MPI, рабочая консоль
программиста для управления прохождением пользовательских задач.
Порядок проведения работыстудент подготавливает исходные тексты
MPI-программ, компилирует их в исполняемое приложение, запускает на
счет
, анализирует выходные данные программы и представляет их в графи-
ческом виде.
Исходный код простой C-программы
PROG_MPI.C
тестирования произво-
дительности сети приведен ниже
:
// source code of PROG_MPI.C program
#include "mpi.h"
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
static int message[10000000]; // max length of message
int main (int argc, char *argv[])
{
double time_start,time_finish;
int i, n, nprocs, myid, len;
MPI_Request rq;
MPI_Status status;
MPI_Init(&argc,&argv); /* initialization MPI */
MPI_Comm_size(MPI_COMM_WORLD,&nprocs); /* all processes */
MPI_Comm_rank(MPI_COMM_WORLD,&myid); /* current process */
printf("PROGMPI: nprocs=%d myid=%d\n", nprocs, myid);
fflush( stdout );
len = atoi( argv[1] ); // get length message from command line
printf( "length: %d\n", len );
if (myid == 0) /* I a m MASTER-process ! */
{
n = 1000; /* cycles number */
MPI_Send(&n, 4, MPI_CHAR, nprocs-1, 99,MPI_COMM_WORLD);
time_start=MPI_Wtime();
                                         - 41 -

щей процедуры тестирования (более полный набор тестов можно получить с
http://parallel.ru/testmpi).
    Для виртуального кластера максимально достижимая реальная произво-
дительности коммуникационной сети достигается при размере сообщений
более 128 ÷ 256 kбайт, при этом величина латентности может достигать
300 ÷ 400 мксек (что является платой за виртуальное совмещение сетей
управления и коммуникаций единой физической Fast Ethernet-сетью).

  Необходимое оборудование – вычислительный кластер под управлением
UNIX-совместимой ОС, предустановленная поддержка MPI, рабочая консоль
программиста для управления прохождением пользовательских задач.

  Порядок проведения работы – студент подготавливает исходные тексты
MPI-программ, компилирует их в исполняемое приложение, запускает на
счет, анализирует выходные данные программы и представляет их в графи-
ческом виде.

  Исходный код простой C-программы PROG_MPI.C тестирования произво-
дительности сети приведен ниже:

// source code of PROG_MPI.C program
#include "mpi.h"
#include 
#include 
#include 

static int message[10000000]; // max length of message

int main (int argc, char *argv[])
{
 double time_start,time_finish;
 int i, n, nprocs, myid, len;
 MPI_Request rq;
 MPI_Status status;

MPI_Init(&argc,&argv); /* initialization MPI */
MPI_Comm_size(MPI_COMM_WORLD,&nprocs); /* all processes */
MPI_Comm_rank(MPI_COMM_WORLD,&myid); /* current process */

printf("PROGMPI: nprocs=%d myid=%d\n", nprocs, myid);
fflush( stdout );
len = atoi( argv[1] ); // get length message from command line
printf( "length: %d\n", len );

if (myid == 0) /* I a m MASTER-process ! */
{
 n = 1000; /* cycles number */
 MPI_Send(&n, 4, MPI_CHAR, nprocs-1, 99,MPI_COMM_WORLD);
 time_start=MPI_Wtime();