Алгоритмы параллельных вычислений и программирование. Бурова И.Г - 173 стр.

UptoLike

Глава 11. ПРОГРАММИРОВАНИЕ НА mpC
§ 1. Введение
Язык mpC является расширением языка C и предназначен для
проведения параллельных вычислений на неоднородных сетях.
Особенности программирования на mpC:
— программист не указывает, сколько процессов работает в
программе и на каких компьютерах они выполняются;
для группы процессов, выполняющих некоторый параллель-
ный алгоритм в mpC, вводится понятие сети. В простейшем случае
сетью является группа виртуальных процессоров;
задав сеть, программист определяет отображение виртуаль-
ных процессоров на реальные процессы параллеьной программы, и
это отображение сохраняется на все время функционирования сети.
В качестве иллюстрации рассмотрим следующую программу.
#include<mpc.h>
#define N 3
int [*] main(){net SimpleNet(N) mynet
[mynet] MPC_Printf("Hallo, word! \n");}
В данной программе сначала определяется сеть mynet, состоящая
из N виртуальных процессоров, а потом на этой сети (на сети
[mynet]) вызывается библиотечная функция MPC_Printf.
Выполнение программы состоит в параллельном вызове функ-
ции MPC_Printf теми N процессами программы, на которые отобра-
жены виртуальные процессоры сети mynet.
В результате каждый процесс пошлет сообщение
"Hallo, world!" на терминал пользователя, с которого запу-
щена программа, так что в результате пользователь получит
приветствие "Hallo, world!" в количестве N штук по одному
от каждого процесса.
§ 2. Базовые и узловые функции
Вернемся к последней программе предыдущего параграфа.
Спецификатор [*] перед именем main говорит, что код этой про-
граммы обязательно должен быть выполнен всеми процессами про-
граммы.
174