Page 160 - 4868
P. 160
Ошибка! Стиль не определен. 158
програми;
ранг, що отримується за допомогою функції MPI_Comm_rank, є
рангом процесу, що виконав виклик цієї функції, тобто змінна ProcRank
набуде різних значень для різних процесів.
Для передачі повідомлення процес-відправник повинен виконати
функцію:
int MPI_Send(void *buf, int count, MPI_Datatype type, int
dest, int tag, MPI_Comm comm)
де
buf – адреса буфера пам’яті, в якому розташовуються дані
повідомлення, що відправляється;
count – кількість елементів даних в повідомленні;
type – тип елементів даних повідомлення, що пересилається;
dest – ранг процесу, якому відправляється повідомлення;
tag – значення-тег, використовуване для ідентифікації повідомлення;
comm – комунікатор, у рамках якого виконується передача даних.
Для вказівки типу даних, що пересилаються, в MPI є ряд базових типів,
повний список яких приведений в таблиці2.2.
Таблиця 2.2– Базові типи даних MPI для алгоритмічної мови C
Тип даних MPI Тип даних C
MPI_BYTE
MPI_CHAR signed char
MPI_DOUBLE double
MPI_FLOAT float
MPI_INT int
MPI_LONG long
MPI_LONG_DOUBLE long double
MPI_PACKED
MPI_SHORT short
MPI_UNSIGNED_CHAR unsigned char
MPI_UNSIGNED unsigned int
MPI_UNSIGNED_LONG unsigned long
MPI_UNSIGNED_SHORT unsigned short
Слід зазначити, що:
повідомлення, що відправляється, визначається через вказівку блоку
пам’яті (буфера), в якому це повідомлення розташовується. Використовувана
для вказівки буфера тріада (buf, count, type) входить до складу параметрів
практично усіх функцій передачі даних;
процеси, між якими виконується передача даних, в обов’язковому
порядку повинні належати комунікаторові, що вказується у функції
MPI_Send;