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

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

Мультипроцессор, как и все компьютеры, должен содержать  устройства ввода-вывода (диски, сетевые  адаптеры и т. п.). В одних мультипроцессорных системах только определенные процессоры имеют доступ к устройствам ввода-вывода и, следовательно, имеют специальную  функцию ввода-вывода. В других мультипроцессорных системах каждый процессор имеет доступ к любому устройству ввода-вывода. Если все процессоры имеют равный доступ ко всем модулям памяти и всем устройствам ввода-вывода и каждый процессор взаимозаменим с другими процессорами, то такая система называется SMP (Symmetric Multiprocessor — симметричный мультипроцессор). Ниже мы будем говорить именно о таком типе систем.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9. Мультикомпьютеры с передачей сообщений

 

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

Однако  мультипроцессоры имеют и некоторые  недостатки, поэтому мультикомпьютеры тоже очень важны. Во-первых, мультипроцессоры нельзя расширить до больших размеров. Чтобы расширить машину Interprise 10000 до 64 процессоров, пришлось добавить огромное количество аппаратного обеспечения.

В Sequent NUMA-Q дошли до 256 процессоров, но ценой неодинакового времени доступа к памяти. Ниже мы рассмотрим два мультикомпьютера, которые содержат 2048 и 9152 процессора соответственно. Через много лет кто-нибудь сконструирует мультипроцессор, содержащий 9000 узлов, но к тому времени мультикомпьютеры будут содержать уже 100 000 узлов.

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

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

Каждый  узел в мультикомпьютере состоит  из одного или нескольких процессоров, ОЗУ (общее для процессоров только данного узла), диска и(или) других устройств ввода-вывода, а также  процессора передачи данных. Процессоры передачи данных связаны между собой  по высокоскоростной коммуникационной сети (см. раздел «Сети межсоединений»). Используется множество различных  топологий, схем коммутации и алгоритмов выбора маршрута. Все мультикомпьютеры сходны в одном: когда программа  выполняет примитив send, процессор передачи данных получает уведомление и передает блок данных в целевую машину (возможно, после предварительного запроса и получения разрешения). Схема мультикомпьютера показана на рис. 8.

Рис. 8. Схема мультикомпьютера

 

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

 

10. Связное программное обеспечение для мультикомпьютеров

 

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

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

В большинстве  систем с передачей сообщений  имеется два примитива send и recei ve, но возможны и другие типы семантики. Ниже даны три основных варианта:

1. Синхронная передача сообщений.

2. Буферная передача сообщений.

3. Неблокируемая передача сообщений.

Синхронная передача сообщений. Если отправитель выполняет операцию send, а получатель еще не выполнил операцию recei ve, то отправитель блокируется до тех пор, пока получатель не выполнит операцию receive, а в это время сообщение копируется. Когда к отправителю возвращается управление, он уже знает, что сообщение было отправлено и получено. Этот метод имеет простую семантику и не требует буферизации. Но у него есть большой недостаток: отправитель блокируется до тех пор, пока получатель не примет и не подтвердит прием сообщения.

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

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

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

РVM (Parallel Virtual Machine — виртуальная машина параллельного действия) — это система с передачей сообщений, изначально разработанная для машин COW с операционной системой UNIX. Позднее она стала применяться в других машинах, в том числе в системах МРР. Это самодостаточная система с управлением процессами и системой ввода-вывода.

MPI (Message-Passing Interface — интерфейс с передачей сообщений. MPI гораздо сложнее, чем PVM.

  Оба пакета поддерживают библиотечные вызовы для отправки и получения сообщений. Оба работают поверх существующих операционных систем. 

Заключение

 

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

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

Мультипроцессоры  можно разделить на системы МРР  и COW, хотя граница между ними произвольна. К системам МРР относятся Cray ТЗЕ и Intel/Sandia Option Red. В них используются запатентованные высокоскоростные сети межсоединений. Системы COW, напротив, строятся из таких стандартных деталей, как Ethernet, ATM и Myrinet.

Мультикомпьютеры  часто программируются с использованием пакета с передачей сообщений (например, PVM или MPI). Оба пакета поддерживают библиотечные вызовы для отправки и получения сообщений. Оба работают поверх существующих операционных систем.

Альтернативный  подход — использование памяти совместного  использования на прикладном уровне (например, система DSM со страничной организацией, пространство кортежей в системе Linda, объекты в системах Огса и Globe). Система DSM моделирует совместно используемую память на уровне страниц, и в этом она сходна с машиной NUMA. Системы Linda, Orca и Globe создают иллюзию совместно используемой памяти с помощью кортежей, локальных объектов и глобальных объектов соответственно.

 

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

 

  1. ГУК М. Аппаратные средства IBM PC. Энциклопедия. — СПб.: «Питер», 2000. — 816 с: илл.
  2. МУРАХОВСКИЙ В. И., ЕВСЕЕВ Г. А. Железо ПК - 2002. Практическое руководство. — Москва: «ДЕСС КОМ», 2002. — 672 с: илл.
  3. Мураховский В.И. Устройство компьютера – Москва ,2003
  4. ТАНЕНБАУМ Э. Архитектура компьютера. — СПб.: «Питер», 2002. — 848 с илл.
  5. AMDNow.ru
  6. PCGuide.com
  7. X-bitLabs.com

 

Размещено на http://www.allbest.ru/

 

 


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