Параллельная обработка данных

Автор работы: Пользователь скрыл имя, 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

Вложенные файлы: 1 файл

Параллельная обработка данных.docx

— 264.37 Кб (Скачать файл)

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

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

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

 

NUMA (Non-Uniform Memory Access) - это архитектура с неоднородным доступом к памяти.

Гибридная архитектура воплощает в себе удобства систем с общей памятью  и относительную дешевизну систем с раздельной памятью. Суть этой архитектуры - в особой организации памяти, а  именно: память является физически  распределенной по различным частям системы, но логически разделяемой, так что пользователь видит единое адресное пространство. Система состоит  из однородных базовых модулей (плат), состоящих из небольшого числа процессоров  и блока памяти. Модули объединены с помощью высокоскоростного коммутатора. Поддерживается единое адресное пространство, аппаратно поддерживается доступ к удаленной памяти, т.е. к памяти других модулей. При этом доступ к локальной памяти осуществляется в несколько раз быстрее, чем к удаленной. По существу архитектура NUMA является MPP (массивно-параллельная архитектура) архитектурой, где в качестве отдельных вычислительных элементов берутся SMP ( cсимметричная многопроцессорная архитектура) узлы. 

 

3.2. Мультикомпьютеры

Мультикомпьютеры - вычислительная система без общей памяти, состоящая из большого числа взаимосвязанных компьютеров, у каждого из которых имеется собственная память. Мультикомпьютеры (многопроцессорные системы с распределенной памятью) уже не обеспечивают общего доступа ко всей имеющейся в системах памяти (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 системе представляет собой законченную вычислительную систему, то следующий шаг напрашивается сам собой: почему бы в качестве таких вычислительных узлов не использовать обычные серийно выпускаемые компьютеры.

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

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

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

Глава 4. Закон Амдала

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

В идеале решение задач на 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 Диаграмма, иллюстрирующая закон Амдала

 

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

Заключение

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

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

 

 

Список использованной литературы

 

    1. В.Л.Бройдо, «Вычислительные системы, сети и телекоммуникации», Учебник для ВУЗов. – Спб: Питер, 2006.
    2. http://sci.informika.ru/text/teach/topolog/index.htm
    3. http://rsusu1.rnd.runnet.ru/tutor/method/index.html
    4. http://www.intuit.ru/department/calculate/paralltp/1/

 

 

 

 

 


Информация о работе Параллельная обработка данных