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

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

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

СПИСОК УСЛОВНЫХ ОБОЗНАЧЕНИЙ.

ВВЕДЕНИЕ.

1. Анализ способов автоматизации параллельного программирования.

1.1. Критерии сравнения способов автоматизации параллельного программирования.

1.2. Архитектуры параллельных ЭВМ.

1.3. Автоматическое распараллеливание программ и параллельное программирование.

1.4. Методы параллельного программирования.

1.5. Текстовые и визуальные языки параллельного программирования.

1.5.1. Представление параллелизма в текстовых языках.

1.5.2. Представление параллелизма в визуальных языках.

1.5.3. Модели параллельных вычислений.

Выводы и основные результаты.

2. Модель параллельных вычислений языка GRAPH+.

2.1. Метод описания моделей дискретных систем.

2.2. Модель программирования последовательных вычислений языка GRAPH.

2.3. Переход от последовательной модели программирования языка GRAPH к параллельной модели языка GRAPH+.

2.4. Модель программирования параллельных вычислений языка GRAPH+.

2.5. Модель исполнения языка GRAPH+.

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

2.6.1. Построение схемы преобразования и определение мест вставки операций синхронизации.

2.6.2. Построение оптимального механизма синхронизации.

2.6.3. Построение механизма оповещения о возникновении события.

Выводы и основные результаты.

3. Архитектура системы автоматизации параллельного программирования GRAPH+.

3.1. Визуальный язык программирования GRAPH+.

3.1.1. Общие сведения.

3.1.2. Обозначения используемые в последовательных программах.

3.1.3. Переменные и управление областями видимости переменных.

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

3.2. Форматы основных файлов языка GRAPH+.

3.2.1. Формат файла определения неграфических объектов.

3.2.2. Формат файла граф-агрегата.

3.2.3. Формат файла псевдокода.

3.3. Схема трансляции программ на визуальном языке в код на компилируемом языке.

Выводы и основные результаты.

4. Анализ эффективности параллельных программ, построенных с использованием визуального языка GRAPH+.

4.1. Параллельный алгоритм решения уравнения Лапласа.

4.1.1. Постановка задачи и последовательный алгоритм решения уравнения Лапласа.

4.1.2. Метод распараллеливания последовательного алгоритма решения уравнения Лапласа.

4.1.3. Анализ временных характеристик параллельного алгоритма решения уравнения Лапласа.

4.1.4. Анализ влияния средства программирования на эффективность программы. Метод оценки эффективности.

4.2. Представление параллельного алгоритма решения уравнения Лапласа на визуальном языке.

4.2.1. Граф верхнего уровня для решения уравнения Лапласа. Взаимодействие между процессами сегментов.

4.2.2. Графы задающие алгоритм работы процессов в сегментах.

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

4.3. Адаптация графических программ для решения подобных задач.

Выводы и основные результаты.

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

Идея организации параллельных вычислений и применения параллельных вычислительных машин для повышения производительности возникла давно. Одна из наиболее ранних работ, посвященная проблемам параллельной обработки информации, была написана Гиллом (Gill) в 1958 году [70]. В ней, по-видимому, впервые был употреблен и даже вынесен в заголовок термин «параллельное программирование».

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

В 60-70 годах усилия исследователей были направлены преимущественно на совершенствование архитектур ЭВМ и разработку специальных параллельных алгоритмов для конкретных типов машин. Подтверждение этому можно найти в обзорной книге «Элементы параллельного программирования» [5]: Под технологией программирования обычно понимается совокупность методов и способов программирования, учитывающая конкретные формы проектирования программ, использования языковых и отладочных средств.

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

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

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

Революционные изменения, повлиявшие на параллельное программирование, происходили как в области совершенствования аппаратуры, так и в теории параллельных вычислений. За последние 15 лет производительность микропроцессоров значительно возросла по сравнению с производительностью больших вычислительных систем [95]. Поэтому стала привлекательной идея построения высоко производительных параллельных машин, объединяя между собой большое количество микропроцессоров.

Несмотря на то, что детали архитектуры машин по-прежнему сильно различаются, большинство производителей современных параллельных компьютеров придерживаются MEMD - модели. Архитектура MEMD (multiple instruction — multiple data streams) предполагает, что каждый процессор может выполнять различные вычисления над различными данными. При этом процессоры могут использовать общие области памяти, взаимодействовать посредством пересылки сообщений и т.п. Наиболее легкий и доступный способ построения параллельного MOVED компьютера заключается в использовании рабочих станций, объединенных в сеть, для организации параллельных вычислений.

С точки зрения программиста все вышеперечисленные архитектуры имеют одно общее свойство: процессор должен выполнить значительное количество инструкций между взаимодействиями с другими процессорами. Если же время вычислений становится незначительным по сравнению со временем взаимодействия, производительность сильно снижается. Такой тип параллельных вычислений называется coarse-grain computations.

Несмотря на то, что параллельный компьютер построить довольно просто, задача написания эффективных и переносимых программ для таких компьютеров по-прежнему чрезвычайно сложна. Тем не менее в этой области достигнуты значительные успехи и появились новые направления исследований. Так Ч. Хоаром [33] и Р. Милнером [89] были созданы формальные теории параллельных вычислений, в которых дается ясная математическая трактовка параллелизма и взаимодействия. Были разработаны параллельные языки высокого уровня такие как Ada™ и Pascal Plus.

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

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

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

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

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

Описанные выше свойства визуального языка делают его использование в качестве средства параллельного программирования особенно привлекательным. Первые работы по визуальным языкам параллельного программирования были опубликованы в конце 70 годов [40]. Однако, ввиду отсутствия прикладных графических библиотек для построения графического интерфейса (GUI), разработка специализированного графического редактора для визуального языка сама по себе являлась нетривиальной задачей. По этой причине первые программно реализованные системы визуального параллельного программирования были разработаны примерно в начале 90-х годов.

Недавние исследования и разработки экспериментальных языков визуального параллельного программирования HeNCE 2.0 [47] CODE 2.0 [90,91] показывают, что использование визуального языка позволяет успешно решать многие трудные задачи параллельного программирования. Поэтому объектом исследования в данной диссертационной работе является визуальный язык параллельного программирования.

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

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

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

Данная работа посвящена разработке графической программной модели параллельных вычислений и визуального языка параллельного программирования. Описываемая модель программирования основана на последовательной модели вычислений визуального языка системы ГРАФ и технологии графо-символического программирования [11,12].

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

В соответствии с поставленной целью в диссертационной работе решаются следующие задачи исследования.

1. Анализ имеющихся средств и методов автоматизации параллельного программирования, а также моделей описания параллельных процессов.

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

3. Разработка модели исполнения, ориентированной на кластерные и симметричные мультипроцессорные системы.

4. Разработка алгоритма трансляции программы для модели исполнения.

5. Разработка синтаксиса визуального языка.

6. Разработка архитектуры системы визуального программирования.

7. Экспериментальная проверка эффективности программы на визуальном языке.

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

Научная новизна. В результате проведенных исследований был получен ряд научных результатов:

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

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

3. Разработан метод автоматической трансляции программ, соответствующий предложенной модели исполнения.

4. Разработаны синтаксис и архитектура среды программирования визуального языка GRAPH+.

На защиту выносятся:

- графическая модель программирования параллельных вычислений;

- модель исполнения параллельных программ для кластерных и симметричных мультипроцессорных архитектур;

- алгоритмы трансляции графических программ;

- визуальный язык ОЯАРН+ и архитектура среды программирования.

Практическая ценность работы заключается в разработке системы визуального параллельного программирования ОЯАРН+, которая позволяет автоматизировать разработку параллельных программ для кластерных и симметричных мультипроцессорных систем. Программы, разработанные с использованием системы удобны для модификации, легко настраиваются для исполнения на системах с разным числом процессоров и разными операционными системами.

Результаты диссертационной работы получены в ходе исследований, проведенных в 1997-1998 гг. (в рамках работ по договору №1-х/д-97) в Самарском филиале Российского научно-исследовательского института информационных систем. Практическая ценность подтверждена актами внедрения. Результаты диссертационной работы внедрены в учебный процесс специальности 22.02.00 - автоматизированные системы обработки информации и управления, - Самарского государственного аэрокосмического университета. Метод проектирования подсистем распределенной и параллельной обработки, основанный на использовании визуального языка С11АРН+, внедрен в производственный процесс МИАЦ Главного управления здравоохранения администрации Самарской области.

Апробация работы. Основные положения диссертационной работы, научные и практические результаты докладывались на 3 всероссийских и 4 международных конференциях: Всероссийской молодежной научной конференции "XXIII Гагаринские чтения" (Москва, 1997); Всероссийской студенческой научной конференции "Королевские чтения" (Самара, 1997); Первой и Второй международной молодежной школе-семинаре БИКАМП (Санкт-Петербург, 1998 и 1999); IV Всероссийской научной конференции студентов и аспирантов "Техническая кибернетика, радиоэлектроника и системы управления" (Таганрог, 1998); VI Международной конференции "Математика, компьютер, образование" (Пущино, 1999); Международном симпозиуме "Надежность и качество", посвященном 275-летию Российской Академии наук (Пенза, 1999).

Публикации. Всего по теме диссертации опубликовано 8 печатных работ. Список опубликованных работ приведен в заключении.

Структура и краткое содержание диссертации:

Диссертация состоит из основной части и приложений. Основная часть содержит введение, четыре главы, заключение, список использованных источников. Приложение содержит тексты программ, акты внедрения.

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

ЗАКЛЮЧЕНИЕ

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

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

2. Построена модель исполнения, ориентированная на архитектуру кластерных систем. Данная модель предусматривает использование синхропримитивов типа «мьютекс» и «событие» для синхронизации вычислительных потоков, а также специальную операцию посылки сообщения.

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

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

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

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

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

Содержание диссертации отражено в следующих публикациях:

1. Востокин C.B. Визуальный язык параллельного программирования системы ГРАФ // НАДЕЖНОСТЬ И КАЧЕСТВО. Инновационные технологии производству XXI века / Кн. Докл. Международн. Симпоз., посвящ. 275-летию РАН. — Под ред. А.Н. Андреева, А.В. Блинова, Н.К. Юркова. — Пенза: Изд-во Пенз. гос. ун-та, 1999. С. 553-555.

2. Востокин C.B. Концепция разработки визуального языка параллельного программирования системы ГРАФ // Вторая международная молодежная школа-семинар БИКАМП-99 / Тез. докл. — С.-Петербург, 1999. С.121.

3. Востокин C.B. Автоматизация параллельного программирования с использованием визуального языка // Сб. "Вестник СГАУ", Серия: Актуальные проблемы радиоэлектроники, вып.1, Самара, 1999. С. 8083.

4. Востокин C.B. Разработка многопоточных программ в системе визуального программирования ГРАФ // VI Международная конференция "Математика, компьютер, образование"/ Тез. докл. — Москва, 1999, т.6. С.59.

5. Востокин C.B. Генерация текстов программ на основе графической модели системы ГРАФ // IV Всероссийская научная конференция студентов и аспирантов. "Техническая кибернетика, радиоэлектроника и системы управления"/ Тез. докл. — Таганрог, 1998. С.105.

6. Востокин C.B. Технология генерации текстов параллельных программ по графической модели алгоритма // Первая международная молодежная школа-семинар БИКАМП-98 / Тез. докл. — С.-Петербург, 1998. С. 57-58.

7. Востокин C.B. Компилятор подсистемы отладки системы графического программирования ГРАФ // Всероссийская студенческая научная конференция "Королевские чтения" / Тез. докл. — Самара 1997. С.56-57.

8. Востокин C.B. Подсистема отладки графо-символических объектов // Всероссийская молодежная научная конференция "XXIII Гагаринские чтения"/ Тез. докл. — Москва, 1997, ч. 5. С. 88.

Библиография Востокин, Сергей Владимирович, диссертация по теме Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)

1. Бауэр В. Введение в теорию конечных автоматов. Пер. с нем. — М.: Радио и связь, 1987, 392с.

2. Боглаев Ю.П. Вычислительная математика и программирование: Учеб. Пособие для студентов втузов.— М.: Высш. Шк., 1990.— 544с., ил.

3. Буза М.К., Курбатский A.A. Об одной формальной модели программ. Программирование, 1984, №3, с. 16-20.

4. Буч Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. — М.: «Издательство Бином», СПб.: «Невский диалект», 1999.

5. Вальковский В.А., Котов В.Е., Марчук А.Г., Миренков H.H. Элементы параллельного программирования — М.: Радио и связь, 1983, с. 214

6. Дийкстра Э. Взаимодействие последовательных процессов. — В кн. Языки программирования. —М.: Мир, 1972, с. 9-86.

7. Евреинов Э.В., Косарев Ю.В. Однородные универсальные вычислительные системы высокой производительности. — Новосибирск: Наука, 1966. — 308 с.

8. Каленьтьев А., Тюгашев A. CASE технология автоматизированного проектирования бортовых управляющих алгоритмов реального времени. // Тезисы докладов конф. БИКАМП - 98, Санкт-Петербург, 1998, с.71-72.

9. Кнут Д. Искусство программирования для ЭВМ. т.1: Основные алгоритмы.-М.:Мир, 1976.-736 с.

10. Коварцев А.Н. Автоматизация разработки и тестирования программных средств на основе технологии графосимволического программирования// Дисс. на соискание уч. степ. докт. тех. наук. Самара, 1999. С. 25-49.

11. Коварцев А.Н., Баландин A.B., Солдатова О.П. Концептуальные основы технологии графического программирования в системе

12. GRAPH // XI Российский коллоквиум "Современный групповой анализ задачи мат. Моделирования", Самара, 1993. Тезисы докладов.

13. Коварцев А.Н., Баландин A.B., Солдатова О.П. Технология графического программирования // Тезисы докладов науч-технич. Конф. "Новые информационные технологии в ВНР', СГАУ, 1993. С 89-90.

14. Константинов В.И., Левин Б.И. Быстродействующий метод внутренней сортировки. — Кибернетика, 1971, №5. С. 33-34

15. Корнеев В.В. Параллельные вычислительные системы. — М.: «Нолидж», 1999. 320 е., ил.

16. Косарев Ю.Г., Кучин Н.В. Параллельный алгоритм для решения задачи таксономии.— Вычислительные системы / ИМ СО АН СССР. — Новосибирск, 1970, вып. 42. С.3-11

17. Костин А.Е. Программный комплекс для сетевого имитационного моделирования дискретных систем с параллельными процессами. Управляющие системы и машины. — 1987, №4, с. 98-102.

18. Котов В.Е. Сети Петри. — М.: Наука, 1984, 158с.

19. Котов В.Е., Нариньяни A.C. Асинхронные вычислительные процессы на памятью. — Кибернетика, 1966, № 3, с. 64-71.

20. Кристофидес Н. Теория графов. Алгоритмический подход.— М. :Мир, 1979.

21. Кудрявцев В.Б., Алешин С.В., Подколзин A.C. Введение в теорию автоматов. — М.: Наука, 1985, 320с.

22. Марков A.A., "Теория алгоритмов". Труды Математического института им. В.А. Стеклова, 38: 176-189, 1951.

23. Марчук Г.И. Методы вычислительной математики. М., 1989.

24. Мешков А., Тихомиров Ю. Visual С++ и MFC. Программирование для Windows NT™ и Windows® 95: в 3-х т. Т.З.—СПб.: BHV— Санкт-Петербург, 1997.С. 87-174.

25. Миренков H.H. К решению системы линейных уравнений на ВС. — Вычислительные системы / ИМ СО АН СССР. — Новосибирск,1968, вып. 30. С.26-33

26. Миренков H.H. Параллельные алгоритмы для решения задач на однородных вычислительных системах. — Вычислительные системы / ИМ СО АН СССР. — Новосибирск, 1973, вып. 57. С.3-32.

27. Питерсон Дж. Теория сетей Петри и моделирование систем. Пер. с англ. — М.:Мир, 1984, 264с.

28. Поспелов Д.А. Введение в теорию вычислительных систем.— М.: Сов. радио, 1972, с.280.

29. Рихтер Дж. Windows для профессионалов: Программирование для Windows NT 4 на базе Win32 API / Пер. с англ. — М.: Издательский отдел «Русская редакция» ТОО «Channel Trading Ltd.» , 1997.— 712с.:ил.

30. Самарский A.A., Николаев Е.С. Методы решения сеточных уравнений. М., 1979.

31. Советов Б.Я., Яковлев С.А. Моделирование систем. М.:Высшая школа, 1985.-271с.

32. Тихонов А.Н. Самарский A.A. Уравнения математической физики. М., 1972.

33. Фути К., Судзуки Н. Языки программирования и схемотехника СБИС: Пер. с япон,— М.: Мир, 1988,—224 е., ил.

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

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

36. Чеппел, Д. Технология ActiveX и OLE. — М.: Издательский отдел «Channel Trading Ltd.», 1997.

37. Шамашов М.А. Инструментальная система программирования логических контроллеров ISaGRAPH. Учебное пособие./Самара: Самарский муниципальный комплекс непрерывного оброазования «Университет Наяновой», 1996,156 с.

38. Шамис В.А. Borland С++ Builder. Программирование на С++ без проблем. М.: «Нолидж», 1997—299 е., ил.

39. Шоу А. Логическое проектирование операционных систем. — М.: Мир, 1981,360 с.

40. Язык Пролог в пятом поколении ЭВМ: Сб. статей 1983-1986 гг.: Пер. с англ./ Сост. Н.И. Ильинский. — М.: Мир, 1988. С. 71-152.

41. Adams D.A. A Model for Parallel Computation, Parallel Processor Systems, Technologies and Applications, pp. 311-334, Spartan/MacMillan, New York, 1968.

42. Agerwala T. Some extended semaphore primitives.— Acta Informatica, 1977, vol. 8, pp.201-220.

43. Bohm C., Jacopini G., Flow Diagrams, Turing Machines, and Languages with Only Two Formulation Rules, Communications of ACM, May 1966.

44. Babaoglu O. "Paralex: An Environment for Parallel Programming in Distributed Systems", Proc. ACM Int. Conf. On Supercomputing, July, 1992.

45. Baer L.J., Bovet D.P. Compilation of arithmetic expressions for parallel computations.— Proc. IFIP Congress 68, North Holland Publ., Co., Amsterdam, 1968, pp.340-346.

46. Bailey D., Cuny В., and Loomis C. Paragraph: Graph editor support for parallel programming environments. International Journal of Parallel Programming, 19(2):75—110, 1990. Parallel programming environment graph grammar.

47. Beguelin A., Dongarra J.J., Geist G.A., Manchek R., and Sunderam V.S. A users' guide to PVM parallel virtual machine. Technical Report ORNL/TM-11826, Oak Ridge National Laboratory, July 1991.

48. Beguelin A., Dongarra J.J., Geist G.A., Manchek R., and Sunderam V.S. "Graphical development tools for network-based concurrent supercomputing", Proceedings of Supercomputing 91, pages 435-444, Albuquerque, 1991.

49. Beguelin A., Nutt G., "Collected Papers on Phred", Dept. of Computer Science, Univ. Of Colorado, CU-CS-511-91, Jan., 1991.

50. Bobrov, D. and Stefik, M. February 1986. Perspectives on Artificial Intelligence Programming. Science vol. 231, p.951.

51. Bobrov, D., DeMichiel, L., Gabriel, R., Keene, S., Kiczales, G., and Moon, D. September 1988. Common Lisp Object System Specification X3J13 Document 88-002R. SIGPLAN Notice vol. 23.

52. Bredt I., Analysis of Parallel Systems, Technical Report 7, Digital Systems Laborotary, Strandforn University, Strandford, California, August 1970, pp. 59; IEEE Transactions on Computers, c-20, No 11, 1971, p. 1403-1407.

53. Browne J.C., Azam M., and Sobek S., "CODE: A Unified Approach to Parallel Programming", IEEE Software, July, 1989, p. 11.

54. Bruno G., Harcheto G. Process tolerable Petri net for the rapid prototyping of process control systems // IEEE Transsoftware Eng. — 1986— vol. SE-12-p.346-357.

55. Chandy K. M., Kesselman C. Compositional C++: Compositional parallel programming. Technical Report Caltech-CS-TR-92-13, California Institute of Technology, 1992.

56. Chandy K. M., Misra J. Parallel Program Design. Addison-Wesley, 1988.

57. Childs D.L. A feasibility of set-theoretic data structure. A general structure based on reconstructed definitions of relations. — Proc. IFIP Congress 68, North-Holland Publ. Co. Amsterdam, 1969.

58. Church A., "An Unsolvable Problem of Elementary Number Theory", American Journal of Mathematics, 58: 345-363, 1936.

59. Commoner F., Holt A., Even S., Pnueli A. Marked Directed Graphs. Jornal of Computer and System Sciences, 5, No. 5, 1971, October 1971, p. 511-523.

60. Custer, H. Inside Windows NT. Redmond, Washington: Microsoft Press, 1993.

61. DeBruijn N.G. Additional comments on a problem in concurrentprogramming control. Communications of the ACM, 8(9):137—138, March 1967.

62. Dijkstra E.W. Cooperating Sequential Processes, in F. Genuys (editor) Programming Languages, New York: Academic Press, 1968, p.43-112.

63. Dijkstra E.W. Hierarchical ordering of sequential processes. — Acta Informática, 1971, v.l, No 2, p. 115-138.

64. Eigenmann R., and Blume W., An Effectiveness Study of Parallelizing Compiler Techniques, Proc. Intl. Conf. Par. Proc., 1991, pp. II17-25.

65. Eisenberg, M. and McGuire, M. Further comments on Dijkstra's concurrent programming control problem. Communications of the ACM, 15(11):999, November 1972.

66. Foster I., Chandy K.M. Fortran M: Modular Fortran for parallel programming. Technical report, Argonne National Laboratory, 1992.

67. Foster I., Kesselman C., and Tuecke S. Nexus: Runtime Support for Task-Parallel. Programming Languages, Preprint, Argonne National Laboratory, 1994.

68. Foster I., Taylor S. Strand: New Concepts in Parallel Programming. Prentice Hall, 1990.

69. Gilbert P., Chandler W., Interference Between Communicating Processes. Communications of ACM, 15, No. 3,1972, p.171-176.

70. Gill S. Parallel programming. — The Computer J. V.l, No 1, 1958, p.2-10.

71. Harel, D. 1987. Statecharts: A Visual Formalism for Complex Systems. Science of Computer Programming vol.8.

72. Hehner E. Predicative programming. Communications of the ACM, 27(2):134-151, February 1984.

73. Hiranandani S., Kennedy K., and Tseng C.-W., Compiler Support for Machine-Independent Parallel Programming in Fortran D, Rice University, CRPC-TR91132, 1991.

74. Hoare C.A.R. Communicating Sequential Processes, Printence-Hall Int.,1985.

75. Hopcroff J., Pansiot J. On the Reachablity Problem for 5-Dimentional

76. Vector Addition Systems, Technical Report 76-280, Department of Computer Science, Cornell University, Ithaca, New York, 1976, pp. 42.

77. HPC++ (URL: http://www.extreme.indiana.edu/sage/)

78. Jacobson, I., Christerson, M., and Overgard, G. 1992. Object-Oriented Software Ingineering. Workinggham, England: Addison-Wesley Publishing Company.

79. Karp R., Miller R. Parallel Program Schemata, RC-2053, IBM T.J. Watson Research Center. Yorktown Heights, New York, 1968, pp. 54; Jornal of Computer and Systems Science, 3, No.4, 1969, p. 167-195.

80. Karp R., Miller R., Properties of a Model for Parallel Computation: Determinacy, Teraiination and Queuing, SIAM Journal of Applied Math. 14, No.6, 1966, p. 1390-1411.

81. Keller R., Vector Replacement Systems: A Formalism for Modeling Asynchronous Systems, Technical Report 117, Computer Sciense Laboratory, Princenton University, Princenton, New Jersy, December 1972, pp. 38, revised January 1974, pp. 57.

82. Kleene S.C., «^-Definition and Recursiveness», Duke Mathematical Jornal, 2: 340-353, 1936.

83. Kleyn M. A High Level Language for Specifying Graph-Based Languages and their Programming Environments. Dissertation, Dept. of Computer Sciences, Univ. Of Texas at Austin, 1995.

84. Knuth D. Additional commments on a problem in concurrent program control. Communications of the ACM, 9(5):321, May 1966.

85. Kotov V.E. On basic parallel language.— In: Proc. IFIP Congress 80, North-Holland Publ. Co. Amsterdam, 1980, p.229-240.

86. Lamport L. A fast mutual exclusion algorithm. ACM Transactions on Computer Systems, 5(1), February 1987, pages 1-11.

87. Lamport L. Temporal logic of actions. Technical report, DECSRC, 1991.

88. Loyall J.P. Specification of Concurrent Systems Using Graph Grammars. PhD thesis, Dept. of Comp. Sei., Univ. of Illinois, Urbana-Champaign, May 1991.

89. Martin A.J. The Probe: An addition to communication primitives.1.formation Processing Letters, 20:125-130, April 1985.

90. Milner R. A Calculus of Communicating Systems, Lecture Notes in Computer Science, Springer-Verland, New York, 1980.

91. Newton P. A "Graphical Retargetable Parallel Programming Environment and Its Efficient Implementation", — Technical Report TR93-28, Dept. Of Computer Science, Univ. Of Texas at Austin, 1993.

92. Newton P. and Browne J.C. "The CODE 2.0 Graphical Parallel Programming Language". — Proc. ACM Int. Conf. On Supercomputing, July, 1992.

93. Newton, P. Visual programming and parallel computing. Workshop on Environments and Tools for Parallel Scientific Computing, Walland, TN, May 26-27,1994.

94. Occam™ Programming Manual, Prentice-Hall International, 1984.

95. Owicki S. and Gries D. An axiomatic proof technique for parallel programs I. Acta Informatica, 6(1 ):319-340,1976.

96. Patterson D. and Hennessy J., Computer Architecture: a Quantitative Approach, Morgan Kaufmann, San Mateo, CA, 1990.96. pC++ (URL: http://www.extreme.indiana.edu/sage/)

97. Pnueli A. The temporal logic of programs. In Proceeding of the 18th Symposium on the Foundations of Computer Science, pages 46-57. ACM, November 1977.

98. Pnueli A. The temporal semantic of concurrent programs. Theoretical Computer Science. 13:45-60, 1981.

99. Pnueli A. The temporal semantics of concurrent programs. In Gills Kahn, editor, Semantic of concurrent computation, volume 70 of Lecture Notes in Computer Science, pages 1-20. Springer-Verlag, July 1979.

100. Post E.L., "Finite Combinatory Process Formulation, I", The Journal of Symbolic Logic, 1: 103-105, 1936.

101. Ramamoorthy C.V., Park J.H., Li H.F. Compilation techniques for recognition of parallel processable tasks in arithmetic expressions.— IEEE Trans. On Computers, 1973, v. C-22, No 11, pp.981-998.

102. Reference Manual for the Ada Programming Language. February 1983.

103. Washington, D.C.: Department of Defence, Ada Joint Program Office.

104. Rost J. "D2R: A Dynamic Dataflow Representation for Task Scheduling", ACM SIGPLAN Notices, Vol. 28., No. 8, August, 1993.

105. Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F., and Loresen, W. 1991. Object-Oriented Modeling and Design. Englewood Cliffs, New Jersey: Prentice-Hall.

106. Shankar, A. And Lam, S. Time-depended communication protocols. In Simon S. Lam, editor, Principles of Communication and Networking Protocols, pages 504-519. IEEE Computer Society Press, Silver Spring, Maryland, 1984.

107. Shields M.W. An Introduction to Automata Theory. Blackwell Scientific Publications, 1987, 226p.

108. Sivilotti P. and Carlin P. A Tutorial for CC++. First Edition. Compositional Systems Research Group, Department of Computer Science, California Institute of Technology, Technical Report CS-TR-94-02.

109. Sunderam V.S. PVM: A Framework for Parallel Distributed Computing, Concurrency: Practice and Experience, 2(4):315-339, Dec., 1990.

110. Traversat B., "NEPTUNE: The Application of Course-Grain Data Flow Methods to Scientific Parallel Programming", Ph.D. dissertation, The Florida State University, 1990.

111. Turing A. "On computable numbers, with an application . to the Entscheidungsproblem", proceedings of the London mathematical Society, Series 2, 42: 230-265; and 43: 544-546, 1936.

112. Weish J., McKeag R.M. Structured System Programming. Prentice-Hall, London, 1980, pp.324.