Автор: Пользователь скрыл имя, 15 Сентября 2011 в 17:02, курсовая работа
Данная работа состоит из трех взаимосвязанных тематических разделов.
Первый из них содержит информацию о математическом обеспечении параллельных вычислительных систем, о способах приема, обработки, хранения информации, о функционировании элементов высокопроизводительных систем.
Второй раздел работы посвящен аппаратной части параллельных вычислений. В этой части содержится информация о технологиях параллельных вычислений, классификации процессоров, принципах работы высокопроизводительных систем.
Третий раздел включает в себя информацию, касающуюся практического использования ресурсов и возможностей параллельных вычислительных систем в решении задач из разных областей науки и техники. Также здесь приводятся примеры нескольких вычислительных алгоритмов.
Другой пример 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-архитектуры с
2.2 Основные типы архитектур высокопроизводительных вычислительных систем
SIMD-архитектуры с разделяемой памятью
SIMD-архитектуры
с разделяемой памятью
Современные векторные процессоры используют векторные регистры, а не прямое обращение к памяти. Разница в быстродействии небольшая, но векторные регистры обеспечивают большую гибкость программирования. Если отношение числа арифметических операций к числу операций обращения к памяти мало, потери производительности будут большими, вследствие относительно низкой скорости обмена с памятью. Бороться с потерями такого рода можно, наращивая пропускную способность каналов доступа к памяти, но это сравнительно дорогой способ, поэтому обычно используются другие, компромиссные способы.
Устройство
векторных узлов может
SIMD-машины с распределенной памятью
SIMD-машины
с распределенной памятью
Одной из проблем, связанных с работой систем с распределенной памятью, является обработка ситуаций, когда данные, необходимые для продолжения работы определенного процессора, находятся в локальной памяти другого процессора. Выборка необходимых операндов и их пересылка по сети требует значительного времени, поэтому SIMD-машины с распределенной памятью часто специализированы для решения вполне определенных задач -в этом случае можно добиться наиболее полного использования присущего задаче параллелизма. Имеются специализированные системы для расчетов методом Монте-Карло (таких, где не требуется большой обмен данными между процессорами), обработки изображений и сигналов и т. д.
Управляющий
процессор в рассматриваемых
системах должен не только формировать
поток команд и направлять его
процессорам массива, но и решать,
какие операции следует "поручить"
фронтальному процессору и связанными
с ним периферийными
MIMD-машины с разделяемой памятью
Основной проблемой в вычислительных системах такого рода является связь процессоров между собой и с памятью. С увеличением числа процессоров суммарная пропускная способность каналов доступа к памяти в идеале должна расти линейно с ростом числа процессоров, а коммуникации между процессорами должны быть, по возможности, прямыми, минуя медленный промежуточный этап обращения к оперативной памяти. Обеспечить полную связь сложно, поскольку число коммуникаций растет пропорционально второй степени числа процессоров.
Тип
соединения важен и для синхронизации
выполнения задач на разных процессорах.
Большинство векторных
MIMD-машины с распределенной памятью
Это наиболее быстро растущий класс высокопроизводительных компьютеров. Программирование для таких систем сложнее, чем для MIMD-машин с разделяемой памятью. В матричных процессорах основной структурой данных являются массивы, которые хорошо отображаются на структуру машины. В этом случае распределение данных является "прозрачным" для программиста и в значительной степени автоматизировано системным программным обеспечением. В системах с распределенной памятью, напротив, программист сам должен позаботиться о распределении данных между процессорами и обмене данными между ними. Решение проблемы декомпозиции данных и задачи, разработка эффективного параллельного алгоритма часто оказываются непростым делом.
Значительным преимуществом систем данного класса является отсутствие проблемы ограниченной скорости обмена данными и хорошая масштабируемость. Не так остро стоит и проблема согласования скорости работы процессора и памяти.
В MIMD-машинах с распределенной памятью часто используется топология "гиперкуб". Теоретически, в сетях с топологией гиперкуба можно имитировать другие топологии, такие как "дерево", "кольцо", "решетка" и др. Другой эффективной топологией соединения является "толстое дерево". Простое дерево имеет тот. существенный недостаток, что вблизи его "корня", где пропускная способность относительно невелика, увеличивается концентрация циркулирующих сообщений. В топологии "толстое дерево" используется дублирование связей с высокими уровнями дерева. Пример такой структуры приведен на рис. 15.
У "толстого дерева" пропускная способность у "корня" выше, чем у "листьев".
Достаточно часто используются коммуникационные матрицы, однокаскад-ные для систем с небольшим числом процессоров (порядка 64) и многокаскадные для систем с большим числом процессоров.
Процессоры используются любые, обычно это RISC-процессоры и векторные процессоры. Часто применяется также специальный коммуникационный процессор.
Рисунок
15
2.3 Основные элементы архитектуры высокопроизводительных вычислительных систем
Архитектура
традиционных последовательных компьютеров
основана на идеях Джона фон Неймана
и включает в себя центральный
процессор, оперативную память и
устройства ввода/вывода. Последовательность
команд применяется к
Другие методы повышения быстродействия основаны на расширениях традиционной фон-неймановской архитектуры, включающих:
В
этом разделе мы кратко рассмотрим
реализацию этих расширений, а также
методы и типы межпроцессорных коммуникаций,
особенности организации
Наиболее
перспективным классом
Важнейшей
характеристикой
2.4 Конвейеры
Идея конвейера состоит в том, чтобы сложную операцию разбить на несколько более простых, таких, которые могут выполняться одновременно. Операция суммирования, например, включает вычитание порядков, выравнивание порядков, сложение мантисс и нормализацию. Каждая из подопераций может выполняться на отдельном блоке аппаратуры. При движении объектов по конвейеру одновременно на разных его участках (сегментах) выполняются различные подоперации, что дает увеличение производительности за счет использования параллелизма на уровне команд. При достижении объектом конца конвейера он окажется полностью обработанным. Конвейеры применяются как при обработке команд (конвейеры команд), так и в арифметических операциях (конвейеры данных). Поскольку использование конвейерной обработки усложняет конструкцию процессора, эффективным конвейер данных может быть при выполнении векторных операций. Операция над одним элементом данных в конвейере будет выполняться дольше, чем в обычном АЛУ.