Автор работы: Пользователь скрыл имя, 07 Октября 2012 в 00:59, реферат
Прошло немногим более 50 лет с момента появления первых электронных вы-числительных машин - компьютеров. За это время сфера их применения охватила практически все области человеческой деятельности.
Введение 3
Глава 1. Параллельная обработка данных 4
1.1. Параллельность 4
1.2. Конвейерность 4
1.3. Векторная обработка 5
Глава 2. Классификация архитектур по параллельной обработке данных 5
Глава 3. Архитектуры MIMD 6
3.1. Мультипроцессоры 7
3.2. Мультикомпьютеры 8
Глава 4. Закон Амдала 9
Заключение 10
Список литературы 11
Современные системы SMP архитектуры состоят, как правило, из нескольких однородных серийно выпускаемых микропроцессоров и массива общей памяти, подключение к которой производится либо с помощью общей шины, либо с помощью коммутатора.
Наличие
общей памяти значительно
Помимо
хорошо известной проблемы конфликтов
при обращении к общей шине
памяти возникла и новая проблема,
связанная с иерархической
NUMA (Non-Uniform Memory Access) - это архитектура с неоднородным доступом к памяти.
Гибридная
архитектура воплощает в себе
удобства систем с общей памятью
и относительную дешевизну
Мультикомпьютеры - вычислительная система без общей памяти, состоящая из большого числа взаимосвязанных компьютеров, у каждого из которых имеется собственная память. Мультикомпьютеры (многопроцессорные системы с распределенной памятью) уже не обеспечивают общего доступа ко всей имеющейся в системах памяти (no-remote memory access или NORMA). При всей схожести подобной архитектуры с системами с распределенной общей памятью (NUMA), мультикомпьютеры имеют принципиальное отличие: каждый процессор системы может использовать только свою локальную память, в то время как для доступа к данным, располагаемым на других процессорах, необходимо явно выполнить операции передачи сообщений (message passing operations). Данный подход применяется при построении двух важных типов многопроцессорных вычислительных систем - массивно-параллельных систем (massively parallel processor или MPP) и кластеров (clusters) (Рис.4)
Мультикомпьютеры (NORMA)
MPP
Clusters
Рис.4 Мультикомпьютерные системы
MPP (Massive Parallel Processing) - класс архитектур параллельных вычислительных систем. Особенность архитектуры состоит в том, что память физически разделена. Система строится из отдельных модулей, содержащих процессор, локальный банк операционной памяти, коммуникационные процессоры или сетевые адаптеры, иногда — жесткие диски и/или другие устройства ввода/вывода. Доступ к банку операционной памяти из данного модуля имеют только процессоры из этого же модуля. Модули соединяются специальными коммуникационными каналами.
Главным преимуществом систем с раздельной памятью является хорошая масштабируемость: в отличие от SMP-систем, в машинах с раздельной памятью каждый процессор имеет доступ только к своей локальной памяти, в связи с чем не возникает необходимости в потактовой синхронизации процессоров. Практически все рекорды по производительности на сегодня устанавливаются на машинах именно такой архитектуры, состоящих из нескольких тысяч процессоров.
Из недостатков можно отметить, что отсутствие общей памяти заметно снижает скорость межпроцессорного обмена, поскольку нет общей среды для хранения данных, предназначенных для обмена между процессорами. Требуется специальная техника программирования для реализации обмена сообщениями между процессорами. Также к минусам можно отнести то, что каждый процессор может использовать только ограниченный объем локального банка памяти. Вследствие указанных архитектурных недостатков требуются значительные усилия для того, чтобы максимально использовать системные ресурсы. Именно этим определяется высокая цена программного обеспечения для массивно-параллельных систем с раздельной памятью.
Кластеры (Сlusters) - группа компьютеров, объединённых высокоскоростными каналами связи и представляющая с точки зрения пользователя единый аппаратный ресурс. Кластерные технологии стали логическим продолжением развития идей, заложенных в архитектуре MPP систем. Если процессорный модуль в MPP системе представляет собой законченную вычислительную систему, то следующий шаг напрашивается сам собой: почему бы в качестве таких вычислительных узлов не использовать обычные серийно выпускаемые компьютеры.
Кластеризация может быть осуществлена на разных уровнях компьютерной системы, включая аппаратное обеспечение, операционные системы, программы-утилиты, системы управления и приложения. Чем больше уровней системы объединены кластерной технологией, тем выше надежность, масштабируемость и управляемость кластера.
Преимущество
кластеризации для повышения
работоспособности становится очевидным
в случае сбоя какого-либо узла: при
этом другой узел кластера может взять
на себя нагрузку неисправного узла, и
пользователи не заметят прерывания
в доступе. Возможности масштабируемости
кластеров позволяют
При создании кластеров можно выделить два подхода. Первый подход применяется при создании небольших кластерных систем. В кластер объединяются полнофункциональные компьютеры, которые продолжают работать и как самостоятельные единицы, например, компьютеры учебного класса или рабочие станции лаборатории. Второй подход применяется в тех случаях, когда целенаправленно создается мощный вычислительный ресурс. Тогда системные блоки компьютеров компактно размещаются в специальных стойках, а для управления системой и для запуска задач выделяется один или несколько полнофункциональных компьютеров, называемых хост-компьютерами. В этом случае нет необходимости снабжать компьютеры вычислительных узлов графическими картами, мониторами, дисковыми накопителями и другим периферийным оборудованием, что значительно удешевляет стоимость системы.
К сожалению, не всегда увеличение числа процессоров обеспечивает рост производительности. Об этом говорит закон Амдала. Он иллюстрирует ограничение роста производительности вычислительной системы с увеличением количества вычислителей.
В идеале решение задач на P процессорах должно выполняться в P раз быстрее, чем на одном процессоре и должно позволить решить задачу с объемами данных в P раз большими. Однако, такое ускорение практически никогда не достигается, что хорошо иллюстрируется законом Амдала:
, где
p – количество вычислителей,
S – ускорение работы программы на p процессорах,
f – доля операций в программе, которые выполняются последовательно.
Иллюстрация:
Таблица показывает, во сколько раз быстрее выполнится программа с долей последовательных вычислений α при использовании p процессоров.
p f |
10 |
100 |
1000 |
0% |
10 |
100 |
1000 |
10% |
5,263 |
9,174 |
9,911 |
25% |
3,077 |
3,883 |
3,988 |
40% |
2,174 |
2,463 |
2,496 |
Из таблицы видно, что только алгоритм, вовсе не содержащий последовательных вычислений (f = 0), позволяет получить линейный прирост производительности с ростом количества вычислителей в системе. Если доля последовательных вычислений в алгоритме равна 25 %, то увеличение числа процессоров до 10 дает ускорение в 3,077 раза, а увеличение числа процессоров до 1000 даст ускорение в 3,988 раза. Отсюда же очевидно, что при доле последовательных вычислений f общий прирост производительности не может превысить 1 / f. Так, если половина кода — последовательная, то общий прирост никогда не превысит двух. Это показано на диаграмме ниже (Рис. 5).
Рис. 5 Диаграмма, иллюстрирующая закон Амдала
Не следует забывать, что распараллеливание программы – это лишь одно из средств ускорения ее работы. Не меньший эффект, а иногда и больший, может дать оптимизация однопроцессорной программы.
Наиболее перспективным и динамичным направлением увеличения скорости решения прикладных задач является широкое внедрение идей параллелизма в работу вычислительных систем. К настоящему времени спроектированы и опробованы сотни различных компьютеров, использующих в своей архитектуре тот или иной вид параллельной обработки данных. Идея распараллеливания вычислений основана на том, что большинство задач может быть разделено на набор меньших задач, которые могут быть решены одновременно. Параллельные вычисления использовались много лет в основном в высокопроизводительных вычислениях, но в последнее время к ним возрос интерес вследствие существования физических ограничений на рост тактовой частоты процессоров. Параллельные вычисления стали доминирующей парадигмой в архитектуре компьютеров, в основном в форме многоядерных процессоров.
Попытки
систематизировать все
Список использованной литературы