Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Параллелизм.doc
Скачиваний:
2
Добавлен:
01.05.2025
Размер:
211 Кб
Скачать
☆

Параллелизм уровня задания

Параллелизм уровня заданий возможен между независимыми заданиями или их фазами. Основным средством реализации параллелизма на уровне заданий служат многопроцессорные и многомашинные вычислительные системы, в которых задания распределяются по отдельным процессорам или машинам. Однако, если трактовать каждое задание, как совокупность независимых задач, реализация данного уровня возможна и в рамках однопроцессорной ВС. В этом случае несколько заданий могут одновременно находиться в одной памяти ВС, при условии, что в каждый момент выполняется только одно из них. Когда выполняемое задание требует ввода- вывода, такая операция запускается , а до ее завершения остальные ресурсы ВС передаются другому заданию. По завершении ввода – вывода ресурсы ВС возвращаются заданию, инициировавшему эту операцию. Здесь параллелизм обеспечивается за счет того, что центральный процессор и система вводе - вывода работает одновременно, обслуживая разные задания.

Параллелизм уровня программ.

О параллелизме на уровне программ имеет смысл говорить в двух случаях. Во первых, когда в программе могут быть выделены независимые участки , которые допустимо выполнять параллельно. Примером такого параллелизма может служить программа робота. Пусть имеется робот, запрограммированный на обнаружение электрических розеток, когда уровень напряжения в его аккумуляторах падает. Когда робот находит одну из розеток, он включается в нее на подзарядку. В процесс вовлечены три подсистемы робота- зрение, манипуляция и движение. Каждая подсистема управляется своим процессором, то есть подсистемы при выполнении разных действий способны работать параллельно.

Задача

Зрение

манипуляция

Движение

Поиск розетки

+

+

Движ. К розетке

+

+

Подкл. К розетке

+

+

Подсистемы достаточно независимы при ведущей роли системы зрения. Возможен также и центральный процессор – мозг. Это пример параллелизма программ в котором разные задачи выполняются одновременно для достижения общей цели.

Второй тип параллелизма программ возможен в пределах отдельного программного цикла, если в нем отдельные итерации не зависят друг от друга. Программный параллелизм может быть реализован за счет большого количества процессоров или множества функциональных блоков. В качестве примера рассмотрим следующий фрагмент кода:

For I:=1toN do A(i) + C(і)

Все суммы независимы, то есть вычисление В+С не зависит от других аналогичных сумм для любых і . Это означает, что вычисления могут производиться в любой последовательности и в вычислительной системе с N процессорами все суммы могут быть вычислены одновременно.

Общая форма параллелизма на уровне программ проистекает из разбиения программируемых данных на подмножества. Это разделение называют декомпозицией области , а параллелизм , возникающий при этом, носит название параллелизм данных. Подмножества данных назначаются разным вычислительным процессам, и называется этот процесс распределением данных . Процессоры выделяются отдельным процессам либо по инициативе программы, либо в процессе работы операционной системы. На каждом процессоре может выполняться более чем один процесс.