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

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

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

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

Файлы: 1 файл

Parallel programming architecture.docx

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

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

2.7 Процессоры со сверхдлинным командным словом

      В суперскалярных процессорах вопрос о параллелизме команд решается аппаратно, аппаратно реализованы и методы снижения потерь быстродействия от разного рода зависимостей. Между суперскалярными процессорами имеется совместимость программ на уровне исполняемых (бинарных) файлов, добавление новых параллельных функциональных узлов может повлиять на выполнение программы только в сторону увеличения скорости ее выполнения. Но у них есть и свои недостатки. Это, прежде всего, сложность аппаратной части, а также ограниченный размер окна выполнения, что уменьшает возможности определения потенциально параллельных команд.

Альтернативой суперскалярным процессорам являются процессоры со сверхдлинным командным словом (VLIW - Very Large Instruction Word). Работа VLIW-процессора основана на выявлении параллелизма команд во время трансляции. Транслятор анализирует программу, определяя, какие операции могут выполняться параллельно. Такие операции "упаковываются" в одну большую команду (рис. 17). После того, как "большая" команда выбрана из памяти, составляющие ее обычные команды выполняются параллельно. В этом случае решается проблема окна выполнения, поскольку транслятор анализирует всю программу в целом в поисках параллельных операций.

Рисунок 17

Схема VLIW-процессора приведена на рис. 18.

      В VLIW-процессорах количество функциональных узлов можно увеличивать, не усложняя остальную аппаратную часть, что  приходится делать в RISC-процессорах.

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

Рисунок 18

      Эффективность использования данной архитектуры  зависит от качества трансляторов.

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

2.8 Векторная обработка данных

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

Векторные команды:

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

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

      Следует заметить, что именно векторные ЭВМ  были первыми высокопроизводительными  компьютерами (векторный компьютер  Сеймора Крэя) и, традиционно, именно ЭВМ с векторной архитектурой назывались суперкомпьютерами.

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

  • из памяти в память — в этом случае операнды извлекаются из оперативной памяти, загружаются в АЛУ и результат возвращается в оперативную память;
  • из регистра в регистр — операнды сначала загружаются в векторные регистры, затем операнд передается в АЛУ и результат возвращается в один из векторных регистров.

      Преимущество  первой схемы заключается в том, что она дает возможность работать с векторами произвольной длины, тогда как во втором случае требуется  разбиение длинных векторов на части, длина которых соответствует  возможностям векторного регистра. С  другой стороны, в первом случае имеется  определенное время запуска, которое должно пройти между инициализацией команды и появлением в конвейере первого результата. Если конвейер уже загружен, результат на его выходе будет появляться в каждом такте. Примером ЭВМ с такой архитектурой являются компьютеры серии CYBER 200, время запуска у которых составляло до 100 тактов. Это очень большая величина, даже при работе с векторами длиной 100 элементов, вышеупомянутые компьютеры достигали лишь половины от своей максимально возможной производительности.

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

      Мультимедийные  приложения обычно работают с большими массивами данных, состоящими из коротких (8- или 16-разрядных) значений с фиксированной  точкой. Такие приложения представляют огромный потенциал векторного (SIMD) параллелизма, поэтому новые поколения  микропроцессоров общего назначения снабжаются мультимедийными командами. Мультимедийные расширения включены в системы команд процессоров Intel (MMX-расширение системы команд Pentium и новые SIMD-команды Pentium III), AMD (3D Now!), Sun (VIS SPARC), Compaq (Alpha MVI), Hewlett Packard (PA-RISC MAX2), SGI (MDMX), Motorola (PowerPC AltiVec). 

2.9 Статические топологии

      Соединение  с помощью одиночной шины является самым простым и дешевым (рис. 19). Основной его недостаток заключается  в том, что в каждый момент времени  возможна только одна пересылка данных/команд. Пропускная способность обратно  пропорциональна количеству процессоров, подключенных к шине. Такой способ соединения хорош только для систем, содержащих не более 10 процессоров.

Рисунок 19

      Стандарт IEEE P896 для высокопроизводительной шины, который получил название Scalable Coherent Interface (SCI — масштабируемый когерентный интерфейс), позволяет отчасти решить проблему сравнительно низкой скорости работы шины, но данное устройство имеет более сложную организацию, чем простая шина. Такая шина применялась в системе HP/Convex SPP-2000.

      Более эффективным является другой способ соединения — одномерная решетка. У  каждого элемента в этом случае есть две связи с соседями, а граничные  элементы имеют по одной связи (рис. 20). Если замкнуть концы одномерной решетки, получим топологию "кольцо".

Рисунок 20

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

Рисунок 21

В топологии "звезда" есть один центральный  узел, с которым соединяются все  остальные процессорные элементы. Таким  образом, у каждого ПЭ имеется  одно соединение, а у центрального ПЭ — N— I соединение (рис. 22).

Рисунок 22

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

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

Рисунок 23.

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

Рисунок 24

      Для адресации узлов в гиперкубе  каждому узлу присваивается свой идентификационный номер, при этом двоичные представления идентификационных  номеров соседних узлов отличаются одним разрядом. Алгоритм пересылки  сообщения от одного узла к другому  в этом случае достаточно простой  и основан на побитовом сравнении  двоичных представлений идентификационных  номеров текущего узла и адресата. Например, в 4-мерном гиперкубе связаны ПЭ с номерами 1 (0001), 2 (0010), 4 (0100) и 8 (1000). Такая нумерация узлов называется схемой кода Грея. 
 

2.10 Динамические топологии

      Основным  представителем этого класса является перекрестное соединение (рис. 25).

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

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

Рисунок 25 

2.11 Кластеры рабочих станций

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

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