Статья: Распределенные вычисления на FreePascal под Windows

i := i + numprocs;

end;

mypi := h*sum;

MPI_Reduce( @mypi, @pimy, 1, MPI_DOUBLE, MPI_SUM, 0, MPI_COMM_WORLD);

if myid = 0 then

begin

writeln('; error is', abs(pimy-pi));

endwtime := MPI_WTime;

writeln('wall clock ', endwtime-startwtime)

end;

end;

MPI_Finalize;

end.

Файл n.in, содержащий в первой строке число разбиений (чем больше число, тем точнее считается π) должен присутствовать в том каталоге, где находится исполняемый файл.

Обратите внимание на то, что в этой программе нет case-вилок &mdash все процессы вызывают одни и те же функции.

Полезная функция MPI_Wtime

function MPI_Wtime : double;

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

В каталоге SDK/Examples также можно найти файл systest.c. Здесь находится версия этой программы, написанная на паскале.

Заключение.

Модуль mpi.pp содержит описание 230 функций MPI. У меня нет никакой возможности перечислить их все, да я и не ставил перед собой такой задачи. Я могу лишь гарантировать, что все функции, которые я использовал в приведенных примерах, работают правильно.

Если же Вам удалось найти (а еще лучше &mdash исправить) какой-либо баг в файле mpi.pp &mdash большая просьба сообщить об этом мне на mailto:[email protected]?subject=mpi.pp.

Замеченные мною баги:

1. Функции MPI_Info_c2f, MPI_Info_f2c и MPI_Request_c2f

Что они делают, я не знаю. В текущем модуле mpi.pp эти функции остаются нереализованными.

Благодарности.

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

Также выношу благодарность Шихалеву Ивану, который сильно помог в исправлении неточностей и ошибок первоначальной версии модуля mpi.pp.

Полезные ссылки.

К-во Просмотров: 393
Бесплатно скачать Статья: Распределенные вычисления на FreePascal под Windows