Автор работы: Пользователь скрыл имя, 25 Марта 2012 в 17:19, курсовая работа
Идея параллельной обработки данных не нова. Можно считать, что она возникла еще на заре человеческой цивилизации, когда оказалось, что племя может успешно бороться за выживание, если каждый его член выполняет свою часть общей работы.
В ближайшее время под эффективным использованием аппаратных средств компьютера будут пониматься применение параллельных алгоритмов. Это связано с замедлением темпов роста тактовой частоты микропроцессоров и быстрым распространением многоядерных микропроцессоров.
В векторных компьютерах, работающих по схеме регистр-регистр, длина вектора гораздо меньше. Для компьютеров серии 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). Основной его недостаток
заключается в том, что в каждый
момент времени возможна только одна
пересылка данных/команд. Пропускная
способность обратно
Рисунок 19
Стандарт IEEE P896 для высокопроизводительной шины, который получил название Scalable Coherent Interface (SCI — масштабируемый когерентный интерфейс), позволяет отчасти решить проблему сравнительно низкой скорости работы шины, но данное устройство имеет более сложную организацию, чем простая шина. Такая шина применялась в системе HP/Convex SPP-2000.
Более эффективным является другой способ соединения — одномерная решетка. У каждого элемента в этом случае есть две связи с соседями, а граничные элементы имеют по одной связи (рис. 20). Если замкнуть концы одномерной решетки, получим топологию "кольцо".
Рисунок 20
Особый случай представляют граничные элементы, число связей у которых может быть разным. Такой тип коммуникационной сети не подходит для создания многопроцессорных конфигураций с большим числом процессоров, поскольку максимальная задержка передачи сообщений от одного из процессоров к другому пропорциональна корень из и быстро растет с увеличением числа процессоров. Двумерная решетка представлена на рис. 21.
Рисунок 21
В топологии "звезда" есть
один центральный узел, с которым
соединяются все остальные
Рисунок 22
В такой топологии слабым звеном оказывается центральный узел, поэтому она тоже не подходит для больших систем.
В сети с полносвязной топологией (рис. 23) все процессорные элементы связаны друг с другом. Пересылки могут выполняться одновременно между различными парами процессорных элементов. В такой системе легко могут быть реализованы широковещательные и многоадресные пересылки. Как быстродействие, так и стоимость системы высоки, причем стоимость существенно возрастает с увеличением числа процессорных элементов.
Рисунок 23.
Довольно распространенной является хорошо масштабируемая топология "гиперкуб" (рис. 24). В ней процессорных элементов могут быть организованы в -мерный гиперкуб. У каждого ПЭ имеется соединений. Здесь также требуется маршрутизация пакетов с данными, причем максимальное количество промежуточных узлов равно . Оно и определяет максимальную задержку передачи данных.
Рисунок 24
Для адресации узлов в
гиперкубе каждому узлу присваивается
свой идентификационный номер, при
этом двоичные представления
2.10 Динамические топологии
Основным представителем этого класса является перекрестное соединение (рис. 25).
Оно обеспечивает полную связность,
т. е. каждый процессор может связаться
с любым другим процессором или
модулем памяти (как на рисунке).
Пропускная способность сети при
этом не уменьшается. Схемы с перекрестными
переключениями могут использоваться
и для организации
Для соединения процессоров с модулями памяти требуется переключателей. Такая зависимость ограничивает масштабируемость системы (обычно не более 256 узлов).
Рисунок 25
2.11 Кластеры рабочих станций
Кластеры рабочих станций
представляют собой совокупность рабочих
станций, соединенных в локальную
сеть, обычно, в масштабе отдела, факультета
или института. Такой кластер
можно считать вычислительной системой
с распределенной памятью и распределенным
управлением. Кластерная система, при
относительно невысокой стоимости,
может обладать производительностью,
сравнимой с
Для того чтобы построить работоспособный параллельный кластер, необходимо решить ряд проблем. Прежде всего, следует иметь в виду, что довольно часто в сеть объединяются компьютеры различных фирм-производителей, имеющие разную архитектуру, работающие под управлением разных операционных систем, имеющих разные файловые системы и т. д. То есть возникает проблема совместимости. Имеется и проблема доступа, т. к. для входа в любой компьютер может потребоваться разрешение работать на нем. Может быть и так, что время счета измеряется днями, а то и неделями, а некоторые из рабочих станций кластера время от времени должны быть загружены своей собственной работой. Следовательно, особенно важным оказывается управление такой вычислительной системой, динамичной и специфической.
Кластеры рабочих станций обычно называют Беовульф-кластерами (Beowulf cluster — по одноименному проекту). Типичный современный Беовульф-кластер представляет собой кластер рабочих станций, связанных локальной сетью Ethernet и обычно работающих под управлением ОС Linux, хотя в настоящее время разнообразие Беовульф-кластеров достаточно велико.
Взаимодействие компьютеров в кластере может быть организовано с помощью сети Ethernet 10 или 100 Мбит/с. Это наиболее экономичное решение, но не самое эффективное (время отклика около 100 микросекунд). Сеть на основе Gigabit Ethernet имеет пропускную способность на порядок больше. Имеются и другие возможности, это сети Myrinet, Giganet cLAN и SCI (время отклика 10—20 микросекунд). Наибольшая пропускная способность у сети SCI (до 500 Мбит/с), поэтому данный вариант часто используется в кластерах. Кластерные системы можно отнести к MIMD-системам с распределенной памятью.
2.12 Примеры архитектур суперкомпьютеров
Архитектура суперкомпьютера NEC SX-4
NEC SX-4 1996 года выпуска (NEC
— японская фирма, один из
крупнейших производителей
Каждый процессор состоит из векторного модуля, скалярного модуля и модуля обработки команд. Тактовая частота относительно невелика — 125 МГц. Векторный модуль развивает максимальное быстродействие 2 Гфлоп/с. Скалярный модуль имеет обычную суперскалярную архитектуру с той же тактовой частотой, что и векторный модуль, и максимальное быстродействие 250 Мфлоп/с. Процессор поддерживает форматы представления чисел с плавающей точкой IEEE, Cray и IBM, а пользователь может выбрать тип используемой арифметики во время трансляции программы.
Compaq AlphaServer SC
Эта система 1999 года выпуска представляет собой симметричную многопроцессорную систему с распределенной памятью, RISC-архитектурой и коммутационной матрицей. Программное обеспечение — ОС Digital UNIX, трансляторы для языков FORTRAN, High-Performance FORTRAN (HPF), С и C++. Тактовая частота 833 МГц, максимальный размер оперативной памяти 2 Тб и максимальное число процессоров 512. Скорость обмена между процессором и памятью 1,33 Гбайт/с и между ПЭ 210-Мбайт/с. Теоретическое максимальное быстродействие каждого процессора 1,67 Гфлоп/с, а всей системы 853 Гфлоп/с.
Каждый узел представляет собой 4-процессорную симметричную систему (Compaq ES40). Процессоры — Alpha 21264a (EV67). В каждом узле используется коммуникационная матрица с пропускной способностью 5,2 Гбайт/с и разделяемая память. Узлы собраны в кластер и соединяются сетью QsNet (SQW Ltd.) с топологией "толстого дерева".
Если для выполнения параллельной программы достаточно не более четырех процессоров, можно использовать модель программирования с разделяемой памятью (например, с использованием ОрепМР).
Архитектура суперкомпьютера Cray SX-6
В 2001 году фирма Cray Inc. совместно
с NEC выпустила на рынок масштабируемый,
параллельно-векторный
Cray T3E (1350)
Это мультипроцессорная вычислительная система 2000 года выпуска, с распределенной памятью построена из RISC-процессоров. Топология коммуникационной сети — трехмерный тор. Операционная система UNICOS/mk (ОС UNIX с микроядром). Трансляторы для языков FORTRAN, HPF, C/C++. Тактовая частота 675 МГц. Количество процессоров от 40 до 2176.
Максимальный объем
В системе используется процессор Alpha21164A, однако, при необходимости, его несложно заменить другим, например, более быстродействующим процессором. Пропускная способность канала связи между процессорами 325 Мбайт/с.
Поддерживаются модели программирования MPI, PVM, HPF, собственная библиотека обмена сообщениями Cray shmem. Быстродействие, полученное при решении систем линейных алгебраических уравнений, достигает 1,12 Тфлоп/с.
Cray MTA-2
Это мультипроцессорная система с распределенной памятью, 2001 года выпуска. Работает под управлением ОС BSD. Количество процессоров до 256. В данной системе используется многопоточная архитектура. При выполнении программы поток команд разбивается на части, которые могут обрабатываться одновременно. Если, например, обращение к памяти в каком-либо из потоков не может быть выполнено, этот поток приостанавливается, а вместо него активизируется другой поток. Коммуникационная сеть представляет собой трехмерный куб. Каждый узел имеет собственный порт ввода/вывода. Параллелизм в многопоточной архитектуре выявляется и реализуется автоматически, однако в системе Cray MTA-2 могут использоваться и явные модели параллельного программирования.
Глава 3. Практическое применение методов параллельных вычислений.
3.1 Языки параллельного программирования
Применение параллельных архитектур повышает производительность при решении задач, явно сводимых к обработке векторов. Но автоматические методы распараллеливания редко способны обеспечить значительное ускорение вычислений. Более успешным может быть выражение языковыми средствами параллелизма на уровне постановки задачи. В таком случае при оптимизирующей компиляции возможен аккуратный выбор эффективной схемы параллелизма.
И в настоящее время
для большинства