Читайте также:
|
|
Существуют трудности, связанные с решением проблемы автоматизации параллельного программирования, необходимой в целях эффективного использования для широкого круга задач матричных ВС. Поэтому актуальны исследования новых методов построения высокопроизводительных ВС, одними из которых являются ВС с управлением потоком данных, или потоковые ВС.
В системах с управлением потоками данных предполагается наличие большого числа специализированных операционных блоков для определенных видов операций (сложения, умножения и т.п., отдельных для разных типов данных). Данные снабжаются указателями типа данных (тегами), на основании которых по мере готовности данных к обработке они загружаются в соответствующие свободные операционные блоки. При достаточном количестве операционных блоков может быть достигнут высокий уровень распараллеливания вычислительного процесса.
Принципиальное отличие потоковых машин состоит в том, что команды выполняются не в порядке следования команд в тексте программы, а по мере готовности их операндов.
«Потоковая программа» размещается в массиве ячеек команд. Команда наряду с кодом операции содержит поля, куда заносятся готовые операнды, и поле, содержащее адреса команд, в которые должен быть направлен в качестве операнда результат операции. Кроме того, каждой команде поставлен в соответствие двухразрядный тег (располагаемый в управляющем устройстве), разряды которого устанавливаются «1» при занесении в тело команды соответствующих операндов. В состоянии тега «11» (оба операнда готовы) инициируется запрос к операционному коммутатору (ОК) на передачу готовой команды в соответствующее коду операции операционное устройство. Результат выполнения команды над ее непосредственно адресуемыми операндами направляется через командный коммутатор (КК) согласно указанным в команде адресам в ячейки команд и помещается в их поля операндов. Далее указанная процедура циклически повторяется.
Закон Амдала. Предположим, что в программе доля операций, которые нужно выполнять последовательно, равна f, где 0<= f <=1. Крайние случаи в значениях f соответствуют полностью параллельным (f = 0) и полностью последовательным (f = 1) программам.
Для того, чтобы оценить, какое ускорение U может быть получено на компьютере из n процессоров при данном значении f, можно воспользоваться законом Амдала:
Если 9/10 программы исполняется параллельно, а 1/10 по-прежнему последовательно, то ускорения более, чем в 10 раз получить в принципе невозможно.
Следствие из закона Амдала Для того чтобы ускорить выполнение программы в q раз необходимо ускорить не менее, чем в q раз не менее, чем (1-1/ q)-ю часть программы.
Таким образом, для эффективного использования МПС необходимо тщательное согласование структуры программ и алгоритмов с особенностями архитектуры параллельных вычислительных систем.
Дата добавления: 2015-12-08; просмотров: 84 | Нарушение авторских прав