Определение времени выполнение MPI-программы

Для оценки достигаемого ускорения процессов решения задач за счет использования параллелизма стандарт MPI включает определение специальных функций для измерения времени, использование которых позволяет устранить зависимость от среды выполнения параллельных программ.

Получение времени текущего момента выполнения программы обеспечивается при помощи функции:

double MPI_Wtime(void),

результат вызова которой есть количество секунд, прошедшее от некоторого определенного момента времени в прошлом. Этот момент времени в прошлом, от которого происходит отсчет секунд, может зависеть от среды реализации библиотеки MPI и, тем самым, для ухода от такой зависимости функцию MPI_Wtime следует использовать только для определения длительности выполнения тех или иных фрагментов кода параллельных программ. Возможная схема применения функции MPI_Wtime может состоять в следующем:

double t1, t2, dt;

t1 = MPI_Wtime();

t2 = MPI_Wtime();

dt = t2 – t1;

Точность измерения времени также может зависеть от среды выполнения параллельной программы. Для определения текущего значения точности может быть использована функция:

double MPI_Wtick(void),

позволяющая определить время в секундах между двумя последовательными показателями времени аппаратного таймера используемой компьютерной системы.

 

 

Приложение 3.

 

Описание функций

 

 

MPI_Init (&argc,&argv)

 

Инициализирует среду выполнения MPI. Эта функция должна вызываться в каждой MPI программе перед любыми другими MPI функциями, и только один раз. Служит для передачи аргументов командной строки всем процессам.

 

int MPI_Comm_size (MPI_Comm comm,int *size)

Возвращает размер подмножества, связанного с comm. Эта функция указывает на число процессов, объединенных в comm. Для MPI_COMM_WORLD она указывает общее число процессов, доступных во время инициализации(для этой версии MPI это также общее число процессов, доступных в течение вычисления)

 

int MPI_Comm_rank (MPI_Comm comm,int *rank)

указывает ранг процесса, который вызывает эту функцию; ранг в диапазоне от 0 до size-1, где size это значение, взвращаемое MPI_Comm_size, тоесть количество процессов в коммуникаторе

 

MPI_Abort (comm,errorcode)

 

Завершает все MPI процессы, связанные с коммуникатором. В большинстве реализаций, завершает все процессы, независимо от описанного коммуникатора.

 

MPI_Finalize ()

 

Завершает среду выполнения MPI. Эта функция должна вызываться последней в любой MPI программе.