Автор: Пользователь скрыл имя, 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
Заключение
Библиографический список
4. Метрика аппаратного обеспечения
В аппаратном обеспечении наибольший интерес представляет скорость работы процессоров, устройств ввода-вывода и сети. Скорость работы процессоров и устройств ввода-вывода такая же, как и в однопроцессорной машине, поэтому ключевыми параметрами в параллельной системе являются те, которые связаны с межсоединением. Здесь есть два ключевых момента: время ожидания и пропускная способность. Мы рассмотрим их по очереди.
Полное время ожидания — это время, которое требуется на то, чтобы процессор отправил пакет и получил ответ. Если пакет посылается в память, то время ожидания — это время, которое требуется на чтение и запись слова или блока слов. Если пакет посылается другому процессору, то время ожидания — это время, которое требуется на межпроцессорную связь для пакетов данного размера. Обычно интерес представляет время ожидания для пакетов минимального размера (как правило, для одного слова или небольшой строки кэш-памяти).
Следующая характеристика аппаратного обеспечения — пропускная способность. Многие программы параллельной обработки, особенно в естественных науках, перемещают огромное количество данных, поэтому число байтов, которое система способна перемещать в секунду, имеет очень большое значение для производительности.
5. Метрика программного обеспечения
Метрика
аппаратного обеспечения
Рис. 6. На практике программы не могут достичь идеального повышения скорости. Идеальный коэффициент ускорения показан пунктирной линией
Закон Амдала — это только одна причина, по которой невозможно идеальное повышение скорости. Определенную роль в этом играет и время ожидания в коммуникациях, и ограниченная пропускная способность, и недостатки алгоритмов. Даже если мы имели бы в наличии 1000 процессоров, не все программы можно написать так, чтобы использовать такое большое число процессоров, а непроизводительные издержки для запуска их всех могут быть очень значительными. Кроме того, многие известные алгоритмы трудно подвергнуть параллельной обработке, поэтому в данном случае приходится использовать субоптимальный алгоритм. Для многих прикладных задач желательно заставить программу работать в n раз быстрее, даже если для этого потребуется 2n процессоров. В конце концов, процессоры не такие уж и дорогие.
6. Программное обеспечение
Без программного
обеспечения с параллельной обработкой
параллельное аппаратное обеспечение
не принесет никакой пользы, поэтому
хорошие разработчики аппаратного
обеспечения должны учитывать особенности
программного обеспечения. Существует
4 подхода к разработке программного
обеспечения для параллельных компьютеров.
Первый подход — добавление специальных
библиотек численного анализа к
обычным последовательным языкам. Например,
библиотечная процедура для инвертирования
большой матрицы или для
Второй
подход — добавление специальных
библиотек, содержащих примитивы коммуникации
и управления. Здесь программист
сам создает процесс
Следующий
шаг — добавление нескольких специальных
конструкций к существующим языкам
программирования, позволяющих, например,
легко порождать новые
Четвертый
подход — ввести совершенно новый
язык специально для параллельной обработки.
Очевидное преимущество такого языка
— он очень хорошо подходит для
параллельного
Существует
очень много библиотек, расширений
языков и новых языков, изобретенных
специально для параллельного
1. Модели управления.
2. Степень распараллеливания процессов.
3. Вычислительные парадигмы.
4. Методы коммуникации.
5. Базисные элементы синхронизации.
7. Классификация компьютеров параллельного действия
К сожалению,
хорошей классификации
Таблица 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. Каждый обрабатывающий элемент состоит из процессора или усовершенствованного АЛУ и, как правило, локальной памяти.
Хотя
все массивно-параллельные процессоры
соответствуют этой общей модели,
они могут отличаться друг от друга
в некоторых моментах. Первый вопрос
— это структура
Обрабатывающим
элементом может быть 8-битное АЛУ,
32-битное АЛУ или более мощное
устройство, способное выполнять
операции с плавающей точкой. В
какой-то степени выбор типа обрабатывающего
элемента зависит от типа целей машины.
Операции с плавающей точкой могут
потребоваться для сложных
Второй
вопрос — как связываются
Третий вопрос — какую локальную автономию имеют обрабатывающие элементы. Блок управления сообщает, какую команду нужно выполнить, но во многих массивно-параллельных процессорах каждый обрабатывающий элемент может выбирать на основе некоторых локальных данных (например, на основе битов кода условия), выполнять ему эту команду или нет. Эта особенность придает процессору значительную гибкость.
8.2 Мультипроцессоры с памятью совместного использования
Как показано на рис. 7, системы MIMD можно разделить на мультипроцессоры и мультикомпьютеры. В этой главе мы рассмотрим мультипроцессоры, а в следующем — мультикомпьютеры. Мультипроцессор — это компьютерная система, которая содержит несколько процессоров и одно адресное пространство, видимое для всех процессоров. Он запускает одну копию операционной системы с одним набором таблиц, в том числе таблицами, которые следят, какие страницы памяти заняты, а какие свободны. Когда процесс блокируется, его процессор сохраняет свое состояние в таблицах операционной системы, а затем просматривает эти таблицы для нахождения другого процесса, который нужно запустить. Именно наличие одного отображения и отличает мультипроцессор от мультикомпьютера.
Информация о работе Архитектура компьютеров параллельного действия