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

UptoLike

В пространстве кортежей оказывается соответствующие n кор-
тежей. Пример 4. Обмен сообщениями “с помощью каналов”
OUT("ch", expressions);
посылка в “канал”.
IN("ch", expressions);
получение из “канала”.
§ 4. Портфель задач
Реализация параллельных вычислений возможна с использо-
ванием так называемого портфеля задач.
Задача здесь представляет независимую единицу работы. За-
дачи помещаются в “портфель”, разделяемый всеми процессами,
работающими по программе
while(true) {
[получить задачу из "портфеля"];
if([задач больше нет])
break; # выход из цикла
fi
}
Парадигма портфеля задач имеет следующие положительные
черты:
1) она весьма проста, так как для работы достаточно соблюсти
всего лишь несколько требований:
нужно дать представление задач;
определить портфель (набор задач);
дать программу выполнения задачи;
определить критерий ее окончания;
2) программы с использованием портфеля задач легко масшта-
бируются простым изменением числа процессов (при этом нельзя
забывать, что производительность может не измениться, если чис-
ло процессов больше числа задач);
3) упрощается балансировка нагрузки: освободившиеся процес-
сы берут на себя решение новых задач из портфеля (пока задач в
два или три раза больше, чем процессов, загрузка процессов ока-
жется приблизительно одинаковой).
195