Контрольная работа: Паралельні обчислення з використанням MPI

if (param % 2 == 0) return 1;

else return 0;

}

===== Example5.cpp =====

У цьому прикладі головний процес (master) займається керуванням іншими «робітниками» процесами (slave), а також відає постачанням і збором інформації. Підпрограма

MPI_Probe (int source, int tag, MPI_Comm comm, MPI_Status *status)

перевіряє наявність повідомлень, готових до прийому. Її варіант, неблокуючий - MPI_Iprobe(int source, int tag, MPI_Comm comm, int *flag, MPI_Status *status) - якщо повідомлення вже надійшло і може бути прийнято, повертається значення прапора «істина». Інакше (повідомлення надійшло нецілком) – «неправду». Виклик процедури, що блокуючий, MPI_Probe з параметрами MPI_ANY_SOURCE і MPI_ANY_TAG зупиняє виконання майстра-процесу до надходження якого-небудь повідомлення, реалізуючи в рамках процесу модель подій. Далі в залежності від повідомлення, що надійшло, майстер-процес або приймає результати (успіх/невдача) з висновком відповідного повідомлення, або видає робочому процесу черговий набір інформації інформації (логін-пароль). Якщо всі паролі вже роздані – робочому процесу посилається сигнал BREAK. Висновок приклада 5: Example5 output (np = 5)


Initializing

[2] Waiting

<<< Proc 2 returned 2

>>> Feeding apc:: 12345 to proc 2

[3] Waiting

<<< Proc 3 returned 2

>>> Feeding admin:: aa5632 to proc 3

[2] Proc recv apc:: 12345

[1] Waiting

<<< Proc 1 returned 2

>>> Fe

К-во Просмотров: 418
Бесплатно скачать Контрольная работа: Паралельні обчислення з використанням MPI