В настоящее время главным направлением повышения производительности ЭВМ является создание многопроцессорных систем с распределенной памятью. В мире имеется уже достаточно большое число таких систем, которые по уровню производительности не уступают традиционным суперЭВМ конвейерного типа. Ведется разработка и реализация проектов создания подобных систем (например, Тега 3D, CM-5, KSR1, Paragon), которые нацелены на достижение к концу 90-х годов терафлопной производительности. Все они представляют собой многопроцессорные системы с распределенной памятью, состоящие из тысяч микропроцессоров, т. е. так называемые системы с массовым параллелизмом. Создание прикладных программ для подобных распределенных систем наталкивается на ряд серьезных трудностей. Разработка параллельной программы требует выбора или создания подходящего вычислительного метода. При этом для достижения требуемой эффективности приходится многократно проходить путь от спецификации алгоритма к программе на языке программирования, который для параллельных вычислительных систем (ВС) оказывается гораздо более сложным, чем для последовательных. Возникающие при разработке параллельных программ трудности усугубляются отсутствием задела параллельных алгоритмов и программ, на который мог бы опереться в своей работе программист. В связи с этим возникает настоятельная потребность в использовании для параллельных ВС громадного задела в виде программ и алгоритмов, написанных на традиционных языках последовательного программирования. Существуют и чисто психологические трудности, связанные с тем, что многим программистам, особенно имеющим большой опыт работы с традиционными ЭВМ, проще иметь дело с последовательными алгоритмами и программами, так что переход к использованию распределенных систем значительно усложняет их работу и существенно замедляет разработку программ. Поэтому желательно дать возможность программисту при работе с многопроцессорными системами пользоваться помимо новых параллельных языков программирования и традиционными последовательными языками, возможно модифицированными для повышения эффективности автоматического распараллеливания. Разработанные с помощью имеющихся для распределенных систем языковых средств параллельные программы требуют серьезных усилий для переноса не только на ЭВМ другой архитектуры (последовательные, векторно-конвейерные, многопроцессорные с общей памятью), но и на аналогичные ЭВМ другой конфигурации. Компоновка параллельных программ из более простых, накопление банка общеиспользуемых параллельных программ и программных модулей — это проблемы, требующие исследования и решения. Наконец, следует отметить отсутствие адекватных методов и средств отладки и мониторинга параллельных программ, а также отсутствие доступных инструментальных систем, позволяющих организовать для широкого круга специалистов обучение методам распараллеливания. Чтобы преодолеть указанные трудности и сделать удобным и эффективным использование перспективных вычислительных систем с массовым параллелизмом, в ИПМ РАН развернуты работы по созданию системы автоматизации разработки мобильных параллельных программ — системы РАМПА (Разработка Мобильных Параллельных Алгоритмов). При этом система РАМПА должна интегрировать три различных подхода к языкам программирования для распределенных ВС, базирующихся соответственно на следующих языках: параллельного программирования, ориентированных на распределенные системы (основанных на взаимодействии посредством передачи сообщений); последовательного программирования, расширенных оформляемыми в виде специальных комментариев указаниями о распределении вычислений между процессорами;
Назначение и состав системы РАМПА
Передача сообщений:
Язык Fortran DVM (Distributed Virtual Memory) — FDVH
В настоящее время разработка системы РАМПА находится в следующем состоянии. Библиотека LIB-GNS. Разработаны точные спецификации библиотеки и завершаются работы по ее реализации сразу для следующих четырех платформ: мультитранспьютерная система; распределенная система с узлами, каждый из которых состоит из пары процессоров — транспьютера Т800 и процессора Intel 860; IBM PC под управлением MS-DOS; IBM PC под управлением OS/2. При этом внутри библиотеки выделена и точно специфицирована машинно-независимая компонента — пакет функций для накопления трассировки. Транслятор с языка Fortran GNS. Разработано строгое описание языка и первая версия транслятора, работающая на IBM PC под управлением MS-DOS. Транслятор с языка Fortran DVM. Завершается подготовка точного описания языка и библиотеки LIB-DVM. Транслятор с языка Норма. Завершается реализация первой версии транслятора, работающей на IBM PC под MS-DOS. Средства отладки и мониторинга. На IBM PC под MS-DOS реализован режим имитации выполнения параллельных программ на GNS-машине и созданы средства анализа трассировки.
* Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований, грант 93-012-628.
ЛИТЕРАТУРА
1. Андрианов А. Н., Е ф и м к и н К. Н., Задыхайло И. Б. Язык Норма. Препринт ИПМ им. М. В. Келдыша АН СССР, № 165,1985. 2. Т h о 1 е С. A.: A proposal for the Abstract GENESIS Machine. In: Report on the GENESIS definition phase October 1988 — June 1989,1989. 3. HiranandaniS., Kennedy К., Tseng С. Compiling Fortran D for MIMD Distributed-Memory Machines. Comm. ACM, Vol. 35, No. 8 (Aug. 1992), 66—80.