Page 204 - 6571
P. 204
nt, type) входить до складу параметрів практично усіх функцій
передачі даних;
- процеси, між якими виконується передача даних, в
обов’язковому порядку повинні належати комунікаторові, що
вказується у функції MPI_Send;
- параметр tag використовується тільки при необхідності
розрізнення повідомлень, що передаються, інакше в якості зна-
чення параметра може бути використане довільне позитивне ціле
число.
Відразу ж після завершення функції MPI_Send процес-
відправник може почати повторно використовувати буфер
пам’яті, в якому розташовувалося повідомлення, що відправляло-
ся. Також слід розуміти, що у момент завершення функції MP-
I_Send стан самого повідомлення, що пересилається, може бути
абсолютно різним: повідомлення може розташовуватися в проце-
сі-відправнику, може знаходитися в стані передачі, може зберіга-
тися в процесі-одержувачу або може бути прийнято процесом-
одержувачем за допомогою функції MPI_Recv. Тим самим, заве-
ршення функції MPI_Send означає лише, що операція передачі
почала виконуватися і пересилка повідомлення рано чи пізно бу-
де виконана.
Для прийому повідомлення процес- одержувач повинен ви-
конати функцію:
int MPI_Recv(void *buf, int count, MPI_Datatype type,
int source int tag, MPI_Comm comm, MPI_Status
*status)
де buf, count, type – буфер пам’яті для прийому повідомлен-
ня, призначення кожного окремого параметра відповідає опису в
MPI_Send;
source – ранг процесу, від якого має бути виконаний прийом
повідомлення;
tag – тег повідомлення, яке має бути прийняте для процесу;
comm – комунікатор, у рамках якого виконується передача
даних;
status – вказівник на структуру даних з інформацією про
результат виконання операції прийому даних.
Слід зазначити, що:
203