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

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

МБОУ ВПО "Чувашский государственный  педагогический университет им. И. Я. Яковлева

 

 

Кафедра информатики и вычислительной техники

 

 

 

Курсовая  работа на тему:

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

 

 

 

 

 

 

 

                                                                Выполнила: студентка ФМФ гр. ФиИ-5  

                                                        Куваева Ксения Валерьевна 

                                                        Проверил:

 

 

 

 

 

 

 

 

 

 

Чебоксары 2012 г.

СОДЕРЖАНИЕ

компьютер параллельный коммутация маршрут

Ведение

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

Заключение

Библиографический список

 

 

 

 

 

 

 

 

 

 

Введение

 

Скорость  работы компьютеров становится все  выше, но и требования, предъявляемые  к ним, тоже постоянно растут. Астрономы  хотят воспроизвести всю историю  Вселенной с момента большого взрыва до самого конца. Фармацевты хотели бы разрабатывать новые лекарственные  препараты для конкретных заболеваний  с помощью компьютеров, не принося  в жертву целые легионы крыс. Разработчики летательных аппаратов могли  бы прийти к более эффективным  результатам, если бы всю работу за них выполняли компьютеры, и тогда  им не нужно было бы конструировать аэродинамическую трубу. Если говорить коротко, насколько бы мощными ни были компьютеры, этого никогда не хватает для решения многих задач (особенно научных, технических и  промышленных).

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

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

Параллелизм можно вводить на разных уровнях. На уровне команд, например, можно использовать конвейеры и суперскалярную архитектуру, что позволяет увеличивать производительность примерно в 10 раз. Чтобы увеличить  производительность в 100, 1000 или 1000000 раз, нужно продублировать процессор или, по крайней мере, какие-либо его части и заставить все эти процессоры работать вместе.

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

 

1. Вопросы разработки компьютеров параллельного действия

 

Когда мы сталкиваемся с новой компьютерной системой параллельного действия, возникает  три вопроса:

1. Каков  тип, размер и количество процессорных  элементов?

2. Каков  тип, размер и количество модулей  памяти?

3. Как  взаимодействуют элементы памяти  и процессорные элементы?

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

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

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

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

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

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

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

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

 

2. Информационные модели

 

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

 

2.1 Мультипроцессоры

 

В первой разработке все процессоры разделяют  общую физическую память, как показано на рис. 1, а. Такая система называется мультипроцессором или системой с совместно используемой памятью.

Мультипроцессорная  модель распространяется на программное  обеспечение. Все процессы, работающие вместе на мультипроцессоре, могут  разделять одно виртуальное адресное пространство, отображенное в общую  память. Любой процесс может считывать  слово из памяти или записывать слово  в память с помощью команд LOAD и STORE. Больше ничего не требуется. Два процесса могут обмениваться информацией, если один из них будет просто записывать данные в память, а другой "будет считывать эти данные.

Благодаря такой возможности взаимодействия двух и более процессов мультипроцессоры весьма популярны. Данная модель понятна  программистам и приложима к  широкому кругу задач.

В качестве примеров мультипроцессоров можно  назвать Sun Enterprise 10000, Sequent NUMA-Q, SGI Origin 2000 и HP/Convex Exemplar.

 

Рис. 1. Мультипроцессор, содержащий 16 процессоров, которые разделяют  общую память (а); изображение, разбитое на 16 секций, каждую из которых анализирует  отдельный процессор (б)

 

 

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

 

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

Поскольку процессоры в мультикомпьютере не могут  взаимодействовать друг с другом просто путем чтения из общей памяти и записи в общую память, здесь  необходим другой механизм взаимодействия. Они посылают друг другу сообщения, используя сеть межсоединений. В качестве примеров мультикомпьютеров можно назвать IBM SP/2, Intel/Sandia Option Red и Wisconsin COW.

 

Рис. 2. Мультикомпьютер, содержащий 16 процессоров, каждый из которых имеет  свою собственную память (а); битовое  отображение рис. 8.1, разделенное  между 16 участками памяти (б)

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