Средства создания и проектирования параллельных программ
Интегрированные среды прототипирования, разработки и отладки параллельных программ:
CODE, HeNCE, GRADE, TRAPPER, EDPEPPS, Reactor, DEEP, Converse.
CODE
- CODE - графическая система создания параллельных программ. Параллельная программа представляется в виде графа, вершинами которого являются последовательные участки, а дуги соответствуют пересылкам данных. Последовательные участки могут быть написаны на любом языке, для пересылок используется PVM или MPI.
- Разработано в университете шт. Техас.
HeNCE
- HeNCE - HEterogeneous Network Computing Environment
- Исследовательский проект; разработчики - Adam Beguelin, Jack Dongarra, G. A. Geist, Robert Manchek, Keith Moore, Peter Newton, Vaidy Sunderam и др.
- графическая среда (UNIX/X-Window), разработанная для помощи в разработке параллельных программ, работающих на сети рабочих станций (в модели PVM). Предназначено для вычислителей, желающих эффективно использовать имеющуюся сеть рабочих станций, не вдаваясь в подробности параллельного программирования.
- HeNCE включает графические средства построения, компиляции, запуска и анализа HeNCE-программ (программист сам не пишет в терминах PVM). Обеспечивает высокий уровень абстракции для спецификации параллелизма. Программа описывается в виде направленного ациклического графа (DAG), в котором вершины соответствуют процедурам, а дуги - зависимостям (зависимости расставляет пользователь). Включает средства графического конфигурирования гетерогенного PVM-кластера для запуска программы.
GRADE
- GRADE - A Graphical Parallel Programming Environment
- Исследовательский проект; P-GRADE - профессиональная (коммерческая) версия системы.
- Интегрированный набор средств программирования
для разработки приложений в модели передачи сообщений
на гетерогенных кластерах.
Состоит из 6 средств:
- GRAPNEL - графический язык параллельного программирования
- GPED - графический редактор для построения GRAPNEL-программ
- GRP2C - препроцессор для генерации программ на PVM/C
- Tape/PVM - средство генерации трасс
- DDBG - распределенный отладчик
- PROVE - средство визуализации трасс
TRAPPER
- Коммерческий продукт, разработка немецкой компании GENIAS.
- Графическая среда программирования, поддерживающая все стадии
жизненного цикла программных систем. Содержит компоненты
построения параллельного ПО, конфигурирования аппаратных средств,
распределения процессов по процессорам (process mapping),
графической отладки и мониторинга производительности.
4 основных модуля:
- The Design Tool. Построение параллельного приложения из отдельных процессов, обменивающихся сообщениями. Модульная структура, иерархическая организация процессов (процесс может состоять из нескольких "подпроцессов"), автоматическая генерация "шаблонов" программ.
- The Configuration Tool Графическое определение конфигурации виртуальной машины Генерация Make-файлов, отображение процессов на процессоры (Graphical Process Mapping)
- The Visualization Tool Графическое изображение поведения процессов и взаимодействий (Software Analysis), графическая отладка (позволяет отлавливать дедлоки и другие ошибки распараллеливания)
- The Performance Tool Позволяет обнаружить критические для производительности секции кода (bottlenecks), а также собирать статистику и отображать в виде диаграмм.
- Поддерживаются следующие хост-платформы: x86/Linux, PowerPC/AIX, RS6000/AIX, HP/HP-UX, SGI, DEC/OSF1, SUN/Solaris(SunOS) WinNT (планируется). Целевые платформы/системы программирования: транспьютеры/Inmos toolset, Parsytec MultiCluster, сети и MPP/PVM3.3 или MPI 1.1.
EDPEPPS
- Завершенный исследовательский проект; Centre For Parallel Computing at the University of Westminster .
- Интегрированная среда для обеспечения быстрого,
эффективного и гибкого проектирования переносимых параллельных
программ.
В EDPEPPS входят 3 основных средства:
- Графическое средство конфигурирования (configuration tool) для быстрого прототипирования
- Средство моделирования (simulation tool), основанное на виртуальной машине исполняющей "скелетные" параллельные программы; генерирует данные о поведении и предполагаемой производительности программы.
- Средство визуализации (visualisation tool) для изображения интересующих пользователя характеристик, исходя из данных, полученных при моделировании. Представляет собой расширение существующих средств визуализации трасс, таких как Gecko и Paragraph.
- Схема работы пользователя: Прототирование --> моделирование --> визуализация.
- Все ориентировано на PVM
- Доступен финальный отчет. EDPEPPS: An Environment for the Design and Performance Evaluation of Portable Parallel Software , July 1997. Final Report. M.J. Zemerly.
Reactor
- Reactor - среда разработки распределенных и клиент-серверных приложений.
- Коммерческий продукт, разработка компании Critical Mass.
- Включает поддержку управления ресурсами, обработку исключительных ситуаций, поддержку нитей (multi-threading), сборку мусора и другие компоненты.
- Поддерживаемые платформы: Windows NT 3.5/4.0, Windows 95, Solaris 2.x, SunOS 4.1, Linux/ELF, HP-UX, Digital UNIX, SGI IRIX, IBM AIX.
DEEP
- DEEP (DEvelopment Environment for Parallel Programming) - интегрированная среда для параллельного программирования.
- Коммерческий продукт; разработка компании Pacific-Sierra Research.
- Обеспечивает графический интерфейс, который связывает средства анализа производительности и отладки с исходным кодом программы. Помогает понять структуру и поведение параллельной программы.
- Подддерживаются языки Fortran (77, 90, 95) и C (а также смешанные программы на Фортране и Си).
- Платформы: UNIX и Windows NT.
- Модели программирования: общая память (автоматическое распараллеливание циклов или OpenMP), параллелизм по данным (HPF, Data Parallel C), передача сообщений (MPI).
Converse
- Converse - среда (framework) для поддержки много-языкового параллельного программирования (взаимодействие модулей, написанных на разных языках). Поддерживаются парадигмы обмена сообщениями, объектно-ориентированного программирования, многопоточности.
- Поддерживаемые платформы: IBM SP, Cray T3E, Origin2000, Exemplar, сети рабочих станций (на базе HP-UX 10, Solaris/SunOS, RS/6000, SGI IRIX, Linux/x86). Доступны двоичные файлы для всех поддерживаемых платформ.
- Разработано в Parallel Programming Laboratory (PPL), University of Illinois at Urbana-Champaign.
© Лаборатория Параллельных Информационных Технологий, НИВЦ МГУ