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

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

Оглавление автор диссертации — доктора физико-математических наук Андрианов, Александр Николаевич

ВВЕДЕНИЕ

1. ОПИСАНИЕ ЯЗЫКА НОРМА

1.1. Описания

1.1.1. Описание областей

1.1.1.1. Описание безусловной области

1.1.1.2. Описание условной области

1.1.2. Описание индексов областей

1.1.3. Описание величин

1.1.4. Описание параметров области

1.1.5. Описание входных и выходных величин

1.1.6. Описание внешних имен

1.1.7. Описание индексов распределения

1.2. Операторы в языке НОРМА

1.2.1. Скалярный оператор

1.2.2. Оператор ASSUME

1.2.3. Обращение к функциям в языке Норма

1.2.3.1. Стандартные арифметические функции

1.2.3.2. Функции редукции

1.2.3.3. Внешние функции пользователя

1.2.4. Вызов раздела

1.2.5. Интерфейс с программами, написанными на Фортране

1.2.6. Задание режима последовательного вычисления

1.3. Итерация

2. ВОПРОСЫ ТРАНСЛЯЦИИ С ЯЗЫКА НОРМА 45 2.1 Организация циклического процесса по непроцедурной записи

2.1.1. Фронт вычислений

2.1.2. Вычисления на базовом фронте

2.1.3. Вычисления на фронте общего вида

2.1.4. Фронты вычислений в трехмерной области

2.1.4.1. Последовательно-параллельные вычисления

2.1.4.2. Последовательные вычисления

2.2. Трансляция с языка Норма для распределенных вычислительных систем

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

2.2.2. Методы трансляции распределенного раздела языка Норма

2.2.2.1. Распределение сеточных величин

2.2.2.2. Вспомогательные формулы

2.2.2.3. Индексные выражения вида i-i+c

2.3. Основные принципы реализации компилятора Норма

2.3.1. Функции компилятора Норма

2.3.2. Состав компилятора Норма 102 2.3.2.1 Структура компилятора Норма 102 2.3.2.2. Блок компиляции Норма-раздела

2.3.2.2.1 Локальная инициализация

2.3.2.2.2 Лексический анализ Норма-раздела

2.3.2.2.3 Синтаксический анализ Норма-раздела

2.3.2.2.4 Построение графа информационных зависимостей

2.3.2.2.5 Анализ графа информационных зависимостей

2.3.2.2.6 Генератор внутреннего представления Fortran-программы

2.3.2.2.7 Генератор кода Fortran программы

2.3.2.2.8 Анализатор входных файлов

2.3.2.2.9 Генератор листинга

2.3.2.2.10 Завершение компиляции раздела 116 3. ПРИМЕНЕНИЕ ЯЗЫКА НОРМА

ДЛЯ РЕШЕНИЯ ЗАДАЧ МАТЕМАТИЧЕСКОЙ ФИЗИКИ

3.1 Применение языка Норма для решения задач на статических структурных сетках

3.2 Применение языка Норма для решения задач на вложенных сетках 127 3.2 Применение языка Норма для решения задач на неструктурированных сетках

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

При разработке параллельных программ для супер-ЭВМ обычно используются следующие подходы:

1. Использование средств автоматического распараллеливания последовательных программ;

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

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

4. Введение специальных "распараллеливающих" конструкций в язык программирования.

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

6. Использование инструментальных систем, облегчающих разработку параллельных программ.

Остановимся подробнее на некоторых из указанных подходах. Для вычислительных задач наиболее употребителен язык Фортран. Этот язык стал своего рода рабочим языком многих математиков и инженеров, которые сводят решения своих задач к математическим вычислениям.

Распараллеливание программ, написанных на последовательном Фортране, является привлекательным подходом, так как позволяет использовать накопленные программы без глобального перепрограммирования. Был выполнен ряд работ, посвященных задаче автоматического выявления параллелизма в программах, написанных на последовательном Фортране.

Предложенная Д.Куком [1] модель, в основе которой лежит исследование графа зависимостей, послужила основой для разработки и реализации наиболее развитой системы статического анализа программ - Parafrase. На этой же базе построен пакет КАР[2-3], предназначенный для преобразования исходных текстов программ для конкретных параллельных ЭВМ.

Комбинация методов статического и динамического анализа [4-5] послужила основой для разработки многоцелевой системы V-Ray[6], Система V-Ray предназначена для изучения структуры больших программных комплексов и адаптации этих комплексов к требованиям целевых компьютеров с параллельной архитектурой. Описание системы и другие материалы можно найти в сети Интернет по адресу http: //paral lei .ru/v-ray.

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

Наиболее популярен в настоящее время является подход, связанный с программированием на стандартных языках с использованием высокоуровневых библиотек интерфейсов для организации межпроцессорного взаимодействия. Наиболее широко используемым является интерфейс MPI (Message Passing Interface)[7]. MPI содержит широкий набор подпрограмм, обеспечивающих, в частности, взаимодействие между процессами по типу точка-точка, а также между всеми процессами. Коммуникации могут быть буферизованные, небуферизованные, синхронные, асинхронные, с ожиданием.

Кроме того, MPI позволяет пользователю специфицировать топологию коммуникаций. MPI, с одной стороны достаточно сложная систем, состоящая из более, чем 120 функций, но с другой стороны она проста, так как большинство программ можно написать, используя только 6 главных подпрограмм [8].

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

Разработка расширений языков программирования часто преследует цель учесть архитектуру параллельных ЭВМ. При разработке расширений для поддержки параллельности имеются две стратегии [9]:

- создание новых языковых конструкций;

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

Применение данного подхода часто приводит к разработке для каждой конкретной супер-ЭВМ своей версии расширенного языка Фортран, а также трансляторов. Пользователь при использовании специализированных версий должен учитывать архитектурные особенности ЭВМ. В этом направлении выполнено достаточно много работ. Их описание можно найти в сети Интернет по адресу http://parallel.ru.

Практическим примером использования данного подхода является DVM-система [10], созданная в Институте прикладной математики им. М.В.Келдыша РАН. DVM-система позволяет разрабатывать на языках C-DVM и Fortran-DVM параллельные программы для ЭВМ различной архитектуры и сетей ЭВМ. При использовании языков C-DVM и Fortran-DVM программист имеет только один вариант программы и для последовательного и для параллельного выполнения. Эта программа, помимо описания алгоритма обычными средствами языков Си или Фортран 77, содержит правила параллельного выполнения этого алгоритма. Эти правила оформляются синтаксически в виде спецкомментариев, поэтому они являются "невидимыми" для стандартных компиляторов с языков Си и Фортран для последовательных ЭВМ и не препятствуют выполнению и отладке DVM-программы на рабочих станциях как обычной последовательной программы.

Компилятор переводит программу на языке C-DVM (Fortran-DVM) в программу на стандартном языке Си (Фортран), расширенную функциями системы поддержки выполнения DVM-программ, которая для организации межпроцессорного взаимодействия использует стандартные коммуникационные библиотеки (MPI, PVM).

Другим примером является Т-система [11], которая разработана и реализована в ИПС РАН. Т-система состоит из системы программирования и run-time среды, реализующих распараллеливание программ. Т-система реализует принцип автоматического динамического распараллеливания программ за счет использования функциональной парадигмы (программы для Т-системы определяют набор чистых, без побочного эффекта, функций) и особой моделивычисления функциональных программ: процесс вычисления -это процесс автотрансформации вычислительной сети. В настоящее время разрабатывается новая версия Т-системы, основанная на методе параллельной редукции графа программы и учитывающая опыт эксплуатации первой версии Т-системы.

При разработке новых языков параллельного программирования обеспечиваются возможности:

1. явного задания параллелизма, заложенного в алгоритм. Особенности параллельной ЭВМ при написании программ учитываются,

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

Примерами языков типа 1) является Occam [12], типа 2) языки Sisal[13], ZPL[14], Язык ZPL специально предназначен для записи и эффективной реализации задач в области научных и инженерных вычислений. В языке особое внимание уделяется работе с массивами. Язык содержит стандартные конструкции (условные операторы, процедуры и т.п.) и является машинно независимым. Программист не определяет, какие участки программы должны выполняться параллельно. Эта задача возлагается на компилятор. Проблемы межпроцессорного обмена решается на уровне системы поддержки (аналогично, как и в DVM-системе).

Непроцедурный (декларативный) язык Норма, рассматриваемый в данной работе, также является представителем языков программирования нового поколения.

Предпосылки разработки

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

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

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

Проблему определения набора содержательных обозначений (общих и типичных) для конкретной предметной области надо решать, видимо, с учетом двух факторов:

- обеспечение дружественного интерфейса для пользователя (терминов должно быть достаточно, работать с ними просто и удобно, ничего лишнего знать не нужно);

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

Исследования в области организации процесса вычислений для заданий подобного вида начали проводится достаточно давно. В 1956 г. сотрудниками ИПМ РАН С.С.Камыниным и Э.З.Любимским было предложено описывать вычислительные задачи в виде определенных математических соотношений, которые не задают явно циклического процесса решения задачи и допускают различные способы построения такого процесса для решения задачи. Эта форма математического описания решения задачи получила название параметрической записи [15-16]. В дальнейшем такие способы называли "непроцедурными описаниями", а в последнее время обычно "декларативными описаниями". Соответствующие языки описаний носят характер спецификаций, в которых можно описывать правила вычисления значений, а порядок вычисления может быть любой (в частности, в последовательном или параллельном режиме), лишь бы удовлетворялись указанные правила.

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

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

И.Б.Задыхайло[17-19], привели к появлению языка Норма и нескольких версий транслятора для него.

Цели разработки

Практическая ценность методов разработки прикладного программного обеспечения определяется в первую очередь тем, в какой степени они:

1) автоматизируют процесс разработки прикладных программ,

2) поддерживают создание надежныхи мобильных прикладных программ,

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

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

Новые технологические достижения и разработки в области архитектуры ЭВМ дают очень большие потенциальные вычислительные возможности, однако их полное использование на практике связано с трудностями, если учитывать необходимость выполнения требований (1)-(3). Так, с появлением высокопроизводительных многопроцессорных ЭВМ, возник вопрос о том, каким образом для них разрабатывать прикладные программы?

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

Язык Норма и подход к разработке прикладных программ, основанный на его применении, является попыткой учесть требования (1)-(3). Конечно, надо отдавать себе отчет в том, какие трудности возникают при решении этой фундаментальной задачи, и что, скорее всего, достаточно полного и универсального способа ее решения сразу получить не удастся. Однако некоторые достоинства предлагаемого подхода можно отметить уже сейчас.

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

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

Надежность программирования и мобильность.

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

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

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

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

Метод создания параллельных программ.

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

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

Заключение диссертация на тему "Система Норма"

Основные результаты

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

• Решена задача синтеза выходной параллельной программы по непроцедурному описанию решения задачи на языка Норма.

• Разработан транслятор-синтезатор с языка Норма. Транслятор позволяет получать объектные программы на следующих языках: Fortran-77, Fortran-GNS, Fortran-DVM, Fortran-PVM, Fortran-MPI. Транслятор реализован на персональных компьютерах (под управлением MS DOS или Windows), а также на кластерах рабочих станций (под управлением ОС Unix).

• Система Норма использована для решения ряда практических задач математической физики на статических структурных, неструктурных и адаптивных вложенных сетках.

Печатные работы по теме диссертации

1. А.Н.Андрианов, К.Н.Ефимкин, И.Б.Задыхайло. Непроцедурный язык Норма и методы его реализации. В сб. Языки и параллельные ЭВМ (серия "Алгоритмы и алгоритмические языки"). М., Наука, 1990, с. 3-37.

1. А.Н.Андрианов, М.М.Васильев, К.Н.Ефимкин, И.Б.Задыхайло, В.Н.Иванова. О решении методом потенциалов трехмерной задачи обтекания тела стационарным потоком вязкой несжимаемой жидкости. Препринт ИПМ им.М.В.Келдыша РАН, N 62, 1992, 27 с.

2. A.N.Andrianov, K.N.Efimkin, I.B.Zadykhailo. Nonprocedural Language Norma and Problems of its Implementation. Thes. First Int. Workshop "Software for Multiprocessors and Supercomputers: Theory, Practice, Experience", St. Petersburg, Russia, Febr. 14-20, 1993.

3. A.N.Andrianov, K.N.Efimkin, I.B.Zadykhailo. Nonprocedural language Norma and problems of its implementation. Proc. First Int. Workshop "Software for Multiprocessors and Supercomputers: Theory, Practice, Experience. Moscow, Russia September 19-23, 1994, p. 523-530.

4. А.Н.Андрианов, А.Б.Бугеря, К.Н.Ефимкин, И.Б.Задыхайло. Норма. Описание языка. Рабочий стандарт. Препринт ИПМ им.М.В.Келдыша РАН, N,120, 1995, 50 с.

6. А.Н.Андрианов, А.Б.Бугеря, К.Н.Ефимкин, И.Б.Задыхайло. Методы и алгоритмы трансляции языка Норма для распределенных систем. Часть 1. Отчет ИПМ им.М.В.Келдыша РАН, N 462-95, 1995.

7. Андрианов А.Н., Андрианова Е.А. Организация циклического процесса по непроцедурной записи. Программирование, N4, 1996 с. 62-72.

8. А.Н.Андрианов, С.Б.Базаров, К.Н.Ефимкин. Решение двумерных задач газовой динамики методом С.К.Годунова на параллельных ЭВМ с помощью языка Норма. Тез. XXI Научных чтений по космонавтике, Москва, 28-31 января 1997, с. 55-56

9. А.Н.Андрианов, С.Б.Базаров, К.Н.Ефимкин. Применение языка Норма для решения трехмерных задач газовой динамики методом Годунова на многопроцессорных ЭВМ. Препринт ИПМ им.М.В.Келдыша РАН, N63, 1997, 17 с.

10. Andrianov, S.B.Bazarov, K.N.Efimkin, I.B.Zadykhailo. The declarative Norma language for the solution of mathematical physics problems on multiprocessors computers. Proceedings of the Int. Congress of Mathematicians, Berlin, Aug 18-27, 1998.http:/www/mathematic.inibielefeld.de/ICM98/abstracts/ps/late.html

11. А.Н.Андрианов. Использование языка Норма для решения вычислительных задач на нерегулярных сетках. Тез. Всеросс. научн. конф. "Фундаментальные и прикладные аспекты разработки больших распределенных программных комплексов", Новороссийск, 1998, с. 120123.

12. A.N.Andrianov, S.B.Bazarov, A.B.Bugerya K.N.Efimkin. Solution of three-dimensional problems of gas dynamics on multiprocessor computers. Compitational mathematics and modeling, v. 10, N2, 1999, p. 140-150.

13. А.Н.Андрианов, С.Б.Базаров, А.Б.Бугеря, К.Н.Ефимкин. Решение трехмерных задач газовой динамики на многопроцессорных ЭВМ. В сб. Проблемы математической физики, М., Диалог-МГУ, 1999, с. 172-183.

14. А.Н.Андрианов, С.Б.Базаров, К.Н.Ефимкин. Применение параллельных ЭВМ для визуализации газодинамических расчетов. Тезисы докладов 10-й юбилейной международной конференции по вычислительной механике и современным прикладным программным средствам (Переславль-Залесский, 7-12 июня 1999), Москва, изд. МГУ, 1999, с. 298-299.

15. А.Н.Андрианов, Г.Н.Гусева, И.Б.Задыхайло. Применение языка Норма для расчета дозвукового течения вязкого газа. Математическое моделирование, т.11, N 9, 1999, с. 45-53.

16. А.Н.Андрианов, К.Н.Ефимкин. Опыт применения системы Норма для решения задач математической физики на параллельных ЭВМ с распределенной памятью. Сборник лекций Первой Всеросс. научн. молодежной школы "Суперкомпьютерные вычисления и информационные технологии в физических и химических исследованиях", Черноголовка, 1-2 ноября, 1999, с. 117-132.

17. А.Н.Андрианов, К.Н.Ефимкин. Использование системы Норма для решения вычислительной задачи на многопроцессорных системах с распределенной памятью. Сборник докладов Всеросс. научн.конференции "Высокопроизводительные вычисления и их приложения", Черноголовка, 30 октября-2 ноября, 2000, с. 39-42.

18. А.Н.Андрианов, К.Н.Ефимкин. Использование системы Норма для решения вычислительных задач на многопроцессорных системах с

ЗАКЛЮЧЕНИЕ

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

Новизна полученных в работе результатов

В работе впервые:

• Предложен специализированный непроцедурный язык Норма для описания решения задач математической физики на статических структурированных сетках.

• Разработан и реализован метод синтеза программ по непроцедурной записи соотношений специального вида.

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

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

Практическая ценность результатов

Практическая значимость работы подтверждается успешным применением системы Норма для решения задач математической физики. Система Норма в настоящее время установлена и используется в ИПМ РАН, НИВЦ МГУ.

Апробация результатов

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

1. Kuck D.J., Ahmed H.S., Cytron R. Etc. The effect of Program Restructuring,

2. Algorithm Change and Architecture Choice on Program Perfomance. Proc. Of the1.PP, 1984, p.129-138.

3. Huson С et al/ The KAP/205: An Advanced Source-to Source Vectorizer for the

4. Cyber 205 Supercomputers. IEEE Proc of the ICPP/ 1986, p.827-832.

5. Maske T. Et al. The КАР /ST-100: A Fortran Translator for the ST-100 Attached

6. Processor. IEEE Proc of the ICPP. 1986, p. 171-175.

7. Voevodin VI.V.: Theory and Practice of Parallelism Detection in Sequential Programs. Programming and computer software (1992) N. 5.

8. Вл.В. Воеводин Статический анализ и вопросы эффективной реализации программ. В сб. Вычислительные процессы и системы. Т.9, 1993, 249-301.

9. MPI W.Gropp, E.Lusk, A.Skjellum. Using MPI. Portable Parallel Programming with the Message-Passing Interface,2nd ed.1999, The MIT Press, Cambridge, Massachusetts, London, England.

10. E.Bucchignani, R.Mella, P.Schiano, G.Richelli. Comparison of the MPI and PVM performance by using structured and unstructered CFD codes. Parallel Computatinal Fluid Dynamics Recent Developments and Advances Using Parallel Computers, pp. 125-132.

11. Транспьютеры. Архитектура и программное обеспечение. Под ред. Г.Харпа. М., Радио и связь, 1993 г.

12. A Tutorial Introduction to Sisal, A High Performance, Portable, Parallel Programming Language, http:// www.sys.uea.ac.uk/~jrwg/Sisal.

13. A Programmers Guide to ZPL. Department of Computer Science and Engineering, Univercity Of Washington, Seattle WA N98195. http://www.cs.washington.edu/research/zpl.

14. Э.З. Любимский. Об автоматизации программирования и методе программирующих программ. Дисс. канд. физ-мат. наук. М., 1958.

15. М.Р. Шура-Бура, С.С. Камынин, Э.З. Любимский. Об автоматизации программирования при помощи программирующих программ. Сб. Проблемы кибернентики, вып.1,физматгиз, М., 1958.

16. И.Б.Задыхайло. Организация циклического процесса счета по параметрической записи специального вида. Журн. выч. мат. и мат. физ., 3, N2, 1963, с. 337-357.

17. А.Н.Андрианов, И.Б.Задыхайло, А.Н.Мямлин, Н.В.Поддерюгина, Л.А.Поздняков. Тенденции в развитии Супер-ЭВМ. Внешнее окружение и языковые проблемы. Прикладная информатика, вып.2,1984г., с. 187-199.

18. А.Н. Андрианов. Организация циклических вычислений в языке Норма. Препринт ИПМ им. М.В.Келдыша АН СССР, 1986, N 171, 28 с.

19. А.Н. Андрианов. Синтез параллельных и векторных программ по непроцедурной записи в языке Норма. Дис. канд. физ.-мат. наук, М., 1990. 144 с.

20. А.Н. Андрианов, Е.А. Андрианова. Организация циклического процесса по непроцедурной записи. Программирование N4, 1996, 62-72с.

21. R.M. Karp, R.E. Miller, S. Winograd. The organization of computations for uniform reccurence equations. Journal of the ACM, N3, 1967.

22. A. Pnuelli, R. Zarhi. Realizing an equational specification. Lecture Notes in Computer Science, VI15, 1981.

23. В.А. Вальковский, В.Э. Малышкин. Синтез параллельных программ и систем на вычислительных моделях. Новосибирск, Наука, 1988г.

24. J.M.Delosme, I.C.Ipsen. Design Methodology for systolic arrays. SPIE,vol.696,Advanced Algorithms and Arhitectures for Signal Processing, 1986.

25. S.K.Rao, T.Kailath. What is a systolic algorithm. SPIE,vol.614, Highly Parallel Signal Processing Arhitectures, 1986.

26. Convex PVM User's Guide for Exemplar System. Order № DSW-544, Convex Press, Richardson, Texas, USA, October 1994, pp. 1-141.

27. В.А.Абрамова и др. Система программирования GNS. Описание языка Фортран-GNS. Препринт ИПМ им. М.В.Келдыша АН СССР, 1997, N 59.

28. А.Н.Андрианов, А.Б.Бугеря, К.Н.Ефимкин, И.Б.Задыхайло. Методы и алгоритмы трансляции языка Норма для распределенных систем. Часть 1. Отчет ИПМ им.М.В.Келдыша РАН, N 462-95, 1995.

29. А.Н.Андрианов, А.Б.Бугеря, К.Н.Ефимкин, И.Б.Задыхайло. Методы и алгоритмы трансляции языка Норма для распределенных систем. Часть 2. Отчет ИПМ им.М.В.Келдыша РАН, N 352-96, 1996.

30. В.Ф.Турчин. Программирование на языке Рефал. Препринт ИПМ им. М.В.Келдыша АН СССР, 1971, N 41,NN 43-44,NN 48-49.

31. М.Эллис, Б.Строуструп. Справочное руководство по языку программирования СИ++ с комментариями. Мир, М., 1992г.34. http://parallel.ru:8).

32. Bisikalo, D. V.; Boyarchuk, A. A.; Kuznetsov, O. A.; Chechetkin, V. M. The Effect of Viscosity on the Flow Morphology in Semidetached Binary Systems. Results of 3D Simulations. II. Journal:Astronomy Reports, Volume 44, Issue 1, January 2000, pp.26-37.

33. Вычислительный кластер НИВЦ МГУ. http://parallel.rur81.

34. Корнельский университет устанавливает 256-процессорный кластер на базе SMP-Серверов DELL С Windows NT. littp://parallel.ru/:81 /cluster/configuration.html

35. Advanced Cluster Computing Consortium Established at Cornell.http://www.tc.cornell.edu/er/media/1999/ac3.html

36. А.В.Забродин, В.К.Левин. Опыт разработки параллельных вычислительных технологий. Создание и развитие семейства МВС. Труды Всеросс. научн. конф. "Высокопроизводительные вычисления и их приложения", Черноголовка, 2000, с.3-8.

37. M.V.Sazhin, Ustyugov S.D. and Chechetkin V.M. Pisma Zh.Teor.Fiz.,64,1996,Jetp.Lett., 64, 817, 1996.

38. Ustyugov S.D., and Chechetkin V.M. Supernovae explosions in the presence of large-scale convective instability in a rotating protoneutron star. Astronomy reports, V43, Issue 11, 1999, p.718-726.

39. B.N. Chetverushkin. On improvement of gas flow description via kinetically-consistent difference schemes Experimentation, Modelling and Computation in Flow, Turbulence and Combustion, vol.2., John Wiley & Sons, Chichester, 1997, pp.27-38.

40. S.M. Deshpande. Kinetic flux splitting schemes Сотр. dynamic review, John Wiley & Sons, Chichester, 1995, pp.161-181.

41. А.Н.Андрианов, А.Жохова, Б.Н.Четверушкин. Использование параллельных алгоритмов для расчетов газодинамических течений на нерегулярных сетках. В сб. Прикладная математика и информатика, М., Диалог-МГУ, 2000, с. 68-76.

42. L.01iker. PLUM: Parallel Load Balancing for Adaptive Unstructered Meshes. Journal of Parallel and Distributed Computing 52, 150-177(1998).

43. G.Karypis, K.Schloegel, V.Kumar. ParMETIS Parallel Graph Partitioning and Sparse Matrix Ordering Library. Version 2.0. 1998 ( http: //www.cs.umn.edu/ -karypis).

44. C.Walshaw, M.Cross. Parallel Optimisation Algorithms for Multilevel Mesh Partitioning. Tech. Rep. 99/IM/44, Univ. Greenwich, London SE18 6PF, UK, February 1999.