Автор: Пользователь скрыл имя, 13 Ноября 2011 в 18:59, курсовая работа
Идея параллельной обработки данных не нова. Можно считать, что она возникла еще на заре человеческой цивилизации, когда оказалось, что племя может успешно бороться за выживание, если каждый его член выполняет свою часть общей работы.
В ближайшее время под эффективным использованием аппаратных средств компьютера будут пониматься применение параллельных алгоритмов. Это связано с замедлением темпов роста тактовой частоты микропроцессоров и быстрым распространением многоядерных микропроцессоров.
Для
того чтобы построить
Кластеры рабочих станций обычно называют Беовульф-кластерами (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 SX-6, один из наиболее
мощных современных суперкомпьютеров.
Cray SX-6 представляет собой симметричную
мультипроцессорную систему, строительными
блоками которой являются параллельно-векторные
процессорные узлы. Узлы состоят из
нескольких (от двух до восьми) векторных
процессоров, максимальное быстродействие
каждого из них составляет 8 Гфлоп.
Каждый процессор имеет доступ к
разделяемой
Cray T3E (1350)
Это мультипроцессорная вычислительная система 2000 года выпуска, с распределенной памятью построена из RISC-процессоров. Топология коммуникационной сети — трехмерный тор. Операционная система UNICOS/mk (ОС UNIX с микроядром). Трансляторы для языков FORTRAN, HPF, C/C++. Тактовая частота 675 МГц. Количество процессоров от 40 до 2176.
Максимальный объем оперативной памяти для каждого узла 512 Мбайт и максимальное быстродействие 2938 Гфлоп/с. В отличие от предшественника — Cray T3D, данной системе не требуется фронтальный компьютер.
В системе используется процессор Alpha21164A, однако, при необходимости, его несложно заменить другим, например, более быстродействующим процессором. Пропускная способность канала связи между процессорами 325 Мбайт/с.
Поддерживаются модели программирования MPI, PVM, HPF, собственная библиотека обмена сообщениями Cray shmem. Быстродействие, полученное при решении систем линейных алгебраических уравнений, достигает 1,12 Тфлоп/с.
Cray MTA-2
Это мультипроцессорная
система с распределенной памятью,
2001 года выпуска. Работает под управлением
ОС BSD. Количество процессоров до 256.
В данной системе используется многопоточная
архитектура. При выполнении программы
поток команд разбивается на части,
которые могут обрабатываться одновременно.
Если, например, обращение к памяти
в каком-либо из потоков не может быть
выполнено, этот поток приостанавливается,
а вместо него активизируется другой поток.
Коммуникационная сеть представляет собой
трехмерный куб. Каждый узел имеет собственный
порт ввода/вывода. Параллелизм в многопоточной
архитектуре выявляется и реализуется
автоматически, однако в системе Cray MTA-2
могут использоваться и явные модели параллельного
программирования.
Глава
3. Практическое применение
методов параллельных
вычислений.
3.1 Языки параллельного программирования
Применение параллельных архитектур повышает производительность при решении задач, явно сводимых к обработке векторов. Но автоматические методы распараллеливания редко способны обеспечить значительное ускорение вычислений. Более успешным может быть выражение языковыми средствами параллелизма на уровне постановки задачи. В таком случае при оптимизирующей компиляции возможен аккуратный выбор эффективной схемы параллелизма.
И
в настоящее время для
Рассмотрим кратко основные языки и их расширения.
Fortran
Fortran
— первый реализованный язык
программирования высокого
Диалекты языка Fortran: Fortran-DVM, Cray MPP Fortran, F--, Fortran 90/95, Fortran D95, Fortran M, Fx, HPF, Opus, Vienna Fortran.
Fortran
D95 - экспериментальный язык
Fortran
M - небольшой набор расширений
языка Fortran, предоставляющих возможность
модульной разработки
HPF - дальнейшее развитие языка Fortran 90. Включены богатые средства для распределения данных по процессорам. Необходимые коммуникации и синхронизации реализуются компилятором. Часть расширений реализована в виде функций и операторов языка, а часть - в виде директив компилятору.
Vienna Fortran 90 - дальнейшее развитие языка Fortran 90. Включает в себя многочисленные возможности распределения массивов данных по секциям процессорных массивов, а также распределения итераций циклов.
C/C++
Си— стандартизированный процедурный язык программирования, разработанный в начале 1970-х годо. Си был создан для использования в операционной системе UNIX. Для языка Си характерны современный набор конструкций управления потоком выполнения, структур данных и обширный набор операций.
C++
— компилируемый статически
Charm/Charm++
- параллельные расширения языков
C и C++ соответственно. Программы,
написанные с их
Cilk
- язык программирования с
HPC - проект, разрабатываемый в CRIM (Centre de Recherche Informatique de MontrВal). Цель проекта - создание на основе языка C средства для поддержки параллельных вычислений на большом количестве различных платформ. Параллельные расширения языка строятся по аналогии с языком HPF.
MPL
- объектно-ориентированный язык
программирования, базирующийся на
языке C++. Распределение данных
задается программистом, а все
необходимые пересылки и
mpC
- язык программирования, основанный
на языках C и C, предоставляющий
средства создания
MPC++
- расширение языка C++, предназначенное
для написания параллельных
Adl
Adl
- функциональный язык с
Ada
Ada
- универсальный язык