Архитектура компьютеров параллельного действия

Автор: Пользователь скрыл имя, 15 Мая 2013 в 14:46, курсовая работа

Краткое описание

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

Оглавление

Ведение
1. Вопросы разработки компьютеров параллельного действия 5
2. Информационные модели 9
2.1 Мультипроцессоры 9
2.2 Мультикомпьютеры 10
2.3 Сети межсоединений 15
2.4 Коммутация 17
2.5 Алгоритмы выбора маршрута 18
3. Производительность компьютеров параллельного действия 21
4. Метрика аппаратного обеспечения 22
5. Метрика программного обеспечения 23
6. Программное обеспечение 25
7. Классификацию компьютеров параллельного действия 27
8. Компьютеры SIMD 29
8.1 Массивно-параллельные процессоры 29
8.2 Мультипроцессоры с памятью совместного использования 31
9. Мультикомпьютеры с передачй сообщений 33
10. Связное программное обеспечение для мультикомпьютеров 35
Заключение
Библиографический список

Файлы: 1 файл

Архитектура компьютеров параллельного действия.docx

— 201.56 Кб (Скачать)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4. Метрика аппаратного обеспечения

 

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

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

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

 

 

 

 

 

 

 

 

5. Метрика программного обеспечения

 

Метрика аппаратного обеспечения показывает, на что способно аппаратное обеспечение. Но пользователей интересует совсем другое. Они хотят знать, насколько  быстрее будут работать их программы  на компьютере параллельного действия по сравнению с однопроцессорным компьютером. Для них ключевым показателем  является коэффициент ускорения: насколько  быстрее работает программа в п-процессорной системе по сравнению с 1-процессорной системой. Результаты обычно иллюстрируются графиком (рис. 6.). Здесь мы видим несколько разных параллельных программ, которые работают на мультикомпьютере, состоящем из 64 процессоров Pentium Pro. Каждая кривая показывает повышение скорости работы одной программы с к процессорами как функцию от к. Идеальное повышение скорости показано пунктирной линией, где использование к процессоров заставляет программу работать в к раз быстрее для любого к. Лишь немногие программы достигают совершенного повышения скорости, но есть достаточное число программ, которые приближаются к идеалу. Скорость работы N-объектной задачи с добавлением новых процессоров увеличивается очень стремительно; авари (африканская игра) ускоряется вполне сносно; но инвертирование матрицы нельзя ускорить более чем в пять раз, сколько бы процессоров мы не использовали.

 

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

 

Закон Амдала — это только одна причина, по которой  невозможно идеальное повышение  скорости. Определенную роль в этом играет и время ожидания в коммуникациях, и ограниченная пропускная способность, и недостатки алгоритмов. Даже если мы имели бы в наличии 1000 процессоров, не все программы можно написать так, чтобы использовать такое большое  число процессоров, а непроизводительные издержки для запуска их всех могут  быть очень значительными. Кроме  того, многие известные алгоритмы  трудно подвергнуть параллельной обработке, поэтому в данном случае приходится использовать субоптимальный алгоритм. Для многих прикладных задач желательно заставить программу работать в n раз быстрее, даже если для этого потребуется 2n процессоров. В конце концов, процессоры не такие уж и дорогие.

 

 

 

 

 

6. Программное обеспечение

 

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

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

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

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

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

1. Модели управления.

2. Степень распараллеливания процессов.

3. Вычислительные парадигмы.

4. Методы коммуникации.

5. Базисные элементы синхронизации.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

7. Классификация компьютеров параллельного действия

 

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

Таблица 1. Классификация компьютеров параллельного действия, разработанная Флинном

Потоки команд

Потоки данных

Названия

Примеры

1

1

SISD

Классическая машина фон Неймана

1

Много

SIMD

Векторный суперкомпьютер, массивно-параллельный процессор

Много

1

MISD

Не существует

Много

Много

MIMD

Мультипроцессор, мультикомпьютер


 

В основе классификации лежат два понятия: потоки команд и потоки данных. Поток  команд соответствует счетчику команд. Система с п процессорами имеет  п счетчиков команд и, следовательно, п потоков команд.

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

Потоки  команд и данных в какой-то степени  независимы, поэтому существует 4 комбинации (см. табл. 1). SISD (Single Instruction stream Single Data stream — один поток команд, один поток данных) — это классический последовательный компьютер фон Неймана. Он содержит один поток команд и один поток данных и может выполнять только одно действие одномоментно. Машины SIMD (Single Instruction stream Multiple Data stream — один поток команд, несколько потоков данных) содержат один блок управления, выдающий по одной команде, но при этом есть несколько АЛУ, которые могут обрабатывать несколько наборов данных одновременно. ILLIAC IV — прототип машин SIMD. Существуют и современные машины SIMD. Они применяются для научных вычислений.

Машины  MISD (Multiple Instruction stream Single Data stream — несколько потоков команд, один поток данных) — несколько странная категория. Здесь несколько команд оперируют одним набором данных. Трудно сказать, существуют ли такие машины. Однако некоторые считают машинами MISD машины с конвейерами.

Последняя категория — машины MIMD (Multiple Instruction stream Multiple Data stream — несколько потоков команд, несколько потоков данных). Здесь несколько независимых процессоров работают как часть большой системы. В эту категорию попадает большинство параллельных процессоров. И мультипроцессоры, и мультикомпьютеры — это машины MIMD.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8. Компьютеры SIMD

 

Компьютеры  SIMD (Single Instruction Stream Multiple Data Stream — один поток команд, несколько потоков данных) используются для решения научных и технических задач с векторами и массивами. Такая машина содержит один блок управления, который выполняет команды по одной, но каждая команда оперирует несколькими элементами данных. Два основных типа компьютеров SIMD — это массивно-параллельные процессоры (array processors) и векторные процессоры (vector processors). Рассмотрим каждый из этих типов по отдельности.

 

8.1. Массивно-параллельные процессоры

 

Идея  массивно-параллельных процессоров  была впервые предложена более 40 лет  назад. Однако прошло еще около 10 лет, прежде чем такой процессор (ILLIACIV) был построен для NASA. С тех пор другие компании создали несколько коммерческих массивно-параллельных процессоров, в том числе СМ-2 и Maspar MP-2, но ни один из них не пользовался популярностью на компьютерном рынке.

 

Рис.7. Массивно-параллельный процессор 1ШАС IV

 

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

Хотя  все массивно-параллельные процессоры соответствуют этой общей модели, они могут отличаться друг от друга  в некоторых моментах. Первый вопрос — это структура обрабатывающего  элемента. Она может быть различной  — от чрезвычайно простой до чрезвычайно  сложной. Самые простые обрабатывающие элементы — 1-битные АЛУ (как в СМ-2). В такой машине каждый АЛУ получает два 1-битных операнда из своей локальной  памяти плюс бит из слова состояния  программы (например, бит переноса). Результат операции — 1 бит данных и несколько флаговых битов. Чтобы  совершить сложение двух целых 32-битных чисел, блоку управления нужно транслировать  команду 1-битного сложения 32 раза. Если на одну команду затрачивается 600 не, то для сложения целых чисел потребуется 19,2 мке, то есть получается медленнее, чем в первоначальной IBM PC. Но при наличии 65 536 обрабатывающих элементов можно получить более трех миллиардов сложений в секунду при времени сложения 300 пикосекунд.

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

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

Третий  вопрос — какую локальную автономию  имеют обрабатывающие элементы. Блок управления сообщает, какую команду  нужно выполнить, но во многих массивно-параллельных процессорах каждый обрабатывающий элемент может выбирать на основе некоторых локальных данных (например, на основе битов кода условия), выполнять  ему эту команду или нет. Эта  особенность придает процессору значительную гибкость.

 

8.2 Мультипроцессоры с памятью совместного использования

 

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

Информация о работе Архитектура компьютеров параллельного действия