– функция, трактуемая как программный сегмент, не содержащий операторов из множества и выполняющий ограниченное число действий, в частности, сегмент может быть пустым; квадратные скобки означают, что оператор из на этом месте может отсутствовать.
Абстрактной моделью параллельных вычислений с такой структурой программных фрагментов вершинных процессов может служить модель, основанная на следующих положениях и требованиях к аппаратной части вычислительных систем [9]:
Условием включения с-оператора (запуском процесса выполнения) является конъюнкция двух подусловий, одно из которых характеризует присутствие/отсутствие с-оператора в списке преемников, другое соответствует условию «индивидуального» включения для . Представление условия включения в виде двух указанных подусловий является принципиальной особенностью модели параллельных вычислений. В такой трактовке модель не противоречит также и записи любого последовательного алгоритма в виде последовательности с-операторов вида:
, (2.39)
где с-оператор, в котором присутствует лишь множество , так как в последовательных алгоритмах известны уже априорно готовые к использованию данные, что не требует проверки их готовности, а назначение преемников, выполняемое операторами подмножества , включает весьма ограниченный набор правил: БП и УП – соответственно операторы безусловного и условного переходов, а правило – соответствует оператору останова;
В последовательности (2.39) выполняет функции стартового оператора алгоритма. В каждый момент выполняется только один с-оператор, имя которого находится в регистре команд (РК), а список преемников содержит только один элемент.
Сущность РК для ветви параллельного алгоритма аналогична сущности РК процессора, выполняющего последовательную программу. Регистр команд может трактоваться как переменная, значение которой изменяется автоматически и в любой момент равно значению имени с-оператора, находящегося в состоянии выполнения.
В модели параллельных вычислений в любой момент времени для любого процесса должна существовать своя переменная типа РК, которая содержит имя очередного выполняющегося с-оператора. Множество таких переменных содержат имена всех активных в этот момент с-операторов. Каждому РК соответствует его собственный список преемников. Идея иметь множество регистров, наделенных функциями регистра команд, оказалась в своем развитии очень плодотворной, так как позволила организовать одновременную выборку из общей памяти и выполнение командных инструкций для нескольких параллельных ветвей. Правда, на аппаратном и программном уровнях ежеминутно пришлось разрешать спор отдельных процессов за обладание либо процессором, либо памятью, либо устройствами ввода/вывода... Именно в разрешении конфликтов была выработана и концепция отложенного завершения операций.
В свете описанной модели параллельный алгоритм, изменяющий состояние памяти D , считается определенным, если задана четверка
,
где конечное множество с-операторов над ;
подмножество стартовых операторов , начинающих выполнение в заданном конечном промежутке времени (имя каждого из них появляется на своем из множества );
множество стартовых (исходно заданных) , взаимно однозначно соответствующих элементам из ;
конечное множество операторов меж процессных взаимодействий, в котором оператор из множества операторов может:
создавать новые или уничтожать существующие,
назначать преемников на любом подмножестве , существующих в момент выполнения оператора. Назначение преемником оператора останова должно приводить к уничтожению того , на котором он появляется. Уничтожение последнего из существующих приводит к завершению параллельного алгоритма.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.