Содержание к диссертации
Введение
1. Методы разработки параллельных программ для МВС СПОВ 16
1.1. Анализ современных методов разработки параллельных программ для МВС с массовым параллелизмом 16
1.2. Архитектура и организация вычислений МВС СПОВ 21
1.3. Структура математического обеспечения МВС СПОВ 26
1.4. Структурно-функциональный и структурно-декларативный принципы разработки компонентов масштабируемых параллельных программ 28
1.5. Выводы 32
2. Разработка масштабируемых параллельных программ на основе компонентного программирования 34
2.1. Идеология компонентного программирования для разработки масштабируемых параллельных программ для МВС СПОВ различной конфигурации 34
2.2. Многоуровневая модель разработки и взаимодействия компонентов масштабируемых параллельных программ МВС СПОВ 43
2.3. Синтез масштабируемых параллельных программ на базе структурно-функционального и структурно-декларативного методов. 54
2.4. Выводы 70
3. Разработка компонентов масштабируемых параллельных программ на базе структурно-функционального и структурно-декларативного методов 72
3.1. Типовые схемы распараллеливания информационных потоков 72
3.2. Бинарный базис системного уровня компонентной модели программирования 97
3.3. Базис макрообъектов систехмного уровня компонентной модели программирования 101
3.4. Примеры решения прикладных задач 105
3.5. Анализ продуктивности разработки структурно-декларативным й структурно-функциональным методами 109
3.5. Выводы 115
4. Комплекс программных средств МВС СПОВ 116
4.1. Структура программных средств МВС СПОВ 116
4.2. Интегрированная среда разработки программ и программных компонентов на языке структурно-процедурных вычислений «Argus» 121
4.2.1 .Назначение интегрированной среды разработки «Argus» 121
4.2.2.Управление процессом разработки в среде «Argus» 127
4.3. Интегрированная среда разработки компонентов параллельных программ в виде граф-схем «Easyo» 128
4.3.1. Назначение интегрированной среды разработки «Easyo» 128
4.3.2. Общие принципы построения граф-схем в среде разработки Easyo». 129
4.3.3. Примеры построения граф-схем компонентов параллельных программ в среде разработки «Easyo IDE» 138
4.3.4. Особенности пользовательского интерфейса среды разработки «Easyo IDE» 143
4.3.5. Разработка масштабируемых компонентов в среде разработки «Easyo IDE» 144
4.4. Отладчик параллельных программ на реализуемых на базовых модулях МВС СПОВ 147
4.5. Выводы 149
Заключение 151
Список использованных источников 153
- Структурно-функциональный и структурно-декларативный принципы разработки компонентов масштабируемых параллельных программ
- Многоуровневая модель разработки и взаимодействия компонентов масштабируемых параллельных программ МВС СПОВ
- Анализ продуктивности разработки структурно-декларативным й структурно-функциональным методами
- Примеры построения граф-схем компонентов параллельных программ в среде разработки «Easyo IDE»
Введение к работе
Актуальность темы. В настоящее время благодаря стремительному развитию технологий стало возможным построение многопроцессорных вычислительных систем (МВС) с массовым параллелизмом (МП), в которых параллельно работают тысячи процессоров. Такие суперкомпьютеры используются для решения наиболее сложных задач науки и техники, таких как моделирование различных явлений и процессов, управление сложными техногенными системами в реальном масштабе времени, предсказание климатических изменений, разработка новых лекарственных препаратов и многих других задач. Более того, если раньше суперкомпьютерные технологии были доступны лишь в специальных исследовательских центрах и на крупных промышленных предприятиях, то на сегодняшний день данные технологии приходят и в повседневную жизнь, и сфера их применения охватывает практически все виды человеческой деятельности [1].
В то же время разработка эффективного программного обеспечения для таких систем является сложной научно-технической задачей, требующей привлечения высококвалифицированных специалистов, что обусловливает высокую стоимость прикладного программного обеспечения.
Большинство существующих методов разработки параллельных
программ для современных многопроцессорных систем с массовым
параллелизмом основаны на распараллеливании последовательных алгоритмов,
при этом распараллеливание осуществляется на локальных участках программ
и не рассматривается структура задачи в целом, что приводит к потере
значительной части возможностей по эффективной реализации задач на
параллельных вычислительных системах. Распараллеливание
последовательных программ очень редко обеспечивает достижение эффективной параллельной реализации [2].
Распараллеливание последовательных алгоритмов оправдано тем, что многие алгоритмы уже реализованы в виде готовых работоспособных библиотек, проверенных на однопроцессорных ЭВМ, и, казалось бы, необходим только их перенос на более высокопроизводительные вычислительные системы, что возможно как автоматизировано, с помощью распараллеливающих компиляторов, так и вручную, непосредственно разработчиками.
Однако проблема разработки распараллеливающих компиляторов, способных создавать эффективные параллельные программы, адекватные потенциальным возможностям современных МВС, полностью не решена, прежде всего, в связи с тем, что за основу берется не исходная математическая постановка задачи, а некоторая программная реализация задачи, разработанная
для последовательного выполнения. Воссоздание исходной математической формы задачи на основе описания последовательного алгоритма является сложной проблемой, которая на данный момент для научно-технических задач большой размерности не может быть реализована за приемлемое время.
Традиционные методы, основанные на множестве адаптированных для параллельных вычислений последовательных языков программирования, как правило, реализуются для вычислительных систем с мультипроцедурной организацией вычислений [3].
Для вычислительных систем с нетрадиционными архитектурой и принципами организации вычислений необходима разработка новых методов и средств программирования, позволяющих создавать адекватные параллельные решения. При этом целесообразно учитывать, что разработка параллельных решений прикладных задач не должна выполняться для фиксированного вычислительного ресурса, так как практически все современные многопроцессорные вычислительные системы обладают способностью к наращиванию аппаратных ресурсов, что, в конечном счете, должно приводить к повышению их вычислительной мощности. В связи с этим развиваются технологии масштабируемых параллельных программ, отличительной особенностью которых является использование во время выполнения доступных ресурсов системы с целью повышения производительности вычислений [4].
В то же время широкое распространение новых нетрадиционных принципов программирования МВС МП затруднительно без использования высокоуровневых средств и методов разработки.
Создание таких средств позволит сократить число
высококвалифицированных специалистов, вовлеченных в разработку прикладных программ, что, в конечном счете, снизит стоимость решения задач на МВС МП и повысит их рентабельность.
В новых проектах по разработке методов и средств программирования МВС МП существенным образом пересматриваются принципы программирования параллельных систем. В частности, становится актуальным комбинированный подход к созданию параллельных программ. При реализации данного подхода из большого опыта программирования традиционных последовательных систем используется высокоуровневая организация структур данных; аналогично с разработками в области схемотехнических решений выделяются базовые структурные алгоритмы и методы синтеза параллельных решений на их основе.
Немаловажным фактором для успеха той или иной системы является наглядность использования средств разработки конечным пользователем. Если для последовательных алгоритмов устоявшейся считается текстовая форма
описания на каком-либо языке программирования, то для параллельных алгоритмов остается открытым вопрос о том, какая форма эффективнее -текстовая или графическая.
На данный момент фирмой Star Bridge Systems, Inc. (США) предлагается среда разработки "Viva" [5], предназначенная для создания параллельных решений для семейства "гиперкомпьютеров" в виде граф-схем, в которой используется независимый от аппаратуры графический язык описания параллельных алгоритмов, на основе которого возможно создавать масштабируемые решения.
Компанией Xputer Lab (Kaiserslautern) (Германия) [6] разрабатывается специализированный "пространственно-ориентированный" (Map-Oriented) язык программирования для оригинальных реконфигурируемых вычислительных систем [7,8], который позволит программировать детерминированный процесс выборки операндов из пространства памяти, при этом через вычислительную структуру системы организуется детерминированный поток данных. Данный язык наиболее эффективен на систолических либо сводимых к ним классах задач, в которых присутствуют регулярные зависимости между данными.
В России можно выделить работы, проводимые в Институте программных систем РАН и Исследовательском центре мультипроцессорных систем по созданию системы автоматического динамического распараллеливания программ [9]. Известна система программирования Норма [10], разработанная в Институте прикладной математики им. М.В. Келдыша, которая обеспечивает высокую эффективность реализации вычислительных процессов для многопроцессорных систем с различной архитектурой, но она ориентирована на решение класса задач математической физики.
В Институте проблем информатики РАН под руководством академика РАН B.C. Бурцева разрабатывается вычислительная система с автоматическим распределением ресурсов [11], в которой, благодаря оригинальной архитектуре, основанной на потоках операндов (так называемых "токенов"), осуществляется динамическое распараллеливание задач, обеспечивая при этом высокий коэффициент использования оборудования.
Одним из перспективных направлений в области построения высокопроизводительных вычислительных систем являются МВС со структурно-процедурной организацией вычислений (СПОВ) и программируемой архитектурой (ПА). В Научно-исследовательском институте многопроцессорных вычислительных систем Таганрогского государственного радиотехнического университета (НИИ МВС ТРТУ) под руководством академика РАН А.В. Каляева была разработана основная концепция технологии создания МВС СПОВ и ПА [12,13,14,15].
Основная идея параллельных вычислений, реализуемых в МВС СПОВ и
ПЛ, заключается в том, чтобы позволить пользователю с помощью предоставляемых программных средств и соответствующей аппаратной поддержки программировать и формировать в исходной универсальной системе на время решения специализированные вычислители, адекватные структуре решаемой задачи, что позволяет достигать максимальной производительности, соизмеримой со специализированными аппаратными системами, разработанными специально для решения данной задачи. При этом для широкого класса задач достигается реальная производительность системы, близкая к пиковой. Существенное отличие создания параллельных программ для МВС СПОВ заключается в том, что для таких систем формируется не столько структура задачи, адекватная структуре системы, а, наоборот, отталкиваясь от структуры задачи, формируются конфигурация вычислительной системы и процедуры организации потоков данных решаемой задачи [16,17,18].
Для МВС СПОВ вычислительный процесс описывается не множеством взаимодействующих последующих процессов, а информационным графом алгоритма, вытекающим из математической постановки задачи. При структурной организации вычислений каждой вершине графа ставится в соответствие процессор, настроенный на выполнение определенной операции, при этом пространственная коммутационная система обеспечивает обмен данными между объектами системы: процессорахми, каналами памяти, внешними информационными каналами в соответствии с дугами информационного графа [19].
При создании МВС СПОВ число объектов системы конечно, что накладывает ряд ограничений на структурную реализацию вычислений, в связи с этим информационный граф задачи разбивается на множество последовательно реализуемых фрагментов задачи - кадров, каждый из которых реализуется на оборудовании МВС СПОВ структурно. Такую организацию вычислений принято называть структурно-процедурной [20,21].
В НИИ МВС ТРТУ разрабатываются не только технологии создания суперкомпьютеров, но и средства программирования, в том числе, для создания масштабируемых параллельных решений прикладных задач. В работах Л.В. Каляева, И.И. Левина, И.М. Пономарева были заложены базовые принципы технологии разработки масштабируемых параллельных программ для МВС МП различных конфигураций [22,23,24]. Однако не были созданы инструментальные средства и методы разработки масштабируемых параллельных программ, соответствующие современным концепциям быстрой разработки (RAD) [25]. Использование таких инструментов позволило бы не только ускорить процесс создания параллельных программ, но и поднять его на новый уровень, не требующий высокой квалификации от разработчиков
прикладных программ.
В связи с этим, основываясь на сформулированных ранее базовых принципах технологии разработки масштабируемых параллельных программ, диссертационная работа направлена на развитие существующих и создание новых методов и инструментальных средств разработки масштабируемых параллельных программ, обеспечивающих не только достижение требуемых характеристик вычислительного процесса при решении прикладных задач, но и достаточно высокий уровень процесса разработки для прикладного программирования, не требующий от разработчика высокой квалификации в области параллельных вычислений.
Объект исследований. Объектом исследования являются методы и инструментальные средства разработки параллельных программ.
Цель работы. Целью диссертационной работы является создание методов описания и инструментальных средств разработки масштабируемых параллельных программ для реализации структурно-процедурных вычислений на различных конфигурациях МВС СПОВ.
Для достижения этой цели в работе решаются следующие задачи:
исследуются средства и методы организации параллельных вычислений для МВС с массовым параллелизмом;
исследуются формы представления структурно-процедурных параллельных программ;
разрабатываются формы представления масштабируемых параллельных алгоритмов как в текстовом виде, так и в виде граф-схем;
разрабатывается новый метод описания структурных компонентов масштабируемых параллельных программ в виде граф-схем для реализации на МВС СПОВ различной конфигурации;
создается комплекс инструментальных средств, основанный на идеологии быстрой разработки и визуального программирования, позволяющий реалнзовывать предложенные методы создания масштабируемых параллельных программ и программных компонентов для МВС СПОВ различной конфигурации;
разрабатывается информационная структура многопользовательской базы данных компонентов масштабируемых параллельных программ.
Методы исследований. При проведении исследований были использованы элементы теории вычислительных систем, теория графов, теория множеств. Экспериментальные исследования проведены на действующих образцах МВС СПОВ различной конфигурации.
Научная новизна заключается в создании новых методов описания и разработки масштабируемых параллельных программ и принципов создания оригинального комплекса инструментальных программных средств на их осно-
ве для реализации на МВС СПОВ различной конфигурации.
К числу наиболее важных результатов диссертации относятся:
новая графическая форма описания структурных компонентов параллельных алгоритмов, отличающаяся от известных введением в граф-схемы нового класса операторных вершин, задающих правила автоматического синтеза вычислительной структуры в зависимости от характеристик обрабатываемых потоков данных;
усовершенствованный структурно-функциональный метод разработки масштабируемых параллельных программ в части адаптации к идеологии компонентно-ориентированного программирования;
новый структурно-декларативный метод разработки масштабируемых параллельных программ, отличающийся от известных использованием рекурсивно-определяемой формы представления информационных графов параллельных алгоритмов;
унифицированные типовые схемы распараллеливания, комбинирование которых в рамках структурно-декларативного метода позволяет за минимальное время создавать новые масштабируемые компоненты прикладных задач произвольной сложности.
Практическую ценность работы представляют:
алгоритм синтеза структурных компонентов параллельных программ, обеспечивающий автоматическое формирование вычислительных структур для заданной конфигурации МВС СПОВ из ресурсонезависимого описания параллельного алгоритма на основе структурно-декларативного метода;
интегрированная среда разработки параллельных программ и программных компонентов на языке структурно-процедурных вычислений для МВС СПОВ различной конфигурации, позволяющая создавать эквивалентные описания компонентов параллельных программ как в текстовой (на языке структурно-процедурного программирования), так и в графической (в виде статических и масштабируемых граф-схем) формах;
база данных параллельных программ и программных компонентов, представленных в структурно-функциональной и структурно-декларативной формах для МВС СПОВ различной конфигурации, обеспечивающая сокращение времени создания параллельных масштабируемых программ в 2-4 раза.
Использование результатов работы. Теоретические и практические результаты диссертационной работы использованы при выполнении госбюджетных и хоздоговорных НИР в НИИ МВС ТРТУ, непосредственным участником которых являлся автор диссертации.
Наиболее важными из них являются:
- "Синтез унифицированных алгоритмов решения военно-прикладных
задач на суперкомпьютере", руководитель - академик РАН А.В. Каляев, зарег. в ЦВНИ, ИЫ-858;
"Исследование и разработка фундаментальных принципов и методов программирования многопроцессорных вычислительных систем с массовым параллелизмом, программируемой архитектурой и структурно-процедурной организацией вычислений", руководитель - академик РАН А.В. Каляев, № гос. per. 01.2.00100686;
"Разработка и исследование системы профаммирования и настройки архитектуры многопроцессорной системы под структуру задачи", руководитель - академик РАН А.В. Каляев, № гос. контракта 37.011.1.1.0013;
"Создание экспериментального образца ВПА и компонентов системного профаммного обеспечения", руководитель НИР - член-корреспондент РАН И.А. Каляев;
"Разработка и исследование математической модели, структуры и принципов построения многопроцессорной вычислительной системы с динамически профаммируемой архитектурой", руководитель - к.т.н. И.И. Левин, № гос. per. 01.2.00316409;
"Создание экспериментального образца МНМС и компонентов системного профаммного обеспечения", руководитель - к.т.н. И.И. Левин;
"Разработка математической модели МВС с многоуровневой организацией профаммирования", руководитель - к.т.н. И.И.Левин, №гос. per. 01.20.031382;
"Разработка и исследование методов реализации задачи в самонастраиваемой под структуру задачи вычислительной системе", руководитель - к.т.н. И.И.Левин, № гос. per. 01.20.0301381;
"Разработка методов и аппаратно-профаммных средств профаммирования и настройки архитектуры мультимикропроцессорных систем под структуру решаемой задачи", руководитель - академик РАН А.В. Каляев, № гос. per. 01.2.00104214;
"Исследование и разработка методов преобразования алгоритма задачи в унифицированную параллельную форму и ее адаптации к архитектуре ВВК", руководитель НИР - член-корреспондент РАН И.А. Каляев.
Апробация работы. Основные результаты работы докладывались и обсуждались на всероссийских и международных научно-технических конференциях:
Международная конференция "Интеллектуальные многопроцессорные системы (ИМС'99)", г. Таганрог, 1-5 сентября 1999 г.;
Международная конференция "Искусственный интеллект - 2000", Кацивели, Украина, 11-16 сентября 2000 г.;
3-я международная научно-техническая конференция "Электроника и
информатика - XXI век", Зеленоград-Москва, 2000 г.;
Всероссийская научная конференция "Высокопроизводительные вычисления и их приложения", Черноголовка, 29 октября- 2 ноября 2000 г.;
Международная конференция "Интеллектуальные и многопроцессорные системы-2001", Дивноморское, 2001 г.;
Международная научно-техническая конференция "СуперЭВМ и многопроцессорные вычислительные системы", Таганрог, 26-30 июня 2002 г.;
Международная конференция "Искусственный интеллект-2000", Кацивели, 2002 г.;
Международная конференция "Интеллектуальные и многопроцессорные системы-2003", пос. Дивноморское, 2003 г.;
Международная конференция "Интеллектуальные и многопроцессорные системы-2004", Кацивели, 2004 г.;
Выставка "Информатика и информационные технологии", г. Берлин (Германия) 2002 г.
По теме диссертационной работы опубликовано 18 печатных работ, из них: 4 статьи, 12 тезисов и материалов докладов на российских и международных научно-технических конференциях, 2 свидетельства о регистрации программ для ЭВМ.
Наиболее важными из публикаций являются:
Левин И.И., Шматок А.В. Технология параллельных индуктивных программ // Труды международной конференции "Интеллектуальные многопроцессорные системы (ИМС99)".- Таганрог: Изд-во ТРТУ, 1999. -С. 142-146.
Шматок А.В. Средства программирования суперкомпьютеров с программируемой архитектурой // Труды Всероссийской научной конференции "Высокопроизводительные вычисления и их приложения". - М.: Изд-во МГУ, 2000.-С. 168-170.
Левин И.РІ., Пономарев И.М., Шматок А.В. Методы преобразования параллельных программ под структуру вычислительной системы // Искусственный интеллект. - Донецк: Наука і освіта, 2001. - №3. - С. 227-231.
Левин И.И., Шматок А.В. Сборочная система параллельного макропрограммирования "Интегрированная среда для МВС СПРВ" // Искусственный интеллект. - Донецк: Наука і освіта, 2001. - №3. - С. 228-233.
Левин И.И, Пономарев И.М., Шматок А.В., Шахов Р.В.
Многопроцессорные рабочие станции с ПА - эффективный инструмент решения сложных научно-технических задач // Материалы научно-технической конференции с международным участием «Компьютерные технологии в инженерной и управленческой деятельности». - Таганрог: изд-во ТРТУ, 2002. -№2.-С. 180-183.
Левин И.И., Шахов Р.В., Сластен Л.М. Математическое обеспечение многопроцессорных вычислительных систем с программируемой архитектурой // Искусственный интеллект. - Донецк: Наука і освіта, 2002. - №3. - С. 286-294.
Левин И.И., Шматок А.В. Система разработки параллельных программ для многопроцессорных вычислительных систем с программируемой архитектурой // Материалы Международной научно-технической конференции "СуперЭВМ и многопроцессорные вычислительные системы". - Таганрог: Изд-во ТРТУ, 2002. - С. 153-156.
Левин И.И., Шматок А.В., Каляев З.В. Средства разработки параллельных программ для многопроцессорных вычислительных систем с программируемой архитектурой // Искусственный интеллект. - Донецк: Наука і освіта, 2003. - №3. - С. 147-149.
Шматок А.В., Каляев З.В. Декларативный и функциональный методы разработки компонентов масштабируемых параллельных программ // Искусственный интеллект. Интеллектуальные и многопроцессорные системы. Материалы международной научно-технической конференции, 20-25 сентября 2004 г. - Таганрог: Изд-во ТРТУ, 2004. - Т 1. - С. 227-229.
Шматок А.В., Каляев З.В. Декларативный и функциональный методы разработки компонентов масштабируемых параллельных программ // Высокопроизводительные вычислительные системы (ВПВС-2004). Материалы научной международной школы, 20-25 сентября 2004 г. - Таганрог: Изд-во ТРТУ, 2004.-С. 139-142.
Основные положения, выносимые на защиту:
модернизированный структурно-функциональный метод разработки масштабируемых параллельных программ для МВС СПОВ;
новый структурно-декларативный метод разработки масштабируемых параллельных программ для МВС СПОВ;
алгоритм синтеза структурных компонентов параллельных программ, представленных в виде масштабируемых граф-схем;
интегрированная среда разработки структурно-процедурных масштабируемых параллельных программ и программных компонентов как в текстовом, так и в графическом представлении.
Структура диссертации. Диссертация состоит из введения, четырех глав, библиографического списка и приложений.
Первая глава посвящена анализу современных методов разработки параллельных программ для МВС с массовым параллелизмом. В главе определяются основные проблемы, связанные с разработкой прикладных параллельных программ. Выделяется ряд оригинальных проектов, направленных на преодоление существующих проблем в области создания суперЭВМ, а также методов и средств их программирования. Рассматриваются
МВС со структурно-процедурной организацией вычислений, анализируются отличительные особенности архитектуры и принципы разработки параллельных программ для МВС СПОВ.
Предлагается модернизация комплекса математического обеспечения МВС СПОВ в части расширения средств разработки и взаимодействия с пользователем. После модернизации комплекса программирование МВС СПОВ осуществляется не только на базе языковых средств, а в создаваемой автором интегрированной среде разработки, содержащей: средства ввода и редактирования исходных текстов параллельных программ и граф-схем программных компонентов, трансляторы в объектное представление, конверторы между графической и текстовой формой описания, средства доступа к базе данных компонентов параллельных программ, отладчик параллельных программ, средства тестирования работоспособности оборудования базовых модулей МВС СПОВ.
Основываясь на принципах компонентного программирования, в диссертации разработаны правила описания масштабируемых параллельных программ, позволяющие в рамках единого подхода к организации масштабируемых параллельных интерфейсов выполнять реализацию программных модулей различными методами. В диссертации формализуется и дорабатывается структурно-функциональный метод, а также разрабатывается новый структурно-декларативный метод программирования компонентов масштабируемых параллельных программ, а также создается интегрированная среда разработки параллельных программ для МВС СПОВ, позволяющая создавать эквивалентные описания компонентов параллельных программ как в текстовой, так и в графической формах.
Основная идея структурно-функционального метода разработки и синтеза масштабируемых компонентов параллельных программ заключается в том, что масштабируемые решения прикладных задач содержат функцию, которая на базе множества задействованных в параллельной программе компонентов выполняет формирование вычислительной структуры в зависимости от параметров реализуемого на вычислительном ресурсе системы потока данных. Модификация данного метода выполнена в части его адаптации к идеологии компонентного программирования, что позволяет программировать функции масштабирования не только на специализированном языке структурно-процедурных вычислений, но и на базе распространенных алгоритмических языков.
Основная идея нового структурно-декларативного метода заключается в том, что в описание компонентов, выполняемое в виде рекурсивно определяемых граф-схем, добавляются специальные операторы, задающие правила формирования вычислительной структуры в зависимости от
характеристик реализуемого на вычислительном ресурсе системы потока данных.
Во второй главе формализуются разрабатываемые в диссертации методы построения структурных компонентов масштабируемых параллельных программ. Рассматривается использование принципов компонентного программирования как базовой концепции разработки масштабируемых параллельных программ для МВС СПОВ. Предлагаются единые для всех методов реализации правила описания интерфейсов масштабируемых компонентов. Разрабатываются правила и формы описания компонентов масштабируемых параллельных программ в виде граф-схем. Приводится алгоритм синтеза структурных компонентов параллельных программ, представленных в виде масштабируемых граф-схем.
Пересматриваются определения структур данных информационных потоков и правила их описания применительно к новым методам разработки масштабируемых программ. Выполняется разделение между описанием аппаратно-реализуемых компонентов и описанием аппаратно-независимых параллельных алгоритмов.
Определяется схема процесса разработки масштабируемых параллельных программ для МВС СПОВ различной конфигурации.
Разрабатывается многоуровневая модель разработки и взаимодействия компонентов масштабируемых параллельных программ МВС СПОВ, позволяющая адаптировать программное обеспечение при изменении не только конфигурации вычислительной системы, но и архитектуры, при этом изменению подлежит лишь некоторая часть компонентной модели, вместе с тем целостность структуры программного обеспечения сохраняется.
Разрабатываются алгоритм синтеза масштабируемых параллельных программ на базе структурно-декларативного метода, а также правила описания компонентов параллельных программ как в текстовой, так и в графической форме.
В третьей главе рассматривается применение структурно-
функционального и структурно-декларативного методов разработки в рамках принципов обобщенного программирования для создания структурных компонентов, реализующих типовые схемы распараллеливания.
Разрабатываются базовые структуры данных шаблонов информационных потоков.
Создается библиотека компонентов, реализующих типовые схемы распараллеливания, использование которой в значительной мере сокращает время разработки масштабируемых компонентов прикладных параллельных программ для МВС СПОВ различной конфигурации.
Рассматривается реализация разработанных методов программирования в
базисе макрообъектов системного уровня компонентной модели программирования, что характерно при создании структурно-процедурных программ для МВС СПОВ на макроуровне.
Показана возможность реализации созданных методов программирования для создания структурных компонентов в бинарном базисе системного уровня компонентной модели программирования, который характерен для реализации структурных вычислений на основе ПЛИС-технологии.
Приведены примеры решения прикладных задач, созданные на основе библиотеки типовых схем распараллеливания.
Сравнивается продуктивность разработки структурно-функциональным и структурно-декларативным методами.
В четвертой главе описывается созданный автором комплекс инструментальных средств разработки, позволяющий создавать на основе структурно-функционального и структурно-декларативного методов масштабируемые параллельные программы для МВС СПОВ различной конфигурации.
Приводится общая схема взаимодействия основных компонентов комплекса, в который входят:
интегрированная среда разработки программ и программных компонентов на языке структурно-процедурных вычислений "Argus";
интегрированная среда разработки компонентов параллельных программ в виде граф-схем "Easyo";
- средства тестирования и отладки "ArgusTest" и "ArgusDebugger".
Рассматриваются основные особенности функционирования компонентов
комплекса. Для интегрированной среды разработки программ и программных компонентов на языке структурно-процедурных вычислений "Argus" приводится описание особенностей пользовательского интерфейса и принципов процесса разработки.
Для интегрированной среды разработки компонентов параллельных программ в виде граф-схем "Easyo" приводится описание особенностей пользовательского интерфейса и принципов процесса разработки компонентов параллельных программ, представимых в виде граф-схем.
Таким образом, в диссертации формулируется и решается актуальная научная проблема разработки методов и средств создания масштабируемых параллельных программ на более высоком уровне за счет реализации методологии быстрой разработки (RAD) [25], а также использования новых форм и методов представления программных компонентов.
Внедрение полученных в диссертации результатов позволяет выполнять созданную один раз параллельную программу на различных конфигурациях МВС СПОВ без дополнительной доработки.
1. МЕТОДЫ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ
ДЛЯ МВС СПОВ
Структурно-функциональный и структурно-декларативный принципы разработки компонентов масштабируемых параллельных программ
Структурно-функциональный принцип синтеза масштабируемых компонентов параллельных программ заключается в том, что масштабируемые решения прикладных задач содержат функцию, которая на базе множества задействованных компонентов выполняет формирование вычислительной структуры в зависимости от характеристик реализуемого на вычислительном ресурсе системы потока данных [4].
Структурно-декларативный принцип синтеза масштабируемых компонентов параллельных программ заключается в том, что в описание компонентов, выполняемое в виде граф-схем, добавляются специальные операторы, задающие правила формирования вычислительной структуры в зависимости от характеристик реализуемого на вычислительном ресурсе системы потока данных. Данные операторы обрабатываются единой для всех компонентов процедурой (функцией) вывода, формирующей вычислительную структуру.
В рамках структурно-функционального подхода создается множество функций синтеза структур, в рамках структурно-декларативного подхода на базе одного универсального алгоритма синтеза, но управляемого с помощью специальных операторов, создается множество граф-схем компонентов масштабируемых параллельных программ. Структурно-функциональный подход основан на итеративных процессах анализа компонентов параллельных программ, структурно-декларативный - на базе рекурсивно-определенных граф-схем. Структурно-функциональный метод реализуется на базе последовательной программы, формирующей загрузочные модули, структурно-декларативный обладает возможностью распараллеливания, что позволит ускорить процесс построения. Оба метода равноправны и основываются на общей базе данных масштабируемых компонентов параллельных программ.
Предполагается, что в базе данных хранятся компоненты, которые отличаются не только по имени, но и по входным и выходным параметрам, такой принцип известен как перегрузка (overloading) [40], который используется при разработке рекурсивно-определенных граф-схем.
Описание компонента параллельного алгоритма состоит из интерфейсной части и части реализации. В интерфейсной части определяются: - уникальное в пределах именованного пространства имя компонента; - структура данных входящих потоков; - структура данных исходящих потоков; - входящие параметры управления; - исходящие параметры управления; - входящие параметры кадра; - исходящие параметры кадра; - контейнеры используемых компонентов. В части реализации структурно-функциональным методом определяется конструктор структуры компонента, в котором определена функция синтеза структуры компонента в зависимости от характеристик обрабатываемых потоков данных. В части реализации структурно-декларативным методом определяется конструктор структуры компонента, в котором определена рекурсивная граф-схема синтеза структуры компонента в зависимости от характеристик обрабатываемых потоков данных. Структура компонента параллельных структурно-процедурных алгоритмов приведена на рис. 1.7, на котором показана возможность реализации масштабируемых компонентов различными способами при единственной форме описания интерфейса компонента. Имя компонента в совокупности с типами структур входящего и исходящего потоков данных однозначно определяют его идентификатор в базе данных компонентов параллельных алгоритмов. Структуры входящего и исходящего потоков могут быть фиксированного размера, когда заранее определены все используемые типы данных, это означает, что компонент реализован как статическое решение. Если структура входящего или исходящего потока содержит массив неопределенной размерности, то это означает, что решение масштабируемое и может быть сконструировано для произвольного размера структуры данных обрабатываемых потоков информации. Структура входящего/исходящего потока может быть довольно простой, когда используется вектор однотипных элементов, либо сложной, когда используются структуры разнотипных элементов. Следует отметить, что в отличие от языков программирования, где элементарным объектом является байт, в данном случае любой тип данных может рассматриваться как битовый вектор. Входящие и исходящие параметры управления служат для параметризации функций конструкторов/деструкторов универсальных решений, для синтеза структурных схем алгоритмов в зависимости отданных параметров, например, таким параіиетром может являться коэффициент распараллеливания. Входящие и исходящие параметры кадра служат для определения структур данных взаимодействия между кадрами в многокадровой структурно-процедурной параллельной программе и используются в деструкторах структуры для выполнения операции сохранения накопленных результатов, при переходе к следующему кадру. Разработку компонентов параллельных программ можно разделить на ряд этапов: 1) исходя из математической постановки задачи, определяются структуры информационных потоков, общий параллельный алгоритм, правила размещения данных в каналах распределяемой памяти; 2) выполняется декомпозиция общего алгоритма на множество компонентов. Анализируются существующие в базе данных компоненты; 3) выполняются разработка и спецификация недостающих компонент, которые помещаются в базу данных; 4) исходя из ограничений аппаратных ресурсов, формируется кадровая форма выполнения задачи; 5) выполняется верификация созданной программы. Если созданная программа не может быть выполнена в силу аппаратных ограничений, то выполняется коррекция общего алгоритма, в связи с этим первоначальные шаги выполняются вновь; 6) выполняется отладка созданной программы. Следует отметить, что для помещения в библиотеку необязательно иметь готовую часть реализации, достаточно интерфейсной части. Начальный этап разработки направлен на общий анализ алгоритмов решаемой задачи, определения структур данных, необходимых библиотек, разработки статических решений, их верификации и спецификации.
На последующих этапах строится основное решение задачи, исходя из возможных ограничений системы: минимального/максимального количества вычислительных ресурсов системы, ресурсов памяти, пропускной способности каналов передачи данных, возможностей коммутационной системы. Структурная форма задачи переходит в структурно-процедурную, кадровую. Вопросы, связанные с методами преобразования в эффективную кадровую форму статических решений, рассматриваются в работах [18,19], задачи же предлагаемых в данной диссертации методов заключаются в формировании самодостаточных описаний параллельных алгоритмов, на основе которых возможно выполнение параллельных программ на МВС СПОВ различной конфигурации.
В следующих главах будут рассмотрены методы, реализующие изложенные принципы, а также представлены примеры использования структурно-функционального и структурно-декларативного методов для создания масштабируемых параллельных программ.
Многоуровневая модель разработки и взаимодействия компонентов масштабируемых параллельных программ МВС СПОВ
Отличительной особенностью компонентного программирования является раздельное определение интерфейсной части программы и части реализации [48]. В рамках разработки компонентов параллельных программ для МВС СПОВ необходимо определение правил описания интерфейсов масштабируемых потоков, а также правил описания части реализации компонентов параллельных программ, проецируемых на множество аппаратных ресурсов.
Взаимодействие между компонентами осуществляется через механизмы наследования и контейнеризации [49,50], в результате чего определяется многоуровневая модель. В многоуровневой модели компоненты нижних уровней определяют конфигурацию и управление аппаратными ресурсами вычислительной системы. Компоненты верхних уровней определяют структурные алгоритмы решения прикладных задач. Средние уровни позволяют расширить базовые интерфейсы за счет использования типовых схем распараллеливания и приведения общего компонентного интерфейса к некоторому стандартизованному уровню. Такая многоуровневая организация позволяет менять лишь некоторые уровни, сохраняя при этом общую целостность программного обеспечения.
Особенность разработки масштабируемых параллельных программ для МВС СПОВ заключается в том, что в определении интерфейсов содержатся как информационная структура потоков данных, так и управляющие параметры, используемые в процессе синтеза вычислительной структуры.
Для определения информационной структуры потоков данных используются как стандартизованные типы данных [58], так и определяемые на их основе новые типы данных, применяемые при решении прикладных задач. Для группировки объявлений различных типов данных используются так называемые именованные пространства [59], которые позволяют реализовать иерархическую структуру определений различных типов данных.
Как правило, для описания интерфейсов используется текстовая форма, записанная на языке, поддерживающем компонентное программирование, или некоторая реляционная (табличная) форма. Несмотря на значительное количество существующих систем программирования интерфейсов, ни один из них не сочетает в себе описание на структурном и процедурных уровнях. Структурный уровень подразумевает параллельно-конвейерные вычисления. Для их описания используются интерфейсы языков потоков данных, а также языков описания аппаратных решений VHDL [60]. Процедурный (управляющий) уровень необходим для параметризации алгоритмов синтеза вычислительных структур. В связи этим предлагается отличная от существующих форма описания объектов компонентного программирования, сочетающая структурные определения с управляющими, отличительной особенностью которой является включение в описание полей интерфейса определений их принадлежности к управляющей и структурной категориям. Данная форма обеспечивает возможность проецирования описания интерфейсов компонент на широко применяемые системы программирования, например, использующие IDL [62]. Далее рассматриваются составные элементы формы описания объектов компонентного программирования. Объявление новых типов (структур) данных потока выполняется аналогично известным формам описания на основе базовых и объявленных ранее типов данных. Декларация производится путем задания упорядоченного списка уникальных в пределах области объявления идентификаторов полей, составляющих структуру типов данных. Такое объявление возможно в следующих формах: структура данных, перечисление идентификаторов и объединение данных, причем, любой определенный таким образом тип данных может быть использован для определения многомерных массивов. Важным отличием при определении структуры данных потока от традиционных систем программирования является отсутствие ссылочного типа данных (указателей). В структуре д анных потока данные располагаются, согласно заданной последовательности, общий размер структуры данных определяется как сумма размеров составляющих ее элементов. В текстовой форме описание структуры данных потока выполняется следующим образом: attributes struct identifier templateypes-list struct-base typed-fields-list; где attributes - список атрибутов объявляемой структуры данных; struct - ключевое слово для объявления структуры данных; identifier - уникальное имя объявляемого типа в пределах используемого именованного пространства; templateypes-list — список идентификаторов шаблонных типов; struct-base - список наследуемых структур данных; typed-fields-list - список составляющих элементов структуры. Например, определение структуры, содержащей информацию о сотруднике, будет следующей: struct Developer A,B {charfj name; charfj address; A status; В code;} Здесь используются два параметризуемых типа А, В, а также вектора неопределенной на этапе разработки длины: пате и address. Определение размерности структуры возможно только на этапе исполнения, для чего используются соответствующие функции: length и sizeof. Функция sizeofiDeveloper) вернет неопределенное значение на этапе трансляции, в то же время, после инициализации размерность структуры определяется с помощью следующей записи: Developer int,byte d; d.name=new[50] ;d.address=new[80]; sizeof(d)=(length(d.name)+ length(d.address)) sizeof (char)+ sizeof(int)+ sizeof (byte); Тип данных - перечисление идентификаторов в потоке определяет нумерованный список логически связанных с контекстом определений идентификаторов. Размер перечисления определяется необходимым для кодирования нумерованного списка количеством комбинаций. В текстовой форме описание перечисления идентификаторов выполняется следующим образом: attributes епит identifier templateypes-list enum-base identifier-fields-list; где attributes - список атрибутов объявляемой структуры данных; епит - ключевое слово для объявления перечисления идентификаторов; identifier - уникальное имя объявляемого типа в пределах используемого именованного пространства; templateypes-list - список идентификаторов шаблонных типов; enum-base - список наследуемых структур данных; identifier-fields-list - упорядоченный список составляющих идентификаторов перечисления. Например, перечисление команд, выполняемых процессором, можно определить так: епит ProcessorCommandsfadd,sub,nul,div, shl,shr,abs,itiv, and,or,xor }; В данном случае результат функции sizeof(ProcessorCommands)=]log2 И [-4, где скобки ][ означают округление до ближайшего целого в большую сторону. В объединении данных в потоке данные располагаются в одном и том же информационном поле, размер которого определяется размером максимального элемента объявляемой структуры. В текстовой форме описание объединения данных выполняется следующим образом: attributes union identifier templateypes-list union-base typed-fields-list; где attributes - список атрибутов объявляемой структуры данных; union - ключевое слово для объявления объединения данных; identifier - уникальное имя объявляемого типа в пределах используемого именованного пространства; templateypes-list - список идентификаторов шаблонных типов; union-base - список наследуемых структур данных; typed-fields-list - список составляющих элементов структуры. Например, следующее определение позволяет осуществлять доступ к различным полям общей 64-битной структуры.
Анализ продуктивности разработки структурно-декларативным й структурно-функциональным методами
Рассмотрим структуру математического обеспечения МВС СПОВ. На рис. 4.1 приведена схема взаимодействия основных компонентов комплекса, в который входят: 1) Программа запуска программных компонентов комплекса и настройки параметров «Argus Manager»; 2) Интегрированная среда разработки программ и программных компонентов на языке структурно-процедурных вычислений «Argus IDE»; 3) Интегрированная среда разработки компонентов параллельных программ в виде граф-схем «Easyo IDE»; 4) Отладчик параллельных программ на МВС СПОВ «Argus Debugger»; 5) Утилита конфигурирования ПЛИС «Load FPGA»; 6) Средства тестирования МВС СПОВ «Argus Tests». Программа «Argus Manager» является стартовой страницей для большинства компонентов, входящих в систему; из «Argus Manager» также осуществляется настройка некоторых параметров, общих для всех компонентов системы.
Среда разработки «Argus IDE» позволяет разрабатывать параллельные программы для МВС СПОВ на языке структурно-процедурных параллельных вычислений «Argus» [74]. Основной задачей данной системы является ускорение процесса разработки параллельных программ для МВС СПОВ различной конфигурации за счет интеграции всех необходимых для этого средств в одну среду, обеспечивающую интерактивную подготовку исходных текстов и загрузочных модулей параллельных решений. К основным особенностям данной системы можно отнести многооконную организацию пользовательского интерфейса [35], где используются два типа окон, к первому типу относятся окна специализированного текстового редактора, предназначенного для ввода исходных текстов параллельных программ, ко второму - множество вспомогательных окон, через которые осуществляется доступ к элементам управления процессом разработки.
К элементам управления и контроля процессом разработки относятся: список сообщений разработчику, объектная модель программы, таблица свойств объектов программы, журнал событий. В систему встроена справочная система как по принципам работы среды разработки, так и по языку структурно-процедурного параллельного программирования «Argus» [4].
В процессе трансляции после успешно пройденных этапов синтаксического контроля и формирования объектной модели программы происходит обращение к подсистеме отображения графа задачи на архитектуру системы [76], которая определяет загрузку физических ресурсов базовых модулей в соответствии со структурой задачи, выполняя при этом функции трассировки и назначения. Использование данной подсистемы освобождает разработчика от явного программирования коммутационной системы, что является довольно трудоемким процессом. Язык параллельного структурно-процедурного программирования «Argus» позволяет использовать конструкции как прямого программирования связей между элементами базовых модулей, так и задавать схемы виртуальных компонентов параллельных структурно-процедурных программ, для которых конфигурирование ресурсов будет выполнено автоматически [17].
Среда разработки «Easyo IDE» позволяет разрабатывать компоненты параллельных программ в виде граф-схем для МВС СПОВ различной конфигурации. Язык граф-схем используется для эквивалентного описания компонентов параллельных программ, для которых их текстовое представление на языке структурно-процедурного параллельного программирования не является столь выразительным как графическое. Граф-схема - это альтернативная вспомогательная форма, которая используется для описания структурной части задачи, в то время как для описания процедурной составляющей используется текстовое описание последовательных программ контроллеров распределенной памяти на языке «Argus».
К основным особенностям данной системы можно отнести многооконную организацию пользовательского интерфейса [35], где есть два типа окон. К первому типу относятся окна специализированного многостраничного редактора граф-схем, предназначенного для ввода исходных граф-схем структурных компонентов параллельных программ, ко второму -множество вспомогательных окон, через которые осуществляется доступ к элементам управления процессом разработки. К элементам управления и контроля процессом разработки относятся: дерево объектов граф-схемы, окно доступа к файлам базовых компонентов, журнал событий.
Если текстовый редактор исходных модулей параллельных программ подразумевает последовательный ввод символов, то графический соответственно последовательный ввод графических объектов граф-схем компонентов параллельных программ. Для текстового редактора рабочий файл представляет собой список строк, для графического редактора файл граф-схем состоит из множества страниц одинакового размера. Под графическими объектами будем понимать некоторое множество графических примитивов, объединенных в группы. Под графическим примитивом будем понимать некоторую сегментированную последовательность кривых первого и второго порядков, задаваемых крайними и внутренними точками сегмента. В качестве графической функции, отображаемой на точках сегмента, используется кривая Безье. Изображение примитива, построенное из таких сегментов, может быть замкнутым, когда начальная и конечная точки множества сегментов совпадают, при этом выполняется процедура заливки внутренней области примитива с заданным цветом и стилем. Каждый примитив содержит текстовый атрибут, который выводится относительно прямоугольной области, занимаемой сегментированной фигурой.
Для однозначной идентификации у каждого примитива существует текстовый атрибут, задающий класс объекта. Для граф-схем компонентов параллельных программ разработана базовая классификационная схема, на основе которой возможна разработка идентифицируемых объектов граф-схем.
Графические примитивы объединяются в иерархические группы, причем для каждой группы возможно задать как текстовый атрибут, так и классификационный. Исходя из этого, объектом граф-схемы может являться как сложная многоуровневая группа примитивов, так и одиночный примитив. В любом случае такой объект должен быть классифицирован посредством задания соответствующего текстового атрибута, иначе такой объект во время трансляции не будет идентифицирован.
Для определения структурных взаимосвязей между объектами граф-схем используется специальный класс незамкнутых графических примитивов, именуемых «связями». Связи устанавливаются между объектами через задания в их пространстве связующих точек, координаты которых привязаны к координатам владеющих ими объектов.
Для системы «Easyo IDE» разработана базовая библиотека классифицированных объектов, из которых составляются граф-схемы компонентов структурно-процедурных параллельных программ. Быстрый доступ к таким объектам осуществляется через одно из вспомогательных окон на основе технологии«Drag&Drop» [35].
В процессе разработки граф-схема транслируется в эквивалентное текстовое представление в виде включаемого модуля на языке структурно-процедурных параллельных вычислений, возможна и обратная трансляция из текстового представления в графическое, такая функциональность обеспечивается на уровне взаимодействия сред разработки «Argus IDE» и «Easyo IDE» через подсистему трансляции между двумя эквивалентными представлениями.
Примеры построения граф-схем компонентов параллельных программ в среде разработки «Easyo IDE»
Отладчик параллельных программ позволяет одновременно работать с 16 КРП БМ. Доступ к функциональным возможностям осуществляется через основное и локальное меню.
Окно "КРП" содержит панели, отображающие информацию о регистрах КРП и сегментах памяти, а также меню, через пункты которого можно выполнить команды управления вычислительным процессом, такие как «пуск» и «шаг» и т.д.
Через меню «Настройки» активизируется форма ввода параметров, такие как формат вывода чисел (шестнадцатеричный, беззнаковый, знаковый). Комплекс математического обеспечения МВС СПОВ использовался для решения задач ЦОС, ЦОИ, математической физики, символьной обработки в следующих научно-исследовательских работах: -"Создание экспериментального образца ВПА-1, ВПА-2 и компонентов системного программного обеспечения", руководитель НИР - член-корреспондент РАН И.А. Каляев; - "Создание экспериментального образца МНМС и компонентов системного программного обеспечения", руководитель - к.т.н. И.И. Левин. В частности, с использованием программных средств МВС СПОВ и-предложенных методов были разработаны компоненты конвейерного арифметического и логического умножения матрицы на вектор, граф-схемы которых представлены в приложении. Применение комплекса математического обеспечения позволило сократить время создания параллельных программ в 3-4 раза, что подтверждается справками использования результатов диссертации. 1)Для реализации методов разработки масштабируемых программ для МВС СПОВ предложена структура комплекса математического обеспечения, основными компонентами которого являются: интегрированная среда разработки параллельных программ «Argus IDE» на базе языка структурно-процедурных вычислений «Argus», интегрированная среда разработки компонентов параллельных программ в виде граф-схем «Easyo IDE», интерактивный отладчик параллельных программ «Argus Debugger». 2) Для эффективной разработки параллельных решений прикладных задач на базе языка программирования структурно-процедурных вычислений «Argus» создана интегрированная среда разработки параллельных программ и программных компонентов «Argus IDE», которая за счет интеграции необходимых для процесса разработки средств в одну систему позволяет ускорить процесс создания параллельных программ для МВС СПОВ различной конфигурации. 3) Для эффективной разработки компонентов параллельных решений прикладных задач, представимых в виде граф-схем, создана интегрированная среда разработки программных компонентов в виде граф-схем «Easyo IDE», которая за счет интеграции необходимых для процесса разработки средств в одну систему позволяет ускорить процесс создания компонентов параллельных программ для МВС СПОВ различной конфигурации. 4) Создана базовая библиотека классов статических и масштабируемых компонентов параллельных программ. 5) Использование инструментальных средств комплекса математического обеспечения на основе структурно-функционального и структурно-декларативного методов позволяет создавать масштабируемые решения прикладных задач для МВС СПОВ различной конфигурации с реальной производительностью, близкой к пиковой, для различных вариантов распараллеливания, обеспечивая при этом в несколько раз сокращение времени разработки.
Основной научный результат диссертации заключается в модернизации структурно-функционального метода и создании нового структурно-декларативного метода синтеза масштабируемых программ для МВС СПОВ различной конфигурации, а также создании комплекса инструментальных средств для разработки масштабируемых программ на основе данных методов.
При проведении исследований и разработок по теме настоящей работы получены следующие теоретические и прикладные результаты: 1) модернизирован комплекс математического обеспечения МВС СПОВ за счет расширения среды исполнения и средств разработки и взаимодействия с пользователем, что в несколько раз позволяет повысить продуктивность разработки масштабируемых приложений; 2) предложены принципы разработки и синтеза масштабируемых параллельных программ на основе идеологии компонентного программирования для МВС СПОВ различной конфигурации; 3) доработан структурно-функциональный метод разработки и синтеза масштабируемых параллельных программ в части его адаптации к идеологии компонентного програ ммирования, что позволяет использовать данный метод при разработке процедур масштабирования на различных языках программирования и добиваться при этом оптимизации синтезируемых структур компонентов параллельных вычислений; 4) разработан новый структурно-декларативный метод описания масштабируемых параллельных программ в виде граф-схем, обеспечивающий наглядность представления и минимизацию объема описания структурных компонентов параллельных вычислений; 5) разработаны унифицированные типовые схемы распараллеливания, позволяющие на их основе создавать масштабируемые параллельные программы за минимальное время; 6) создан комплекс инструментальных средств на базе интегрированной среды разработки масштабируемых параллельных программ и программных компонентов как в текстовом, так и в графическом представлении, использование которого позволяет в 2-4 раза ускорить процесс создания масштабируемых параллельных программ; 7) разработана информационная структура многопользовательской базы данных компонентов масштабируемых параллельных программ, реализуемых на МВС СПОВ различной конфигурации. По теме диссертационной работы опубликовано 18 печатных работ, из них: 4 статьи, 12 тезисов и материалов докладов на российских и международных научно-технических конференциях, 2 свидетельства о регистрации программ для ЭВМ. Разработанные методы и проведенные экспериментальные исследования доказывают возможность создания инструментальных средств разработки масштабируемых параллельных программ для оригинальных МВС МП в соответствии с современными требованиями, обобщенными в идеологии быстрой разработки приложений.