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

Автор: Пользователь скрыл имя, 13 Ноября 2011 в 18:59, курсовая работа

Описание работы

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

Работа содержит 1 файл

Parallel programming architecture.docx

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

      В настоящее время вычислительные системы с 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 Кластеры рабочих станций

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

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