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

UptoLike

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

- 5 -
разработка Argonne National Lab.,
http://www.mcs.anl.gov
), LAM (UNIX-
подобные ОС, Ohio Supercomputer Center,
http://www.osc.edu
и Notre-Damme
University,
http://www.lsc.nd.edu
), CHIMP/MPI (Edinburgh Parallel Computing
Centre,
http://www.epcc.ed.ac.uk
), WMPI (все версии Windows, разработка Uni-
versity of Coimbra, Portugal,
http://dsg.dei.uc.pt/wmpi;
в 2002 г. права перешли к
Critical Software SA,
) и др. (подробнее см.
http://parallel.ru/mpi.html
).
Основными отличиями стандарта MPI-2 являются: динамическое порож-
дение процессов, параллельный ввод/вывод, интерфейс для C++, расширен-
ные коллективные операции, возможность одностороннего взаимодействия
процессов (см. [1] и
http://www.mpi-forum.org
). В настоящее время MPI-2 прак-
тически не используется; существующие реализации поддерживают только
версии MPI 1.
MPI является (довольно) низкоуровневым инструментом программиста; c
помощью MPI созданы рассчитанные на численные методы специализиро-
ванные библиотеки (например, включающая решение систем линейных
уравнений, обращение матриц, ортогональные преобразования, поиск собст-
венных значений и т.п. библиотеки ScaLAPACK,
http://www.netlib.org/scalapack
и AZTEC,
http://www.cs.sandia.gov/CRF/aztec1.html
для плотнозаполненных и
разреженных матриц соответственно). MPI не обеспечивает механизмов за-
дания начального размещения процессов по вычислительным узлам (процес-
сорам); это должен явно задать программист или воспользоваться неким сто-
ронним механизмом.
Разработчики MPI (справедливо) подвергаются жесткой критике за излиш-
нюю громоздкость и сложность для реального (прикладного) программиста.
Интерфейс оказался сложным и
для реализации; в итоге в настоящее время
практически не существует реализаций MPI, в полной мере обеспечивающие
совмещение обменов с вычислениями. Проект MPI-2 выглядит еще более
громоздким и тяжелоподъемным для реализации в заявленной степени.
В состав функций MPI входят специальные вызовы для обработки исклю-
чительных ситуаций и отладки. Цель обработчиков состоит в выдаче поль
-
зователю (определенное им же) сообщение об ошибке для принятия дейст-
вий, не относящиеся к MPI (напр., очистка буферов ввода/вывода) перед вы-
ходом из программы. Реализация MPI допускает продолжение работы при-
ложения после возникновения ошибки.
Полномасштабная отладка MPI-программ достаточно сложна вследствие
одновременного исполнения нескольких программных ветвей (при этом тра-
диционная отладки методом
включения в исходный текст операторов печати
затруднена вследствие смешивания в файле выдачи информации от различ-
ных ветвей MPI-программы); одним из наиболее мощных отладчиков счита-
ется TotalView (
http://www.dolphinics.com
). В функции подобных отладчиков
входит трассировка программы и профилированиевыдача (часто в графи-
ческом виде) информации об обменах в параллельной программе.
Строго говоря, технология MPI подразумевает подход
MPMD
(Multiple Pro-
gram
Multiple Data: множество программ
множество данных), при этом
                                       -5-

разработка Argonne National Lab., http://www.mcs.anl.gov), LAM (UNIX-
подобные ОС, Ohio Supercomputer Center, http://www.osc.edu и Notre-Damme
University, http://www.lsc.nd.edu), CHIMP/MPI (Edinburgh Parallel Computing
Centre, http://www.epcc.ed.ac.uk), WMPI (все версии Windows, разработка Uni-
versity of Coimbra, Portugal, http://dsg.dei.uc.pt/wmpi; в 2002 г. права перешли к
Critical Software SA, [email protected]) и др. (подробнее см.
http://parallel.ru/mpi.html).
   Основными отличиями стандарта MPI-2 являются: динамическое порож-
дение процессов, параллельный ввод/вывод, интерфейс для C++, расширен-
ные коллективные операции, возможность одностороннего взаимодействия
процессов (см. [1] и http://www.mpi-forum.org). В настоящее время MPI-2 прак-
тически не используется; существующие реализации поддерживают только
версии MPI 1.
   MPI является (довольно) низкоуровневым инструментом программиста; c
помощью MPI созданы рассчитанные на численные методы специализиро-
ванные библиотеки (например, включающая решение систем линейных
уравнений, обращение матриц, ортогональные преобразования, поиск собст-
венных значений и т.п. библиотеки ScaLAPACK, http://www.netlib.org/scalapack
и AZTEC, http://www.cs.sandia.gov/CRF/aztec1.html для плотнозаполненных и
разреженных матриц соответственно). MPI не обеспечивает механизмов за-
дания начального размещения процессов по вычислительным узлам (процес-
сорам); это должен явно задать программист или воспользоваться неким сто-
ронним механизмом.
   Разработчики MPI (справедливо) подвергаются жесткой критике за излиш-
нюю громоздкость и сложность для реального (прикладного) программиста.
Интерфейс оказался сложным и для реализации; в итоге в настоящее время
практически не существует реализаций MPI, в полной мере обеспечивающие
совмещение обменов с вычислениями. Проект MPI-2 выглядит еще более
громоздким и тяжелоподъемным для реализации в заявленной степени.
   В состав функций MPI входят специальные вызовы для обработки исклю-
чительных ситуаций и отладки. Цель обработчиков состоит в выдаче поль-
зователю (определенное им же) сообщение об ошибке для принятия дейст-
вий, не относящиеся к MPI (напр., очистка буферов ввода/вывода) перед вы-
ходом из программы. Реализация MPI допускает продолжение работы при-
ложения после возникновения ошибки.
   Полномасштабная отладка MPI-программ достаточно сложна вследствие
одновременного исполнения нескольких программных ветвей (при этом тра-
диционная отладки методом включения в исходный текст операторов печати
затруднена вследствие смешивания в файле выдачи информации от различ-
ных ветвей MPI-программы); одним из наиболее мощных отладчиков счита-
ется TotalView (http://www.dolphinics.com). В функции подобных отладчиков
входит трассировка программы и профилирование – выдача (часто в графи-
ческом виде) информации об обменах в параллельной программе.
   Строго говоря, технология MPI подразумевает подход MPMD (Multiple Pro-
gram − Multiple Data: множество программ − множество данных), при этом