Архитектура параллельных вычислений

Автор: Пользователь скрыл имя, 15 Сентября 2011 в 17:02, курсовая работа

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

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

Файлы: 1 файл

Parallel programming architecture.docx

— 1.07 Мб (Скачать)

      Другой  пример SIMD-компьютера — матричные процессоры (Array Processor). В качестве примера можно привести вычислительную систему Thinking Machines CM-2, где 65 536 ПЭ связаны между собой сетью коммуникаций с топологией "гиперкуб". Часто компьютеры с SIMD-архитектурой специализированы для решения конкретных задач, допускающих матричное представление. Это, например, могут быть задачи обработки изображений, где каждый модуль обработки данных работает на получение одного элемента конечного результата.

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

Рисунок 12

      MIMD-компьютеры. Этот класс архитектур (рис. 13 и 14) наиболее богат примерами успешных реализаций. В него попадают симметричные параллельные вычислительные системы, рабочие станции с несколькими процессорами, кластеры рабочих станций и т. д. Довольно давно появились компьютеры с несколькими независимыми процессорами, но вначале на них был реализован только принцип параллельного исполнения заданий, т. е. на разных процессорах одновременно выполнялись независимые программы. Разработке первых компьютеров для параллельных вычислений были посвящены проекты под условным названием СМ* и С.ММР в университете Карнеги (США). Технической базой для этих проектов были процессоры DEC PDP-11. В начале 90-х годов прошлого века именно MIMD-компьютеры вышли в лидеры на рынке высокопроизводительных вычислительных систем.

Рисунок 13

Рисунок 14

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

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

2.2 Основные типы архитектур высокопроизводительных вычислительных систем

SIMD-архитектуры  с разделяемой  памятью

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

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

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

SIMD-машины  с распределенной  памятью

      SIMD-машины  с распределенной памятью называют  также матричными процессорами. В системах с такой архитектурой все процессоры в один и тот же момент времени выполняют одну команду. Имеется управляющий процессор, который передает команды процессорам массива. Обычно есть и "фронтальный" (front-end) процессор, которому отводится функция связи с пользователями, а также выполнение тех операций, которые не могут быть выполнены массивом процессоров (например, операции ввода/вывода). Коммуникационная сеть в таких системах имеет топологию двумерной решетки или, по крайней мере, включает ее в качестве составной части подсистем коммуникации. С помощью логических условий некоторые процессоры можно исключать из процесса обработки данных, переводя их в режим ожидания.

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

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

MIMD-машины  с разделяемой  памятью

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

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

MIMD-машины  с распределенной  памятью

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

      Значительным  преимуществом систем данного класса является отсутствие проблемы ограниченной скорости обмена данными и хорошая масштабируемость. Не так остро стоит и проблема согласования скорости работы процессора и памяти.

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

      У "толстого дерева" пропускная способность  у "корня" выше, чем у "листьев".

      Достаточно  часто используются коммуникационные матрицы, однокаскад-ные для систем с небольшим числом процессоров (порядка 64) и многокаскадные для систем с большим числом процессоров.

      Процессоры  используются любые, обычно это RISC-процессоры и векторные процессоры. Часто  применяется также специальный  коммуникационный процессор.

Рисунок 15 

2.3 Основные элементы архитектуры высокопроизводительных вычислительных систем

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

      Другие  методы повышения быстродействия основаны на расширениях традиционной фон-неймановской архитектуры, включающих:

  • конвейерную обработку данных и команд;
  • использование процессоров с сокращенным набором команд (RISC-процессоров). В RISC-процессорах большая часть команд выполняется за 1—2 такта;
  • использование суперскалярных процессоров;
  • векторную обработку данных;
  • использование процессоров со сверхдлинным командным словом;
  • использование многопроцессорных конфигураций.

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

      Наиболее  перспективным классом высокопроизводительных систем являются многопроцессорные  системы. В организации многопроцессорных  вычислительных систем следует выделить следующие ключевые моменты:

  • количество и архитектура индивидуальных процессоров;
  • структура и организация доступа к оперативной памяти;
  • топология коммуникационной сети и ее быстродействие;
  • работа с устройствами ввода/вывода.

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

2.4 Конвейеры

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

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