автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Методы и инструментальные средства разработки масштабируемых параллельных программ для многопроцессорных систем со структурно-процедурной организацией вычислений

кандидата технических наук
Шматок, Алексей Владимирович
город
Таганрог
год
2004
специальность ВАК РФ
05.13.11
цена
450 рублей
Диссертация по информатике, вычислительной технике и управлению на тему «Методы и инструментальные средства разработки масштабируемых параллельных программ для многопроцессорных систем со структурно-процедурной организацией вычислений»

Автореферат диссертации по теме "Методы и инструментальные средства разработки масштабируемых параллельных программ для многопроцессорных систем со структурно-процедурной организацией вычислений"

На правах рукописи

ШМАТОК Алексей Владимирович

МЕТОДЫ И ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА РАЗРАБОТКИ МАСШТАБИРУЕМЫХ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ ДЛЯ МНОГОПРОЦЕССОРНЫХ СИСТЕМ СО СТРУКТУРНО-ПРОЦЕДУРНОЙ ОРГАНИЗАЦИЕЙ ВЫЧИСЛЕНИЙ

Специальность 05.13.11 - "Математическое и программное

обеспечение

вычислительных машин, комплексов и компьютерных сетей"

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

Таганрог-2004

Работа выполнена на кафедре "Интеллектуальные и многопроцессорные системы" (ИМС) ТРТУ и в Научно-исследовательском институте многопроцессорных вычислительных систем (НИИ МВС) Государственного образовательного учреждения высшего профессионального образования "Таганрогский государственный радиотехнический университет" (ТРТУ).

НАУЧНЫЙ РУКОВОДИТЕЛЬ: член-корреспондент РАН,

доктор технических наук, профессор Каляев Игорь Анатольевич

ОФИЦИАЛЬНЫЕ доктор технических наук, профессор

ОППОНЕНТЫ: Золотовский Виктор Евдокимович (ТРТУ)

кандидат технических наук, доцент Букатов Александр Алексеевич (ЮГИНФО)

ВЕДУЩАЯ ОРГАНИЗАЦИЯ:

Государственное научное учреждение "Научно-иссл едовател ьски й институт "Специализированные вычислительные устройства защиты и автоматика"" Минобразования России (ГНУ НИИ "Спецвузавтоматика")

Зашита состоится "24"декабря 2004 г. в 14°° на заседании диссертационного совета Д 212.259.05 в Таганрогском государственном радиотехническом университете по адресу: 347928, г. Таганрог, ул. Чехова, 2, корп. И, комн. 347.

С диссертацией можно ознакомиться в библиотеке ТРТУ.

Автореферат разослан ноября 2004 г.

Просим Вас прислать отзыв, заверенный печатью учреждения по адресу: 347928, г. Таганрог, Ростовская область, ГСП-17А, пер. Некрасовский, 44, Таганрогский государственный радиотехнический университет Ученому секрез apio диссертационного совета Д 212.259.05 Кухаренко А.П.

Ученый секретарь диссертационного совета кандидат технических наук, доцент

Jü9

ОБЩ4Я ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы. В настоящее время суперкомпьюгерные технологии, основанные на mhoi опроцессорных вычислительных системах с массовым параллелизмом (МВС МП), становятся доступными не только в специальных исследовательских центрах Министерства обороны или Российской академии наук, а также на крупных промышленных предприятиях, но и приходят в повседневную жизнь, и сфера их применения охватывает практически все виды человеческой деятельности. В то же время разработка эффективного программного обеспечения для таких систем является сложной научно-технической задачей, требующей привлечения высококвалифицированных специалистов

Большинство существующих методов разработки параллельных программ для современных МВС основаны на распараллеливании последовательных алгоритмов, при этом распараллеливание осуществляется на локальных участках и не рассматривается структура задачи в целом, что приводит к потере значительной части возможностей по эффективной реализации задач на параллельных вычислительных системах. Следует учитывать, что разработка параллельных решений прикладных задач не должна выполняться для фиксированного вычислительного ресурса, так как в современных многопроцессорных системах выполняется наращивание вычислительной мощности за счет добавления новых вычислительных модулей. В связи с этим развиваются технологии масштабируемых параллельных программ, отличительной особенностью которых является эффективное использование во время выполнения доступных ресурсов системы с целью повышения производительности вычислений, что требует разработки адекватных технологическим возможностям современных вычислительных систем новых методов программирования.

Распространение новых нетрадиционных методов разработки масштабируемых параллельных программ затруднительно без использования высокоуровневых средств и методов, ориентированных на широкий круг пользователей Создание таких средств позволит сократить число высококвалифицированных специалистов, вовлеченных в разработку прикладных программ, что, в конечном счете, снизит стоимость решения задач на МВС и повысит их рентабельность.

Одним из перспективных направлений в области построения высокопроизводительных вычислительных систем являются МВС со структурно процедурной организацией вычислений (СПОВ) и программируемой архитектурой (ПА). Технология создания МВС СПОВ разработана в НИИ МВС ТРТУ под руководством академика РАН A.B. Каляева. Основная идея параллельных вычислений, реализуемых в МВС СПОВ и ПА, заключается в том, чтобы позволить пользователю с помощью программных средств и соответствующей аппаратной поддержки программировать и формировать в исходной универсальной системе на время решения специализированные вычислители, адекватные структуре решаемой задачи или ее фрагменту.

В НИИ МВС ТРТУ разрабатываются технологии создания масштабируемых параллельных решений прикладных задач. В работах A.B. Каляева, И.И. Левина. И.М. Пономарева были заложены базовые принципы технологии разработки масштабируемых параллельных программ для МВС СПОВ различных конфигураций, основанные на языковых средствах и методах их применения Однако не были созданы методы описания масштабируемых параллельных программ и соответствующие инструментальные средства разработки, поддерживающие современные концепции визуального программирования и быстрой

-------------............... —-г- (RAD)

Испольювание таких инструментов позволило бы ф толсоздания

параллельных прснрамм, но и поднять его на новый уровень, не требующий высокой квалификации от разработчиков прикладных программ.

В связи с этим, основываясь на сформулированных ранее базовых принципах технологии разработки масштабируемых параллельных программ, диссертационная работа направлена на развитие существующих и создание новых методов и инструментальных средств разработки масштабируемых параллельных программ, обеспечивающих не только достижение требуемых характеристик вычислительного процесса при решении прикладных задач, но и достаточно высокий уровень процесса разработки для прикладного программирования, не требующий от разработчика высокой квалификации в области параллельных вычислений.

Цель работы и задачи исследования. Целью диссертационной работы является создание методов описания и инструментальных средств разработки масштабируемых параллельных программ для реализации структурно-процедурных вычислений на различных конфигурациях МВС СПОВ.

Для достижения этой цели в работе решаются следующие задачи:

1) исследуются средства и методы организации параллельных вычислений для МВС с массовым параллелизмом,

2) исследуются формы представления структурно-процедурных параллельных программ;

3) разрабатываются формы представления масштабируемых параллельных алгоритмов как в текстовом виде, так и в виде граф-схем;

4) разрабатывается новый метод описания структурных компонентов масштабируемых параллельных программ в виде граф-схем для реализации на МВС СПОВ различной конфигурации;

5) создается комплекс инструментальных средств, основанный на идеологии быстрой разработки и визуального программирования, позволяющий реализовывать предложенные методы создания масштабируемых параллельных программ и программных компонентов для МВС СПОВ различной конфигурации;

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

Методы исследования. При проведении исследований были использованы элементы теории вычислительных систем, теория графов, теория множеств.

Научная новизна заключается в создании новых методов описания и разработки масштабируемых параллельных программ и принципов создания оригинального комплекса инструментальных программных средств на их основе для реализации на МВС СПОВ различной конфигурации.

К числу наиболее важных результатов диссертации относятся:

1) новая графическая форма описания структурных компонентов параллельных алгоритмов, отличающаяся от известных введением в граф-схемы нового класса операторных вершин, задающих правила автоматического синтеза вычислительной структуры в зависимости от характеристик обрабатываемых потоков данных,

2) усовершенствованный структурно-функциональный метод разработки масштабируемых параллельных программ в части адаптации к идеологии компонентно-ориентированного программирования;

3) новый структурно-декларативный метод разработки масштабируемых параллельных программ, отличающийся от известных использованием рекурсивно-определяемой _ формой., представления информационных графов параллельных алгоритмов^

4) учифициройаотчые^йповы^ схемы распараллеливания, комбинирование кото-

I ™! < I *

I

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

Достоверность и обоснованность полученных в работе результатов подтверждается полноюй и корректностью исходных посылок, теоретическим обоснованием, непротиворечивостью математических выкладок. Исследования и эксперименты проведены на действующих образцах МВС СПОВ различной конфигурации. Получены два свидетельства о регистрации программ для ЭВМ.

Научная и практическая ценность работы.

В диссертационной работе решена важная научно-техническая задача, заключающаяся в развитии как теории программирования, так и технологии создания инструментальных средств разработки масштабируемых параллельных решений прикладных задач для МВС СПОВ. Научная ценность работы заключается в усовершенствовании структурно-функционального и создании нового структурно-декларативного методов разработки масштабируемых параллельных программ. Данные методы позволяют разрабатывать масштабируемые параллельные решения прикладных задач, которые могут быть выполнены на МВС СПОВ различной конфигурации.

Практическая ценность работы заключается в создании оригинального комплекса инструментального программного обеспечения, построенного на базе интегрированной среды разработки параллельных программ, использование которой позволяет в 2-4 раза ускорить процесс создания масштабируемых параллельных программ и, благодаря использованию наглядной графической формы описания масштабируемых параллельных алгоритмов, сделать процесс разработки приложений доступным не только высококвалифицированным специалистам в области параллельных вычислений, но и для широкого круга пользователей.

Реализация и внедрение результатов работы. Материалы диссертации использованы при проведении ряда госбюджетных и хоздоговорных НИР, выполняемых в НИИ МВС ТРТУ. Предложенные методы и инструментальные средства разработки внедрены в НИИ МВС ТРУТУ, в/ч 11135 (г. Москва), в/ч 26165 (г. Москва), ООО Н110 «Роста» (г. Москва).

Апробация работы. Основные результаты работы докладывались и обсуждались на всероссийских и международных научно-технических конференциях и выставках.

На международной конференции "Интеллектуальные многопроцессорные системы (ИМС'99)", г. Таганрог, 1-5 сентября 1999 г.; на международной конференции ■'Искусе(венный интеллект", п. Кацивели, Украина, 2000, 2002 г.г.; на 3-ей международной научно-технической конференции "'Электроника и информатика - XXI век", Зеленоград-Москва, 2000 г., на всероссийской научной конференции "Высокопроизводительные вычисления и их приложения", Черноголовка, 2000 г.; на международной научно-технической конференции "СуперЭВМ и многопроцессорные вычислительные системы", Таганрог, 2002 г.; на международной конференции "Интеллектуальные и многопроцессорные системы", пос. Дивноморское, 2001, 2003г.г., пос. Кацивели 2004 г.

На выставке «Информатика и информационные технологии», г. Берлин (Германия), 2002 г.

Основные положения и результаты, выносимые на защиту:

- модернизированный структурно-функциональный метод разработки масштабируемых параллельных программ для МВС СПОВ;

-новый структурно-декларативный меюд разработки масштабируемых параллельных программ для МВС СПОВ;

- алгоритм сишеза структурных компонентов параллельных программ, приставленных в виде масштабируемых граф-схем.

-интегрированная среда разработки струкIурно-процедурных масштабируемых параллельных программ и программных компонентов как в текстовом, так и в I рафическом представлении.

Личный вклад автора. Все научные и практические результаты, анализ структуры типовых информационных потоков и типовых схем распараллеливания, представленных в виде рекурсивно-определенных граф-схем, адаптация структурно-функционального и создание нового структурно-декларативного методов, разработка информационной структуры базы данных компонентов параллельных программ, создание интегрированной среды разработки структурно-процедурных масштабируемых параллельных программ и программных компонентов как в текстовом, так и в графическом представлении, получены автором лично

Публикации. По теме диссертационной работы опубликовано 18 печатных работ, из них: 4 статьи, 12 тезисов и материалов докладов на российских и международных научно-технических конференциях, 2 свидетельства о регистрации программ для ЭВМ.

Структура и объем работы. Диссертация состоит из введения, четырех глав с выводами, заключения, списка использованных источников из 76 наименований и приложений. Диссертация содержит 172 страницы печатного текста и 90 рисунков

КРАТКОЕ СОДЕРЖАНИЕ РАБОТЫ

Во введении обоснована актуальность работы, дана ее общая характеристика, сформулированы цель и задачи исследования.

В первой главе приведен анализ современных методов разработки параллельных программ для МВС с массовым параллелизмом. Определены основные проблемы, связанные с разработкой прикладных параллельных программ Выделяется ряд оригинальных проектов, направленных на преодоление существующих проблем в области создания суперЭВМ, а также методов и средств их программирования. Рассматриваются МВС со структурно-процедурной организацией вычислений, анализируются отличительные особенности архитектуры и принципы разработки параллельных программ для МВС СПОВ.

Предлагается модернизация комплекса математического обеспечения МВС СПОВ в части расширения средств разработки и взаимодействия с пользователем. Схема взаимодействия компонентов модернизированного комплекса приведена на рис.1. В него входят три подсистемы, средства разработки и взаимодействия с пользователем, среда исполнения параллельных программ, система управления вычислительными ресурсами МВС СПОВ.

После модернизации первой подсистемы программирование МВС СПОВ осуществляется не только на базе языковых средств, а в создаваемой автором интегрированной среде разработки, содержащей: средства ввода и редактирования исходных текстов параллельных программ и граф-схем программных компонентов, трансляторы в объектное представление, конверторы между графической и текстовой формой описания, средства доступа к базе данных компонентов параллельных программ, отладчик параллельных программ, средства тестирования работоспособности оборудования базовых модулей МВС СПОВ

Модернизация второй подсистемы позволяет реализовать многопользовательский сервер вычислительных ресурсов, в задачи которого входи I обеспечение многоуровнево! о взаимодействия пользовательских процессов с оборудованием базовых

модулей МВС С'ПОВ.

На уровне прямого доступа к вычислительным ресурсам со стороны прикладных процессов обеспечивается' загрузка конфигурации. загр\зка параллельных программ в контроллеры распределяемой памяти, передача команд управления вычислительным процессам, ввод/вывод информации из каналов распределяемой памяти. Уровень прямого доступа позволяет получить единственному прикладному процессу монопольные права на взаимодействие с оборудованием базовых модулей МВС СПОВ.

10 я

с

и

г €

= 2 з Ъ

лг

II

БД комшшеигов параллельных лр<м рячм

I

Траис;«ггорк^

тштт/.

Исходные тексты/ гряф-схсмы

( релггм рпработки н шннмокНствия с полыооателем

$$ 3«Гру1ЧНК

г

£ягр> зочные милч.ш

т

Щ> - Эмулятор

Среда ясиолненния

1МГН 1ЖН к 45]

БИ,

ГйпТН [Ж> к 451

"Чи

МВС СПОВ

Вычислит сльиые ресурсы

Рис 1. Схема взаимодействия компонентов комплекса математического обеспечения

МВС СПОВ.

На уровне клиентских запросов со стороны прикладных процессов подсистемой выполняются функции планирования ресурсов и компоновки масштабируемых модулей в зависимости от конфигурации и текущей занятости ресурсов другими задачами. Данный уровень позволяет взаимодействовать с оборудованием МВС СПОВ сразу нескольким прикладным процессам, для этого планировщик заданий упорядочивает обработку клиентских запросов, придавая аппаратно-программному комплексу функциональность многоканальной системы массового обслуживания.

Вычислительный процесс в МВС СПОВ описывается информационным графом, определяемым на основе математической постановки задачи. Множество вершин информационного графа задачи состоит из трех подмножеств, множества входных вершин, множества операционных вершин и множества выходных вершин. При структурной организации вычислений каждой операционной вершине графа ставится в соответствие процессор, настроенный на выполнение заданной операции. Каждой входной и выходной вершине ставятся в соответствие каналы передачи данных, настроенные на чтение и запись соответственно. При этом коммутационная система обеспечивает обмен данными между объектами системы: процессорами, каналами распределяемой памяти в соответствии с дугами информационного графа.

Для сложных научно-технических задач количество операционных вершин информационного графа может значительно превосходить количество процессоров системы. В этом случае выполняется преобразование информационного графа в структурно-процедурную форму, реализуемую на имеющемся вычислительном ресурсе, для чего информационный граф разбивается на множество структурно-реализуемых на вычислительном ресурсе системы фрагментов задачи - кадров, которые выполняются последовательно, при этом организация вычислений из структурной переходит в структурно-процедурную.

Процесс смены кадров выполняется в соответствии с последовательным алгорит-

мом (процедурой), определяемым решаемой задачей. На время выполнения каждого кадра в структуре многопроцессорной системы организуется вычислительный конвейер, через который проходит поток операндов, извлекаемых из каналов распределяемой памяти, либо внешних каналов, настроенных на чтение. Потоки результатов направляются к каналам, настроенным на запись. Коммутационная система обеспечивает выделенные каналы связи между объектами системы, тем самым обеспечивая детерминированный процесс прохождения потоков в отличие от классических архитектур потока данных.

На рис.1 в подсистеме «вычислительные ресурсы» приведена логическая структура МВС СПОВ, состоящая из базовых модулей, объединенных межмодульной коммутационной системой. В структуру базового модуля входят: П,- - процессоры, КП, -каналы распределяемой памяти, ВК, - внешние информационные каналы, взаимосвязанные через внутреннюю коммутационную систему.

Предлагаемая структура МВС СПОВ позволяет выполнять статические, параметризуемые и масштабируемые параллельные программы.

Статическая параллельная программа в МВС СПОВ реализуется на неизменном в процессе исполнения множестве вычислительных ресурсов, при этом параметры процедур доступа к каналам распределяемой памяти или внешним информационным каналам определены на этапе разработки, что фиксирует объем обрабатываемых данных при решении задачи.

Параметризуемая параллельная программа для МВС СПОВ отличается от статической тем, что процесс ее исполнения динамически определяется множеством параметров, задающих количественные характеристики информационных потоков, что позволяет варьировать параметры реализации задачи, изменяя при этом объемы обрабатываемых данных. Структурная часть, так же как и у статической программы, остается неизменной в процессе исполнения.

Масштабируемая параллельная программа для МВС СПОВ отличается от параметризуемой тем, что во время выполнения определяется не только глубина обрабатываемых потоков данных, но и структура вычислительной системы. Изменение структурной составляющей позволяет динамически задавать степень распараллеливания в зависимости от конфигурации МВС. Таким образом, разработка масштабируемой программы представляет собой обобщенное решение задачи, на основе которого синтезируются параллельные программы с различной степенью распараллеливания.

Основываясь на принципах компонентного программирования, в диссертации разработаны правила описания масштабируемых параллельных программ, позволяющие в рамках единого подхода к организации масштабируемых параллельных интерфейсов выполнять реализацию программных модулей различными методами. В диссертации формализуется и дорабатывается структурно-функциональный метод, а также разрабатывается новый структурно-декларативный метод программирования компонентов масштабируемых параллельных программ, а также создается интегрированная среда разработки параллельных программ для МВС СПОВ, позволяющая создавать эквивалентные описания компонентов параллельных программ как в текстовой, так и в графической формах.

Основная идея структурно-функционального метода разработки и синтеза масштабируемых компонентов параллельных программ заключается в том, что масштабируемые решения прикладных задач содержат функцию, которая на базе множества задействованных в параллельной программе компонентов выполняет формирование вычислительной структуры в зависимости от параметров реализуемого на вычислительном ресурсе системы потока данных. Модификация данного метода

выполнена в части ею адаптации к идеологии компонентного про*раммироваиия. что позволяет про! раммировать функции масштабирования не только на специализированном языке структурно-процедурных вычислений, но и на базе распространенных алгоритмических языков.

Основная идея нового структурно-декларативного метода заключает ея в том. что в описание компонентов, выполняемое в виде рекурсивно определяемых граф-схем, добавляются специальные операторы, задающие правила формирования вычислительной структуры в зависимости от характеристик реализуемого на вычислительном ресурсе системы потока данных.

В рамках структурно-функционального метода создается множество функций синтеза структур, в рамках структурно-декларативного метода программирование выполняется на базе одного универсального алгоритма синтеза, управляемого с помощью специальных операторов распараллеливания. Структурно-функциональный метод основан на итеративных процессах анализа компонентов параллельных программ, структурно-декларативный метод - на базе рекурсивно-определенных граф-схем. Структурно-функциональный метод реализуется на базе последовательного процесса, формирующего загрузочные модули, структурно-декларативный метод обладает возможностью распараллеливания, что позволит ускорить процесс построения вычислительных структур Применение созданных методов основывается на общей базе данных масштабируемых компонентов параллельных программ.

Во второй главе формализуются разрабатываемые в диссертации методы построения структурных компонентов масштабируемых параллельных программ. Рассматривается использование принципов компонентного программирования как базовой концепции разработки масштабируемых параллельных программ для МВС СПОВ. Предлагаются единые для всех методов реализации, правила описания интерфейсов масштабируемых компонентов. Разрабатываются правила и формы описания компонентов масштабируемых параллельных программ в виде граф-схем. Приводится алгоритм синтеза структурных компонентов параллельных программ, представленных в виде масштабируемых граф-схем.

В рамках настоящей работы создается методология разработки масштабируемых параллельных программ для МВС СПОВ различной конфигурации, построенная на базе идеологии компонентного программирования. Для этого пересматриваются определения структур данных информационных потоков и правила их описания применительно к новым методам разработки масштабируемых программ. Выполняется разделение между описанием аппаратно-реализуемых компонентов и описанием аппаратно-независимых параллельных алгоритмов.

При традиционных мультипроцедурных вычислениях компонентов во время выполнения создается некоторый блок данных в оперативной памяти вычислительной системы, содержащий необходимую информацию для вызовов методов компонента, осуществления доступа к его полям, свойствам и атрибутам, что выполняется последовательным процессом вычислительной системы В диссертации показывается, что для МВС СПОВ компонентом является функционально-законченная вычислительная структура, реализуемая подмножеством вычислительных ресурсов системы и обрабатывающая поток данных, согласно заданному алгоритму и управляющим си1 налам, то есть поддерживаемому интерфейсу и протоколу передачи данных. При этом отличительной особенностью описания масштабируемых компонентов является наличие в структуре данных обрабатываемых потоков, векторов неизвестной на этапе разработки размерности Определение размерности векторов в структуре данных потока осуществляется на этапе инициализации (синтеза структуры), когда определены

доступные ресурсы вычис жтсльной системы. Па рис.2 приведена схема инициализации прикладной задачи на основе масштабируемою описания, где синтез вычислительной структуры осуществляется, исходя из описания вычислительных ресурсов и на основе библиотечных компонентов, размещенных в базе данных. В результате формируется

статическое описание времени

выполнения, синтезированное для доступных вычислительных ресурсов вычислительной системы.

В диссертации даются определения потоков с однородной информационной структу рой, типизированной структурой, и с произвольной структурой, состоящей из множества элементов различных типов данных. Определяются правила описания структур данных информационных потто-ков. интерфейсов, а также масштабируемых компонентов, параллельных программ.

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

Разрабатываемые в рамках диссертационной работы структурно-функциональный и структурно-декларативный методы направлены на формирование структуры масштабируемых компонентов параллельных программ, что осуществляется в зависимости от параметров обрабатываемых потоков данных.

Итеративные процессы, являющиеся основой структурно-функционального метода синтеза, обычно задаются в виде циклов. Например, функциональную обработку элементов одномерного массива х, состоящего из N элементов, можно реализовать итеративным способом, исходя из следующего фрагмента программы

for(inl i-0,i<N;i++)( y[i]=f(x[i]),j //Здесь/- некоторая функция обработки.

Обеспечение той же функциональности возможно за счет рекурсивных вызовов функций, например как в следующем фрагменте программы-

voidfuncfint i)(if(i>0){y[i]=f(x[i]), func(i-l). ¡¡//условие выхода, рекурсивный вызов

Запуск рекурсивного процесса осуществляется вызовом функции funcfN),

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

Использование текстовой формы для описания параллельных алгоритмов является более удобной для структурно-функционального метода, в то же время представление масштабируемых компонентов в виде граф-схем является более наглядным и предпочтительным для структурно-декларативного метода.

Создаваемый в диссертации новый структурно-декларативный метод основывается на графическом описании масштабируемых компонентов Граф-схема компонента строится из множества вершин обработки потоков данных, а также вершин, задающих операторы распараллеливания потоков в зависимости от и\ количественных характеристик и управляющих параметров Потоки данных между вершинами в граф-схеме задаются с помощью помеченных дуг Каждый поток определяется заданным

Статическое описание (времен« «ылолненмя)

Ж

Смите»

ЗЕ

Масштабируемое описание

Описание вычислительных ресурсов

Рис 2. Схема инициализации прикладной задачи на основе масштабируемого описания

типом данных, а также уникальным в пределах области видимости идентификатором, который в граф-схемах отображается в поле текстовых меток дуг. Управляющие параметры интерфейса граф-схемы используются в процессе синтеза.

Описание 1 раф-схемы масштабируемого компонента параллельной программы предложено формализовать в виде графа Ес), где - множество вершин, Ес -

множество дуг. Множество вершин (Ус состоит из четырех подмножеств: Щ = /, и Рс и и О, , где /(--множество вершин, поставленных в соответствие вершинам граф-схемы компонента, которые обозначают входящие внешние потоки, согласно заданному интерфейсу, Я( -множество вершин, поставленных в соответствие вершинам граф-схемы компонента, которые определяют операторы распараллеливания внутренних потоков данных граф-схемы, - множество исполнительных (вычислительных) вершин, которые определяют либо статические, реализуемые на множестве аппаратных ресурсов компоненты, либо более высокоуровневые составные компоненты. Таким образом, множество = .9,и5'„, где множество включаемых масштабируемых компонентов, ~ множество аппаратно реализуемых, статических компонентов, Ос~ множество вершин, поставленных в соответствие вершинам граф-схемы компонента, которые обозначают выходящие внешние потоки, согласно заданному интерфейсу. Множество помеченных дуг Ес задают структуру данных и направленность информационных потоков между вершинами граф-схемы. Среди множества включаемых компонентов возможно включение как других библиотечных компонентов, так и рекурсивное включение компонента самого в себя при изменении параметров обрабатываемых потоков данных.

На рис.3 схематично изображена граф-схема, где выделены множества интерфейсных вершин /с , Ос Множество внутренних вершин состоит из вершин Р( и 5( (чтобы не загромождать схему, показаны лишь дуги, инцидентные интерфейсным вершинам) Следует отметить, что каждая дуга определена соответствующей структурой данных.

Граф-схемы статических компонентов параллельных программ МВС СЛОВ не содержат операторных вершин множества Рс, при этом все структуры данных обрабатываемых потоков имеют фиксированный размер.

Граф-схемы масштабируемых компонентов параллельных программ содержат операторные вершины множества Ре, при этом как минимум одна из структур данных обрабатываемых потоков содержит

п , г- , , вектор неопределенной на этапе

Рис.3. Граф-схема масштабируемого К. г _

компонента разработки размерности. Среди множества

вершин 5г присутствует хотя бы одна вершина, задающая рекурсивное вхождение граф-счемы саму в себя, при этом операторные вершины задают распараллеливание обрабатываемых потоков.

Для обеспечения доступа к структуре данных информационных потоков разработаны операторы, определяемые в граф-схемах с помощью специальных управляющих (операторных) вершин. Данные операторы, в конечном счете, формируют правила использования коммутационных ресурсов вычислительной системы в соответствии со структурой параллельного алгоритма.

В диссертации вводятся операторы множества Рс, позволяющие в графическом виде программировать рекурсивно определенные компоненты параллельных программ.

Оператор «.>> позволяет выбирать из общей структуры данных информационных потоков соответствующие элементы. Пример использования данного оператора приведен на рис 4 а). где из структуры данных Т входящего потока ч1гешп выбираются отдельные элементы а, На рис. 4 б) показан аналогичный доступ к структуре

данных исходящего потока.

Оператор «//» позволяет осуществлять доступ к элементам векторов, входящих в структуру данных информационных потоков, что проиллюстрировано на рис. 4 в) и 4 г).

В) г)

Рис.4. Операторы доступа к элементам структуры данных.

Для динамического формирования структур данных в граф-схемах вводится оператор объединения в структуру «.{}», применение которого показано на рис. 5 а)

Рис 5 Оператор объединения в структуру, структурной альтернативы

Процесс синтеза на основе структурно-декларативного описания основан на рекурсивном включении компонентов самих в себя. Для выхода из рекурсии либо выбора из некоторого множества альтернатив, используется условный оператор «?» управляемый задаваемым условием. На рис. 5 б), показана управляемая условием «condition» альтернатива входящего потока.

Для преобразования типов данных потока используется оператор «С», применение которого проиллюстрировано на рис. 6 а), где выполняется преобразование потока а типа 77 в поток h типа Т2

Для прекращения рекурсии применяется оператор «.'» совместно с условным оператором «7», использование которого проиллюстрировано на рис. 6 б), где в случае, если условие condition - истинно, выполняется выход из рекурсии, иначе продолжается анализ граф-схемы. Включение в структуру библиотечных компонентов, выполняется по имени и в соответствии с информационной и управляющей структурой данных, пример такого включения приведен на рис 7 а), при этом вершина, отмеченная символом «#», означает внешнюю по отношению к вершине спецификацию, что позволяет сохранять одинаковый в граф-схемах размер вершин. В данном примере в формируемую структуру включается компонент с именем «component/», у которого информационная составляющая coctohi из входящего потока типа 77, исходящего потока типа Т2 и управляющих параметров q,w Особо выделен случай рекурсивного

()

Рис.6. Оператор преобразования типов, прекращения рекурсий

включения компонента самою в себя, для чего используется символ «<й>» При этом имя компонента опускается, задаются параметры согласно интерфейсу компонента, как показано на рис. 7 б).

а »

oiufhitit mitt/ ч, 12 b

0

а .X. /г*

О

а) б)

Рис.7. Включение в структуру библиотечных компонентов, рекурсивное включение.

Рассмотрим пример синтеза статической структуры из масштабируемого декларативного описания, которое приведено на рис. 8. Интерфейс масштабируемого компонента определен следующим образом-

interface<T>(sin Т[] arrayl, ¡¡out Т[] array2, ein int head, cm int len, ref interface<T>(sin T. soul T)).

I

/

f

* heud'len

Г

a>ra\ ¡¡ЬеЫ! %

„, wrm.

ft"*-* О

Здесь структура входящего/исходящего потока представляет собой вектор однотипных элементов, для каждого из которых необходимо разместить компонент обработки / Анализ начинается с входной вершины, помеченной символом «/», дуга, отмеченная именем массива arrayl, определяет идентификатор входящего потока. В вершине, задающей условный оператор «?», выполняется анализ условия выхода из рекурсии (head<len) В случае, если параметр head не достиг индекса последнего элемента, то выполняется переход к вершине оператора выбора элемента массива «//» через идентификатор array 1 [head], иначе вызов оператора «/» останавливает синтез структуры и инициализирует процесс возврата из рекурсивных вхождений. Вершина, отмеченная символом «@» в данной цепочке, означает вход в ту же граф-схему, но с параметром head+l.

На рис.9 показан процесс построения структуры алгоритма обработки массива

(ЬеЫЧШ

Рис.8. Масштабируемый компонент независимой структурной обработки элементов вектора.

nrruyl/,\j array21 SI ттауЩ

Lr^/0/

WrayllOI

array ЦЦ

array2(!j

emnl/N-l/

arr«y2/,\-ll

Рис 9 Процесс построения сгруктуры алгоритма обработки массива arrayI

array!, который ¡алан через рекурсивно определенную граф-схему. На каждом шаге выполняется анализ граф-схемы с параметрами head и len массивов array / и array2

В начале процедуры анализа выполняется проверка индекса обрабатываемого элемента В случае, если индекс находится в пределах диапазона массива array!, для элемента массива array ¡[head] и array2[head] формируется блок обработки / в противном случае рекурсивный процесс построения схемы прекращается. В результате формируется параллельная вычислительная структура с произвольной степенью распараллеливания. Определенная степень распараллеливания структурной реализации функции / задается на этапе выполнения программы. Схема синтезируемой параллельной вычислительной структуры показана в правой части рис.9.

В третьей главе разрабатываются типовые схемы и базовые приемы распараллеливания информационных потоков, которые служат основой для построения масштабируемых решений прикладных задач. Показывается возможность применения разрабатываемых методов для бинарного базиса и базиса макрообъектов системного уровня компонентной модели программирования, приводятся решения прикладных задач, сравнивается продуктивность разработки на основе структурно-функционального и структурно-декларативного методов.

Наиболее часто используемым приемом при разработке масштабируемых компонентов в виде граф-схем является деление обрабатываемого потока по принципу «деление пополам» либо по принципу «голова-хвост».

На рис. 10 а) приведена граф-схема рекурсивно определенного компонента, реализующего схему распараллеливания, в которой каждому элементу вектора х ставится в соответствие одно и то же скалярное значение у. На рис. 10 6) показана соответствующая формируемая структура. При этом используется принцип «голова-хвост».

Рис. 10. Граф-схема рекурсивно определенного компонента, реализующего схему распараллеливания "один ко всем".

На рис. 11 а) приведена граф-схема рекурсивно определенного компонента, реализующего схему построения бинарной древовидной структуры на основе компонента обработки с, располагаемого в узлах структуры. На рис. 11 б) показана соответствующая формируемая структура. При этом используется принцип «деление пополам».

В главе рассматриваются примеры разработки масштабируемых компонентов для решения прикладных задач, программирование которых выполняется на базе множества интерфейсов типовых информационных потоков, а также разработанной в диссертации библиотеки шаблонных схем распараллеливания.

Выполняется сравнение эффективности и скорости разработки при использовании структурно-функционального и структурно-декларативного методов, которое показывает преимущества структурно-декларативного метода в наглядности и компактность описания алгоритмов формирования структурных компонентов, что поз-

-О^Э

б)

Рис 11. Граф-схема рекурсивно определенного компонента, реализующего схему построения бинарной древовидной структуры.

воляет в 2-4 раза ускорить процесс разработки. В то же время, следует отметить, что структурно-функциональный метод является более универсальным, так как может быть реализован на базе распространенных алгоритмических языков программирования.

В четвертой главе описывается созданный автором комплекс инструментальных средств разработки, позволяющий создавать на основе структурно-функционального и структурно-декларативного методов масштабируемые параллельные программы для МВС СПОВ различной конфигурации.

Общая схема взаимодействия основных компонентов комплекса приведена на рис.12, в которую входят: интегрированная среда разработки программ и программных компонентов на языке структурно-процедурных вычислений "Argus", интегрированная среда разработки компонентов параллельных программ в виде граф-схем "Easyo", средства тестирования "ArgusTest", средства отладки "ArgusDebugger"

Рис.12 Общая схема взаимодействия основных компонентов комплекса инструментальных средств

Рассматриваются основные особенности функционирования компонентом комплекса Для интегрированной среды разработки программ и программных компонентов на языке структурно-процедурных вычислений "Argus" приводится описание особенностей пользовательского интерфейса и принципов процесса разработки Пример экранной формы интегрированной среды разработки "Argus" приведен на рис. 13 а).

Для интегрированной среды разработки компонентов параллельных программ в виде граф-схем "Easyo" приводится описание особенностей пользовательского интерфейса и принципов процесса разработки компонентов параллельных программ, представимых в виде граф-схем. Пример экранной формы интегрированной среды разработки -'Easyo" приведен на рис. 13 б).

'Уеик и петли инструментов

С^циатяьровикный пкистовыО poâaxmop

2

\ МП« /

,1X1 Ê

гЮ1

IÎ 11

« rf' и

1 «

!k-=

Сгшсоя сооб-мэний 'юлькнюгпвлю *7 [Прогр&сс~ 3 1 г * -™1—*-

__ _ " - - ■ б)

Рис 13. Примеры экранных форм интегрированной среды

Основной научный результат диссертации заключается в модернизации структурно-функционального метода и создании нового структурно-декларативного метода синтеза масштабируемых программ для МВС СПОВ различной конфигурации, а также создании комплекса инструментальных средств для разработки масштабируемых программ на основе данных методов.

При проведении исследований и разработок по теме настоящей работы получены следующие теоретические и прикладные результаты.

1) Модернизирован комплекс математического обеспечения МВС СПОВ за счет расширения среды исполнения и средств разработки и взаимодействия с пользователем, что в несколько раз позволяет повысить продуктивность разработки масштабируемых приложений.

2) Предложены принципы разработки и синтеза масштабируемых параллельных программ на основе идеологии компонентного программирования для МВС СПОВ различной конфигурации.

3) Доработан структурно-функциональный метод разработки и синтеза масштабируемых параллельных программ в части его адаптации к идеологии компонентного программирования, что позволяет использовать данный метод при разработке процедур масштабирования на различных языках программирования и добиваться при этом оптимизации синтезируемых структур компонентов параллельных вычислений.

4) Разработан новый структурно-декларативный метод описания масштабируемых параллельных программ в виде граф-схем, обеспечивающий наглядность представления и минимизацию объема описания структурных компонентов параллельных вычислений.

5) Разработаны унифицированные типовые схемы распараллеливания, позволяющие на их основе создавать масштабируемые параллельные про(раммы за минимальное время.

6) Создан комплекс инструментальных средств на базе интегрированной среды разработки масштабируемых параллельных программ и программных компонентов как в текстовом, так и в графическом представлении, использование которого позволяет в 2-4 раза ускорить процесс создания масштабируемых параллельных программ.

7) Разработана информационная структура многопользовательской базы данных компонентов масштабируемых параллельных программ, реализуемых на МВС СПОВ различной конфигурации.

Основные публикации по теме диссертации

1 Шматок A.B., Каляев З.В. Декларативный и функциональный методы разработки компонентов масштабируемых параллельных программ // Материалы Международной научно-технической конференции "Искусственный интеллект. Интеллектуальные и многопроцессорные системы". - Таганрог: Изд-во ТРТУ, 2004. - Т.1. - С. 227-229

2. Левин И.И., Шматок A.B., Каляев З.В. Средства разработки параллельных программ для многопроцессорных вычислительных систем с программируемой архитектурой // Искусственный интеллект. - Донецк: Наука i oceiTa, 2003. - №3. - С. 147-149.

3. Левин И.И., Шматок A.B., Каляев З.В. Средства разработки параллельных программ для многопроцессорных вычислительных систем с программируемой архитектурой // Материалы Международной научно-технической конференции "Интеллектуальные и многопроцессорные системы. ИМС-2003". - Таганрог: Изд-во ТРТУ, 2003. - Т.2. - С. 36-38.

4. Левин И.И., Шматок A.B. Система разработки параллельных программ для многопроцессорных вычислительных систем с программируемой архитектурой // Материалы Международной научно-технической конференции "СуперЭВМ и многопроцессорные вычислительные системы''. - Таганрог: Изд-во ТРТУ. 2002. - С. 153-156.

5. Левин И.И., Шахов Р.В., Шматок A.B., Сластен Л.М. Математическое обеспечение многопроцессорных вычислительных систем с программируемой архитектурой // Искусственный интеллект. - Донецк: Наука i осв1та, 2002. - №3. - С. 286-294.

6 Левин И.И., Шахов Р.В., Шматок A.B., Сластен Л.М. Математическое обеспечение многопроцессорных вычислительных систем с программируемой архитектурой // Материалы Международной научной конференции "Искусственный интеллект - 2002" - Таганрог. Изд-во ТРТУ, 2002. - Т. 1. - С.202-205

7 Левин И.И., Пономарев И.М., Шахов Р.В., Шматок A.B., Многопроцессорные рабочие станции с ПА - эффективный инструмент решения сложных научно-технических задач // Материалы научно-технической конференции с международным участием «Компьютерные технологии в инженерной и управленческой деятельности» -Таганрог: Изд-во ТРТУ, 2002 - №2. - С. 180-183.

8 Левин И.И., Шматок А В. Сборочная система параллельного макропрограммирования "Интегрированная среда для МВС СПРВ" // Искусственный интеллект.-Донецк Наука i oceiTa, 2001 - №3. - С 228-233.

9. Левин И.И., Пономарев И.М., Шматок A.B.. Методы преобразования параллельных программ под структуру вычислительной системы // Искусственный интеллект - Донецк- Наука i oceiTa, 2001 - №3. - С. 213-227.

Ю.Левин И.И., Пономарев И.М.. Шахов Р.В., Шматок A.B. Методы преобразования параллельных программ под структуру вычислительной системы // Материапы международной конференции "Интеллектуальные и многопроцессорные системы-2001".-Таганрог Изд-во ТРТУ, 2001 -С 138-141

11 Каляев Л Ii Левин И И . Шматок А В. Система сборочною программирования МВС с программируемой архитектурой // Материалы Международной конференции "Интеллектуальные и многопроцессорные системы-2001" - Таганрог: Изд-во ТРТУ, 2001 -С 135-138.

12 Шматок AB. Средства программирования суперкомпьютеров с программируемой архитектурой // Труды Всероссийской научной конференции "Высокопроизводительные вычисления и их приложения" - М.: Изд-во МГУ, 2001 -С 168-170

13 Левин И.И., Шматок А.В Средства программирования суперкомпьютеров с программируемой архитектурой // Тезисы 3-ей международной научно-технической конференции "Электроника и информатика - XXI век" - М: Изд-во МИЭТ, 2000. - С 327

14. Каляев A.B. Левин И.И., Шматок А В Средства программирования суперкомпьютеров с массовым параллелизмом и программируемой архитектурой // Сб тез. Международной конференции "Искусственный интеллект - 2000" - Таганрог- Изд-во ТРТУ, 2000.-С. 145-147.

15 Левин И.И , Шматок A.B. .Технология параллельных индуктивных программ // Труды международной конференции "Интеллектуальные многопроцессорные системы (ИМС'99)" - Таганрог Изд-во ТР'ГУ, 1999.-С. 142-146

16 Левин И И.. Шматок A.B. Технология параллельных индуктивных программ // Сб. тезисов международной конференции "Интеллектуальные многопроцессорные системы (ИМС-99)" -Таганрог Изд-во ТРТУ, 1999. - С. 142-146

17 Левин И.И., Шматок AB. Интегрированная среда разработки структурно-процедурных параллельных программ и программных компонентов на языке макроассемблера Свидетельство об официальной регистрации программы для ЭВМ. № 2004612036, Заявка № 2004611444, зарегистр. 6.09.2004 г.

18. Левин И.И., Шматок A.B. Интегрированная среда разработки программных компонентов структурно-процедурных вычислений в виде граф-схем. Свидетельство об официальной регистрации программы для ЭВМ, № 2004612037, Заявка № 2004611445, зарегистр. 6.09.2004 г.

ЛР Ка 020565 от 23 июня 1997 г Подписано к печати 17- М. 2004 г Формат 60x84 "" Бумага офсетная Печать офсетная Уел п л - 1,0. Уч - изд л - 0,9. Заказ №271 Тираж 100 экз

ГСП 17А, Таганрог, 28, Некрасовский. 44 Типография Таганрогского государственного радиотехнического университета

¡¿¿ 66 3 о

РНБ Русский фонд

2006-4 309

Оглавление автор диссертации — кандидата технических наук Шматок, Алексей Владимирович

Введение.

1. МЕТОДЫ РАЗРАБОТКИ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ ДЛЯ МВС СПОВ.

1.1. Анализ современных методов разработки параллельных программ для МВС с массовым параллелизмом.

1.2. Архитектура и организация вычислений МВС СПОВ.

1.3. Структура математического обеспечения МВС СПОВ.

1.4. Структурно-функциональный и структурно-декларативный принципы разработки компонентов масштабируемых параллельных программ.

1.5. Выводы.

2. РАЗРАБОТКА МАСШТАБИРУЕМЫХ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ НА ОСНОВЕ КОМПОНЕНТНОГО

ПРОГРАММИРОВАНИЯ.

2.1. Идеология компонентного программирования для разработки масштабируемых параллельных программ для МВС СПОВ различной конфигурации.

2.2. Многоуровневая модель разработки и взаимодействия компонентов масштабируемых параллельных программ МВС СПОВ.

2.3. Синтез масштабируемых параллельных программ на базе структурно-функционального и структурно-декларативного методов.

2.4. Выводы.

3. РАЗРАБОТКА КОМПОНЕНТОВ МАСШТАБИРУЕМЫХ ПАРАЛЛЕЛЬНЫХ ПРОГРАММ НА БАЗЕ СТРУКТУРНО-ФУНКЦИОНАЛЬНОГО И СТРУКТУРНО-ДЕКЛАРАТИВНОГО МЕТОДОВ.

3.1. Типовые схемы распараллеливания информационных потоков.

3.2. Бинарный базис системного уровня компонентной модели программирования.

3.3. Базис макрообъектов системного уровня компонентной модели программирования.

3.4. Примеры решения прикладных задач.

3.5. Анализ продуктивности разработки структурно-декларативным и структурно-функциональным методами.

3.5. Выводы.

4. КОМПЛЕКС ПРОГРАММНЫХ СРЕДСТВ МВС СПОВ.

4.1. Структура программных средств МВС СПОВ.

4.2. Интегрированная среда разработки программ и программных компонентов на языке структурно-процедурных вычислений

Argus».

4.2.1 .Назначение интегрированной среды разработки «Argus».

4.2.2.Управление процессом разработки в среде «Argus».

4.3. Интегрированная среда разработки компонентов параллельных программ в виде граф-схем «Easyo».

4.3.1. Назначение интегрированной среды разработки «Easyo».

4.3.2. Общие принципы построения граф-схем в среде разработки Easyo».

4.3.3. Примеры построения граф-схем компонентов параллельных программ в среде разработки «Easyo IDE».

4.3.4. Особенности пользовательского интерфейса среды разработки

Easyo IDE».

4.3.5. Разработка масштабируемых компонентов в среде разработки

Easyo IDE».

4.4. Отладчик параллельных программ на реализуемых на базовых модулях МВС СПОВ.

4.5. Выводы.

Введение 2004 год, диссертация по информатике, вычислительной технике и управлению, Шматок, Алексей Владимирович

Актуальность темы. В настоящее время благодаря стремительному развитию технологий стало возможным построение многопроцессорных вычислительных систем (МВС) с массовым параллелизмом (МП), в которых параллельно работают тысячи процессоров. Такие суперкомпьютеры используются для решения наиболее сложных задач науки и техники, таких как моделирование различных явлений и процессов, управление сложными техногенными системами в реальном масштабе времени, предсказание климатических изменений, разработка новых лекарственных препаратов и многих других задач. Более того, если раньше суперкомпьютерные технологии были доступны лишь в специальных исследовательских центрах и на крупных промышленных предприятиях, то на сегодняшний день данные технологии приходят и в повседневную жизнь, и сфера их применения охватывает практически все виды человеческой деятельности [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]. Использование таких инструментов позволило бы не только ускорить процесс создания параллельных программ, но и поднять его на новый уровень, не требующий высокой квалификации от разработчиков прикладных программ.

В связи с этим, основываясь на сформулированных ранее базовых принципах технологии разработки масштабируемых параллельных программ, диссертационная работа направлена на развитие существующих и создание новых методов и инструментальных средств разработки масштабируемых параллельных программ, обеспечивающих не только достижение требуемых характеристик вычислительного процесса при решении прикладных задач, но и достаточно высокий уровень процесса разработки для прикладного программирования, не требующий от разработчика высокой квалификации в области параллельных вычислений.

Объект исследований. Объектом исследования являются методы и инструментальные средства разработки параллельных программ.

Цель работы. Целью диссертационной работы является создание методов описания и инструментальных средств разработки масштабируемых параллельных программ для реализации структурно-процедурных вычислений на различных конфигурациях МВС СПОВ.

Для достижения этой цели в работе решаются следующие задачи:

1) исследуются средства и методы организации параллельных вычислений для МВС с массовым параллелизмом;

2) исследуются формы представления структурно-процедурных параллельных программ;

3) разрабатываются формы представления масштабируемых параллельных алгоритмов как в текстовом виде, так и в виде граф-схем;

4) разрабатывается новый метод описания структурных компонентов масштабируемых параллельных программ в виде граф-схем для реализации на МВС СПОВ различной конфигурации;

5) создается комплекс инструментальных средств, основанный на идеологии быстрой разработки и визуального программирования, позволяющий реализовывать предложенные методы создания масштабируемых параллельных программ и программных компонентов для МВС СПОВ различной конфигурации;

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

Методы исследований. При проведении исследований были использованы элементы теории вычислительных систем, теория графов, теория множеств. Экспериментальные исследования проведены на действующих образцах МВС СПОВ различной конфигурации.

Научная новизна заключается в создании новых методов описания и разработки масштабируемых параллельных программ и принципов создания оригинального комплекса инструментальных программных средств на их основе для реализации на МВС СПОВ различной конфигурации.

К числу наиболее важных результатов диссертации относятся:

- новая графическая форма описания структурных компонентов параллельных алгоритмов, отличающаяся от известных введением в граф-схемы нового класса операторных вершин, задающих правила автоматического синтеза вычислительной структуры в зависимости от характеристик обрабатываемых потоков данных;

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

- новый структурно-декларативный метод разработки масштабируемых параллельных программ, отличающийся от известных использованием рекурсивно-определяемой формы представления информационных графов параллельных алгоритмов;

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

Практическую ценность работы представляют:

- алгоритм синтеза структурных компонентов параллельных программ, обеспечивающий автоматическое формирование вычислительных структур для заданной конфигурации МВС СПОВ из ресурсонезависимого описания параллельного алгоритма на основе структурно-декларативного метода;

- интегрированная среда разработки параллельных программ и программных компонентов на языке структурно-процедурных вычислений для МВС СПОВ различной конфигурации, позволяющая создавать эквивалентные описания компонентов параллельных программ как в текстовой (на языке структурно-процедурного программирования), так и в графической (в виде статических и масштабируемых граф-схем) формах;

- база данных параллельных программ и программных компонентов, представленных в структурно-функциональной и структурно-декларативной формах для МВС СПОВ различной конфигурации, обеспечивающая сокращение времени создания параллельных масштабируемых программ в 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.

Левин И.Р1., Пономарев И.М., Шматок А.В. Методы преобразования параллельных программ под структуру вычислительной системы // Искусственный интеллект. - Донецк: Наука i освгга, 2001. - №3. - С. 227-231.

Левин И.И., Шматок А.В. Сборочная система параллельного макропрограммирования "Интегрированная среда для МВС СПРВ" // Искусственный интеллект. - Донецк: Наука i освгга, 2001. - №3. - С. 228-233.

Левин И.И, Пономарев И.М., Шматок А.В., Шахов Р.В. Многопроцессорные рабочие станции с ПА - эффективный инструмент решения сложных научно-технических задач // Материалы научно-технической конференции с международным участием «Компьютерные технологии в инженерной и управленческой деятельности». - Таганрог: изд-во ТРТУ, 2002. -№2.-С. 180-183.

Левин И.И., Шахов Р.В., Сластен JI.M. Математическое обеспечение многопроцессорных вычислительных систем с программируемой архитектурой // Искусственный интеллект. - Донецк: Наука i освгга, 2002. - №3, - С. 286-294.

Левин И.И., Шматок А.В. Система разработки параллельных программ для многопроцессорных вычислительных систем с программируемой архитектурой // Материалы Международной научно-технической конференции "СуперЭВМ и многопроцессорные вычислительные системы". - Таганрог: Изд-воТРТУ, 2002.-С. 153-156.

Левин И.И., Шматок А.В., Каляев З.В. Средства разработки параллельных программ для многопроцессорных вычислительных систем с программируемой архитектурой // Искусственный интеллект. - Донецк: Наука i освгга, 2003. - №3. - С. 147-149.

Шматок А.В., Каляев З.В. Декларативный и функциональный методы разработки компонентов масштабируемых параллельных программ // Искусственный интеллект. Интеллектуальные и многопроцессорные системы. Материалы международной научно-технической конференции, 20-25 сентября 2004 г. - Таганрог: Изд-во ТРТУ, 2004. - Т 1. - С. 227-229.

Шматок А.В., Каляев З.В. Декларативный и функциональный методы разработки компонентов масштабируемых параллельных программ // Высокопроизводительные вычислительные системы (ВПВС-2004). Материалы научной международной школы, 20-25 сентября 2004 г. - Таганрог: Изд-во ТРТУ, 2004. - С. 139-142.

Основные положения, выносимые на защиту:

- модернизированный структурно-функциональный метод разработки масштабируемых параллельных программ для МВС СПОВ;

- новый структурно-декларативный метод разработки масштабируемых параллельных программ для МВС СПОВ;

- алгоритм синтеза структурных компонентов параллельных программ, представленных в виде масштабируемых граф-схем;

- интегрированная среда разработки структурно-процедурных масштабируемых параллельных программ и программных компонентов как в текстовом, так и в графическом представлении.

Структура диссертации. Диссертация состоит из введения, четырех глав, библиографического списка и приложений.

Заключение диссертация на тему "Методы и инструментальные средства разработки масштабируемых параллельных программ для многопроцессорных систем со структурно-процедурной организацией вычислений"

4.5. Выводы

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 свидетельства о регистрации программ для ЭВМ.

Разработанные методы и проведенные экспериментальные исследования доказывают возможность создания инструментальных средств разработки масштабируемых параллельных программ для оригинальных МВС МП в соответствии с современными требованиями, обобщенными в идеологии быстрой разработки приложений.

Библиография Шматок, Алексей Владимирович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

1. Кузьминский М.Б. Волков Д. Современные суперкомпьютеры: состояние и перспективы // Открытые системы. 2004. №9.

2. Легалов. А.И. Построение параллельных алгоритмов // Открытые системы. 2004. №9.

3. Средства автоматического распараллеливания.http://parallel.ru/tech/techdev/autopar.html

4. Каляев А.В., Левин И.И. Модульно-наращиваемые многопроцессорные системы со структурно-процедурной организацией вычислений. М.: ООО "Янус-К", 2003. - 380 с.

5. Star Bridge Systems, Inc. «Hypercomputers» overview //http://www.starbridgesystems.eom/products/hardware.html#rc

6. Hartenstein R. W., Hirschbiel A. G., Weber M. Xputers: An open family of non-von neumann architectures. Universitat Kaiserslautern, Bau 12, Postfach 3049, D-675, Kaiserslautern, Germany.

7. Ast A., Becker J., Hartenstein R.W., Kress R., Reinig H. K. Data-procedural Languages for FPL-based Machines Schmidt Fachbereich Informatik, Universitat Kaiserslautern Postfach 3049, D-67653 Kaiserslautern, Germany

8. Xputer Page //http://xputers.informatik.uni-kl.de/xputer/indexxputer.html

9. Проект ИПС РАН. Т-система //littp://parallel.ru/parallel/russia/map/data/ projectl5.html

10. И.Бурцев B.C. Новые подходы к созданию высокопараллельных вычислительных структур // Искусственный интеллект 2000. Тез. докл. науч. конф. - Таганрог: ТРТУ, 2000.

11. Каляев А.В., Левин И.И. Многопроцессорные систехМЫ с перестраиваемой архитектурой: концепции развития и применения // Наука -производству, 1999.-№ 11.-С. 11-19.

12. Каляев А.В. Принципы и методы программирования виртуальных архитектур в многопроцессорных универсальных суперкомпьютерах // Высокопроизводительные вычисления и их приложения. Труды всероссийской научной конференции. М.: Изд-во МГУ, 2000. - С. 12-16. t

13. Каляев А.В. Программирование виртуальных архитектур в суперкомпьютерах с массовым параллелизмом // Информационные технологии и вычислительные системы, 2000. № 2. 1

14. Левин И.И. Параллельные компьютеры с программируемой архитектурой и структурно-процедурной организацией вычислений. //"TELEMATIC А-2001International Conference on Telematics and Web-Based Education, 2001, St. Petersburg, http://risbank.spb.ru/trn2001/.

15. Каляев A.B., Левин И.И. Структурно-процедурная организация параллельных вычислений // Труды межд. конф. "Параллельные вычисления и задачи управления (РАСО'2001)" М., ИПУ РАН им. В.А.Трапезникова, 2001. Т. 5.-С. 112-119.

16. Каляев А.В., Левин И.И., Пономарев И.М. Базовый модуль многопроцессорной вычислительной системы с программируемой архитектурой для эффективного решения исследовательских и производственных задач//Наука производству, 1999. -№П.-С. 33-39.

17. Левин И.И., Пономарев И.М. Методика организации высокоэффективных параллельных вычислений в многопроцессорных системах // Тезисы докладов Международной научной конференции "Искусственный интеллект-2000", Кацивели, 2000. С. 142- 144.

18. Пономарев И.М. Методы преобразования задач в структурно-процедурную форму // Труды международной конференции "Интеллектуальные многопроцессорные системы (ИМС'99)", Таганрог, 1999. -С. 51-52.

19. Левин И.И., Пономарев И.М. Структурно-процедурная реализация задачи трассировки // Искусственный интеллект. Донецк: Наука i освта, 2003. -№3. - С.121-129.

20. Коберн Алистер. Быстрая разработка программного обеспечения. Издательство: Лори, 2002 г. 336 с. ISBN 5-85582-182-Х. 2002 г.

21. Немнюгин С., Стесик О. Параллельное программирование для многопроцессорных вычислительных систем. ISBN 5-94157-188-7. 396 с.

22. Хоар Ч. Взаимодействующие последовательные процессы. М.: Мир, 1989.-265 с.

23. Дейкстра Э. Взаимодействие последовательных процессов //В сб. Языки программирования. / Под ред. Женюи Ф. М.: Мир, 1972.- С. 9-86.

24. Андреев А.Н., Воеводин В.В., Жуматий С.А. Кластеры и суперкомпьютеры близнецы или братья. Открытые системы, 2000. - №5-6.

25. Антонов А.С. Параллельное программирование с использованием технологии MPI / Учебное пособие. М.: Изд-во МГУ, 2004. - 71 с.

26. Митрофанов В.В., Слуцкин А.И., Ларионов К.А., Эйсымонт Л.К. Направления развития отечественных высокопроизводительных систем. Открытые системы, 2003. №5.

27. Коуги П.М. Архитектура конвейерных ЭВМ / Пер. с англ. М.: Радио и связь, 1985.

28. Кохонен Т. Ассоциативная память. М.: Мир, 1980.

29. Лейнекер. СОМ+. Энциклопедия программиста, издательство: ДиаСофт. 2001 г. 656 с. ISBN 5-93772-013-х

30. Петцольд. Программирование для Microsoft Windows на С#. В! 2-х томах, издательство: Русская Редакция. 2002 г. 576 с. ISBN 5-7502-0210-0.

31. Cellmatrix. //http://www.cellmatrix.com/

32. Леонид Бараш. Архитектура коммутаторов. Основные принципы // http://www.vector.kharkov.com/support/techn/ararchkom.htm; 1

33. Коммутаторы ATM. //http://osp.irtel.ru/lan/1997/04/source/21.htm;

34. Нирва Мориссо-Леруа, Мартин К. Соломон, Джули Басу Oracle8i: Java-компонентное программирование при помощи EJB, CORBA и JSP Издательство: Лори, 2002 г. ISBN 5-85582-173-0

35. Хомоненко. Delphi 7 в подлиннике, издательство: BHV-СПб. 2003 г.1216 с. ISBN 5-94157-267-0

36. Лейнекер. СОМ+. Энциклопедия программиста, издательство: ДиаСофт. 2001 г. 656 с. ISBN 5-93772-013-х

37. Елманова, Трепалин, Тенцер. Delphi и технология СОМ. -Издательство: Питер, серия Мастер-Класс, январь 2003,704 с, ISBN 5-94723648-6.

38. Нирва Мориссо-Леруа, Мартин К. Соломон, Джули Басу Oracle8i: Java-компонентное программирование при помощи EJB, CORBA и JSP Издательство: Лори, 2002 г. ISBN 5-85582-173-0

39. Microsoft Corporation Разработка Windows-приложений на Microsoft Visual Basic.NET и Microsoft Visual C# .NET(c CD-ROM) издательство: Русская Редакция. 2003 г. 512 с. ISBN 5-7502-0222-4

40. С. Фалчер. Программирование на Microsoft Visual Studio .NET Серия: Фундаментальные знания Издательство: Русская Редакция, 2002 г. 800 стр. ISBN 5-7502-0224-0

41. Брайан Джонсон, Крэйг Скибо, Марк Янг Основы Microsoft Visual Studio.NET 2003 Inside Microsoft Visual Studio.NET Серия: Фундаментальные знания Издательство: Русская Редакция, 2003. 464 с. ISBN 0-7356-1874-7

42. Шеферд. Программирование на Microsoft Visual С++ .NET серия: Фундаментальные знания, 2003. 928 с. ISBN 5-7502-0225-9

43. Эммерих. Конструирование распределенных объектов. Методы и средства программирования интероперабельных объектов в архитектурах OMG/CORBA, Microsoft/COM и Java/RMI. Издательство: Мир, 2002. 510 с. ISBN 5-03-003405-6

44. Рофэйл Э., Шохауд Я. СОМ и СОМ+. Полное руководство, издательство: Век. 2000. ISBN 966-7140-14-8

45. Роберт Орфали, Дэн Харки. Java и CORBA в приложениях клиент-сервер. Издательство: Лори, 2000. 734 с. ISBN 5-85582-092-0, 0-47-24578-Х

46. Х. М. Дейтел, П. Дж. Дейтел, С. И. Сантри. Технологии программирования на Java 2. Книги 1,2,3 Издательство: Бином-Пресс, 2003 г. 560 с. 5-9518-0017-Х, 0-13-089560-1.

47. Валерий Фаронов. Искусство создания компонентов Delphi. Издательство: Питер, 2004. 464 с. ISBN 5-469-00410-4.

48. Павловская Т. А., Щупак Ю. А. C/C++. Структурное программирование: Практикум. Программирование на языке высокого уровня, 2003. 240 с. ISBN 5-94723-967-1

49. Бакнелл. Фундаментальные алгоритмы и структуры данных в Delphi, издательство: ДиаСофт, 2003. 560 с. ISBN 5-93772-087-3

50. Корнеев В.В. Параллельные вычислительные системы. М.: Изд-во Нолидж. ISBN 5-89251-065-4.

51. Программирование на параллельных вычислительных системах. / Под ред. Р. Бэба II. М.: Мир, 1991. - 376 с. j

52. Пономарев В. Самоучитель Delphi 7 Studio. БХВ-Петербург Питер, 2003. Серия "Самоучитель" 504 с. ISBN 5-94157-271-9,

53. Междунапродная организация по стандартизации. //http://www.iso.org;

54. Бъерн Страуструп. AT&T Labs, Флохем Парк, Нью-Джерси. Язык программирования С++, спец. изд. / Пер. с англ. - М.; СПб.: «Издательство БИНОМ» - «Невский Диалект», 2001. - 1099 с.

55. Е.А. Суворова, Ю.Э. Шейнин. Проектирование цифровых систем на VHDL. Санкт-Петербург «БХВ-Петербург», 2003. 576 с. ISBN 5-94157-189-5.

56. Поляков. Языки VHDL и VERILOG в проектировании цифровой аппаратуры, издательство: СОЛОН-Р, 2003. 320 с. ISBN 5-98003-016-6 «

57. Al Major. COM IDL and Interface Design. ISBN 1861002254

58. Конноли, Бегг. Базы данных. Проектирование, реализация и сопровождение. Теория и практика. 3-е издание издательство: Вильяме. 2003. 1436 с. ISBN 5-8459-0527-3.

59. Д. Тейлор, Дж. Мишель, Дж. Пенман, Т. Гогин, Дж. Шемитц. Delphi 3: библиотека программиста СПб: Питер, 1998. - 560 с.

60. Адаменко, Кучуков. Логическое программирование и Visual Prolog, издательство: BHV-СПб, 2003. 992 с. ISBN 5-94157-156-9.

61. Саттер. Решение сложных задач на С++. Серия С++ In-Depth. издательство: Вильяме, 2002. 400 с. ISBN 5-8459-0352-1

62. Джосьютис. С++ Стандартная библиотека. Для профессионалов, издательство: Питер, 2003. 730 с. ISBN 5-94723-635-4.

63. Ахо, Хопкрофт, Ульман. Структуры данных и алгоритмы, издательство: Вильяме, 2000. 384 с. ISBN 5-8459-0122-7

64. Вандевурд, Джосаттис. Шаблоны С++: справочник разработчика, издательство: Вильяме, 2003. 544 с. ISBN 5-8459-0513-3

65. Скотт Мейерс. Эффективное использование STL. Библиотека программиста. СПб.: Питере, 2003. - 224 с. ISBN 5-94723-382-7/

66. Создание экспериментального образца ВПА и компонентов системного программного обеспечения // Отчет о НИР НИИ МВС ТРТУ; Руководитель темы к.т.н. Левин И.И., Таганрог, 2002. - 123 с.

67. Создание экспериментального образца МНМС и компонентов системного программного обеспечения // Отчет о НИР НИИ МВС ТРТУ; Руководитель темы к.т.н. Левин И.И., Таганрог, 2003. - 135 с.

68. Каляев А.В., Левин И.И, Пономарев И.М. Базовый модуль многопроцессорной вычислительной системы с программируемой архитектурой для эффективного решения исследовательских ипроизводственных задач // Наука производству, 1999. - № 11. - С. 33-39.

69. Левин И.И, Шахов Р.В. Алгоритмы трансляции структурно-реализуемого фрагмента задачи для многопроцессорной системы с программируемой архитектурой // Искусственный интеллект. Донецк: Наука i освп-а, 2003. - №3. - С. 138-146.

70. Сластен Л.М. Алгоритм отображения графа задачи в структуру многопроцессорной системы // Труды 9-й Всероссийской межвузовской научно-технической конференции студентов и аспирантов "Микроэлектроника и информатика 2002". - М.: Изд-во МИЭТ, 2002.