Н., Пескова Е. Е., Шаманаев П. А. Основы параллельного программирования с использованием технологий mpi и openmp учебное пособие саранск издательство свмо 2013 2



Pdf көрінісі
бет7/53
Дата07.06.2023
өлшемі6.58 Mb.
#474796
1   2   3   4   5   6   7   8   9   10   ...   53
ParProg MPI OpenMP

2.2 Базовые функции MPI 
 
Любая MPI-программа должна начинаться с вызова функции 
инициализации MPI – функции MPI_Init. В результате выполнения этой 
функции создается группа процессов, в которую помещаются все 
процессы приложения, и создается область связи, описываемая 
предопределенным коммуникатором MPI_COMM_WORLD. Эта область 
связи объединяет все процессы-приложения. Процессы в группе 
упорядочены и пронумерованы от 0 до size-1, где size равно числу 
процессов в группе.
Синтаксис функции инициализации MPI_Init на языке C выглядит 
следующим образом: 
int MPI_Init(int *argc, char ***argv), где 
• argc — указатель на количество параметров командной строки, 
argv — параметры командной строки, применяемые для 
инициализации среды выполнения MPI программы. 
Параметрами 
функции 
являются 
количество 
аргументов 
в 
командной строке и адрес указателя на массив символов текста самой 
командной строки. 
Последней вызываемой функцией MPI обязательно должна являться 
функция: int MPI_Finalize(void). Функция закрывает все MPI-процессы и 
ликвидирует все области связи [2]. 
Как результат, можно отметить, что структура параллельной 
программы, разработанная с использованием MPI, должна иметь 
следующий вид: 
#include "mpi.h" 
int main(int argc, char *argv[]) { 
<программный код без использования функций MPI> 
MPI_Init(&argc, &argv); 
<программный код с использованием функций MPI> 
MPI_Finalize(); 
<программный код без использования функций MPI> 
return 0; 

 
Следует отметить: 
• файл mpi.h содержит определения именованных констант
прототипов функций и типов данных библиотеки MPI; 


12 
• функции MPI_Init и MPI_Finalize являются обязательными и 
должны быть выполнены (и только один раз) каждым процессом 
параллельной программы; 
• перед вызовом MPI_Init может быть использована функция 


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   10   ...   53




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет