Анализ архитектуры системы Alpha Server GS, страница 5

§  Поддержка кластерных систем для высокопроизводительных технических вычислений ( HPTC), включающих тысячи ЦП и позволяющих достичь самых высоких уровней масштабируемости и производительности

Поддержка свойств масштабируемости и производительности в подсистемах внешней памяти и сетевого интерфейса.

Источник: http://www.compaq.com/cproducts/alpha/alphags/review.asp


2. Технология параллельного программирования:

модель программирования (распараллеливание потока команд, данных)

Массивно - параллельная система: (AlphaServer SС): Программирование в рамках модели передачи сообщений ( MPI, PVM, BSPlib)

Кластерные системы (AlphaServer HPC): Программирование, как правило, в рамках модели передачи сообщений (чаще всего - MPI). Дешевизна подобных систем оборачивается большими накладными расходами на взаимодействие параллельных процессов между собой, что сильно сужает потенциальный класс решаемых задач.

SMP (AlphaServer GS/ES): Программирование в модели общей памяти. (POSIX threads, OpenMP). Для SMP-систем существуют сравнительно эффективные средства автоматического распараллеливания.

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

На платформе AlphaServer поддерживаются операционные системы Tru64 UNIX (это новое имя Digital UNIX), OpenVMS и Linux. Поставляется ПО кластеризации TruCluster Software.

инструментальные средства параллельного программирования: параллельные языки программирования, компиляторы и интерпретаторы, библиотеки параллельных программ

Поддерживается параллельное программирование в стандартах OpenMP и MPI.

Интерфейс OpenMP задуман как стандарт для программирования на масштабируемых SMP-системах (SSMP,ccNUMA, etc.) в модели общей памяти (shared memory model). В стандарт OpenMP входят спецификации набора директив компилятора, процедур и переменных среды.

Разработкой стандарта занимается организация OpenMP ARB (ARchitecture Board), в которую вошли представители крупнейших компаний - разработчиков SMP-архитектур и программного обеспечения. Спецификации для языков Fortran и C/C++ появились соответственно в октябре 1997 года и октябре 1998 года. Открыт список рассылки для публичного обсуждения OpenMP (omp@openmp.org).

Основной источник информации - сервер www.openmp.org. На сервере доступны спецификации, статьи, учебные материалы, ссылки

До появления OpenMP не было подходящего стандарта для эффективного программирования на SMP-системах. Наиболее гибким, переносимым и общепринятым интерфейсом параллельного программирования является MPI (интерфейс передачи сообщений). Однако модель передачи сообщений

1)  недостаточно эффективна на SMP-системах;

2)   2) относительно сложна в освоении, так как требует мышления в "невычислительных" терминах.

Проект стандарта X3H5 провалился, так как был предложен во время всеобщего интереса к MPP-системам, а также из-за того, что в нем поддерживается только параллелизм на уровне циклов. OpenMP развивает многие идеи X3H5.

POSIX-интерфейс для организации нитей (Pthreads) поддерживается широко (практически на всех UNIX-системах), однако по многим причинам не подходит для практического параллельного программирования:

1.  нет поддержки Fortran-а,

2.  слишком низкий уровень,

3.  нет поддержки параллелизма по данным,

4.  механизм нитей изначально разрабатывался не для целей организации параллелизма.

OpenMP можно рассматривать как высокоуровневую надстройку над Pthreads (или аналогичными библиотеками нитей).

Многие поставщики SMP-архитектур (Sun,HP,SGI) в своих компиляторах поддерживают спецдирективы для распараллеливания циклов. Однако эти наборы директив, как правило, 1) весьма ограничены; 2) несовместимы между собой; в результате чего разработчикам приходится распараллеливать приложение отдельно для каждой платформы. OpenMP является во многом обобщением и расширением упомянутых наборов директив.