Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие по ВС.doc
Скачиваний:
235
Добавлен:
22.03.2016
Размер:
1.1 Mб
Скачать

Закон Амдала

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

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

Далее примем, что доля затрат времени на выполнение зависимых последовательных процессов составляет s (т.е. доля времени на выполнение сугубо последовательного кода), а доля затрат на выполнение независимых процессов (т.е. доля времени на выполнение части программы, которая может выполняться параллельно) в последовательной машине – p. Тогда очевидно, что s + p = 1. Пусть при этих условиях длительность решения задачи в последовательной машине составляет Ts.

Для ускорения обработки в «идеальной» параллельной машине предусмотрим N процессорных элементов, на которые возложим решение всех независимых процессов. Тогда время реализации того же алгоритма в параллельной машине Tp составит

Tp = (s + p/N) Ts.

Коэффициент ускорения, т.е. отношение времени решения задачи на последовательной машине ко времени решения той же задачи на параллельной, определяется из этого выражения:

k = Ts/ Tp = 1/(s + p/N),

а при увеличении числа независимых процессов он асимптотически приближается к величине

k = 1/s.

Это выражение носит название закона Амдала [Амдал – один из разработчиков всемирно известной системы IBM 360] и характеризует предельные возможности ускорения обработки за счет организации параллельных вычислений. Поскольку в любой программе имеется значительная доля последовательных операций, например, связанных с вводом/выводом, управлением, переходами и т. д., то возможности параллельной обработки ограничены. Кроме того, при параллельной обработке возникает необходимость в дополнительных действиях, связанных с обменом данными между отдельными процессорами, распределением задач и т.п.

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

9.1 Классификация ВС с несколькими процессорами

Чтобы ориентироваться в многообразии современных ВС, необходима определенная система классификации. Классификация ВС может выполняться с различных точек зрения, например, с позиций пользователя, по архитектурным или структурным признакам и т.д.

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

Если ВС обеспечивает высокие показатели быстродействия на широком классе задач, то она «универсальна». Универсальная ВС способна решать задачи и других классов, но при этом ее производительность значительно падает. Добиться высоких показателей быстродействия для широкого класса задач сложно и дорого. Для снижения затрат строят специализированные системы, обладающие высокой производительностью при решении задач из узкого класса. Во многих случаях специализированные системы не могут решать задачи других классов и они оправданы только в том случае, когда выполняемые ими задачи встречаются достаточно часто или отсутствуют другие пути их решения. Такие ВС предназначены для систем реального времени при управлении объектами и технологическими процессами.

Проблемно-ориентированные ВС занимают промежуточное положение между универсальными и специализированными системами. Наиболее известны системы, предназначенные для числовой обработки (суперЭВМ), процессоры быстрого преобразования Фурье, обработки речевых сигналов, машины логических выводов и др.

Классификация по числу процессоров на первый взгляд значительно проще: все компьютеры принято делить на однопроцессорные и мультипроцессорные (или многопроцессорные). Однако на современном этапе развития технологии практически любой процессор персонального компьютера содержит несколько средств обработки, т.е. «состоит» из нескольких процессорных элементов, а в серверах может использоваться несколько процессоров, которые в свою очередь состоят из нескольких процессорных элементов.

Наибольший интерес представляет классификация ВС по архитектурным и структурным критериям, предложенная М. Флинном в 1966 г. Она основана на понятиях потока, т.е. последовательности команд или данных. Все ВС Флинн предложил разделить на четыре класса: ОКОД, ОКМД, МКОД и МКМД.

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

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

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

МКМД (множественный поток команд и множественный поток данных).

Системы этого класса обладают несколькими процессорами, работающими со своими потоками данных и по своим командам. Этот класс очень широк: он включает в себя классические мультипроцессорные системы, машины потока данных, нейрокомпьютеры и многие другие. К этому классу относят и ВС, состоящие из нескольких автономных систем ОКМД, так называемые системы МОКМД.

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

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

Для организации вычислительного процесса чрезвычайно важен способ обмена результатами обработки в отдельных процессорах. Такой обмен может осуществляться словами или сообщениями. Для пословного обмена необходимо наличие глобальной (общей для всех процессоров) памяти, разделяющей общее адресное пространство, или специальной коммуникационной сети. Системы с пословным обменом называют сильносвязанными. В них должны быть предусмотрены средства синхронизации процессов и защиты памяти. Обычно в таких системах используют единую разделяемую во времени систему ввода-вывода. Обмен сообщениями осуществляется в слабосвязанных системах. Для таких систем характерно наличие локальной памяти в каждом процессоре, асинхронная обработка, значительные затраты времени на обмен. Как правило, в слабосвязанных системах процессоры обладают автономными средствами ввода-вывода. [К слабосвязанным системам можно отнести локальные сети.]

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

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

Наконец, можно построить ВС, в которой реализация конкретного алгоритма происходит за счет изменения ее структуры: если перестройка структуры ВС производится до начала выполнения алгоритма, то такую ВС относят к статически, а если такая перестройка происходит в процессе выполнения алгоритма – то к динамически перестраиваемым.