Исследование и разработка языковых средств описания неоднородных вычислительных систем и их реализация в системе программирования mpC тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат физико-математических наук Ледовских, Илья Николаевич

  • Ледовских, Илья Николаевич
  • кандидат физико-математических науккандидат физико-математических наук
  • 2000, Москва
  • Специальность ВАК РФ05.13.11
  • Количество страниц 128
Ледовских, Илья Николаевич. Исследование и разработка языковых средств описания неоднородных вычислительных систем и их реализация в системе программирования mpC: дис. кандидат физико-математических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Москва. 2000. 128 с.

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

Введение

1. Обзор языков и систем параллельного программирования

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

3. Язык шрС. Основные аспекты семантики.

3.1. Модель архитектуры вычислительного узла

3.2. Концепция вычислительного пространства

3.3. Средства управления вычислительным пространством

3.3.1. Средства описания сетевых типов

3.3.1.1. Объявление системы координат

3.3.1.2. Объявление узлов

3.3.1.3. Объявление связей

3.3.1.4. Объявление родительского узла

3.3.2. Описание сетей и подсетей

3.3.2.1. Объявление сетей

3.3.2.2. Спецификатор типа сети

3.3.2.3. Описатель сети

3.3.2.4. Объявление подсетей

3.3.3. Описание распределенных данных

3.3.3.1. Явное объявление распределенных объектов данных

3.3.3.2. Явное объявление нераспределенных объектов данных

3.3.3.3. Неявное объявление распределения объектов данных

3.3.3.4. Объявление размазанных объектов данных

3.3.4. Распределение вычислений

3.3.4.1. Выражения

3.3.4.2. Операторы

4. Реализация средств управления вычислительным пространством

4.1. Выбор и обоснование подхода к реализации

5.2. Компиляция определения типа сети и топологические функции

4.3. Генерация топологических функций компилятором

4.4. Анализ семантики описаний

4.5. Анализ распределенных вычислений

4.6. Эффективность реализации

5. Другие аспекты реализации и использования языка шрС

5.1. Оценка сложности программирования на языке шрС

5.2. Интерактивная подсистема mpC Adviser

5.2.1. Общая характеристика подсистемы шрС Adviser

5.2.2. Режим расширенной диагностики ошибок

5.2.3. Режим интерактивной диагностики ошибок

5.2.4. Интерактивный режим исследования программы 93 Заключение 94 Список литературы 97 ПРИЛОЖЕНИЕ 1 100 ПРИЛОЖЕНИЕ 2 109 ПРИЛОЖЕНИЕ 3 124 ПРИЛОЖЕНИЕ

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Исследование и разработка языковых средств описания неоднородных вычислительных систем и их реализация в системе программирования mpC»

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

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

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

В данной работе требованию эффективной переносимости уделяется первоочередное внимание в следующем контексте.

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

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

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

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

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

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

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

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

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

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

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

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

Язык шрС представляет собой строгое расширение языков ANSI С и С[]. Надо отметить, что ранее разработанный язык С[] также решал задачу эффективной переносимости программ, только в классе векторных и суперскалярных компьютеров (о языке С[] см. приложение 1 и [33-35]). Язык трС поддерживает эффективное, переносимое, модульное и эффективно-переносимое параллельное программирования неоднородных сетей компьютеров. Основная идея заключается в том, что язык шрС позволяет пользователю специфицировать структуру виртуальной параллельной вычислительной системы (ее топологию) и определять так называемые сетевые объекты, а также распределять данные и вычисления между этими сетевыми объектами. Другими словами, пользователю предоставляются языковые средства для описания топологии задачи, а система программирования шрС использует эту информацию, а также информацию о топологии целевой вычислительной машины с распределенной памятью для того, чтобы динамически (то есть в период выполнения программы) отобразить сетевые объекты шрС на целевую вычислительную сеть таким образом, чтобы обеспечить наилучшее время выполнения программы.

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

Практическая значимость работы Первая версия системы программирования шрС была реализована в октябре 1996 года и помещена в Internet для свободного доступа по адресу http://www.ispras.ru/~mpc. В настоящее время доступна врсия 2.1.0 системы, оттестированная для неоднородных сетей, состоящих из рабочих станций, многопроцессорных серверов и персональных компьютеров под управлением различных версий операционной системы UNIX, и различных реализаций MPI. Как и предыдущие версии системы, текущая версия переносима и легко устанавливается на различных платформах. Система программирования шрС пользуется достаточно большой популярностью среди специалистов по высокопроизводительным вычислениям и скачивается с сервера Института системного программирования РАН в среднем 1-2 раза в сутки, а ее описание - 3-4 раза в сутки.

Личный вклад автора состоит в следующем:

• На основе теоретических разработок А.Л.Ластовецкого и Т.Льюиса разработаны синтаксис и семантика (составлено описание) язысовых средств описания неоднородных вычислительных систем. Эти языковые конструкции вошли в язык параллельного программирования шрС.

• Разработана полная LALR-грамматика языка шрС.

• Спроектировано и реализовано внутреннее представление программы в компиляторе с языка шрС.

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

• В процессе реализации уточнено и изменено первоначальное описание ряда конструкций языка шрС.

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

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

• Выполнен перенос системы программирования трС, первоначально реализованной на платформе Sun/Solaris, на ряд Unix-платформ: HP-UX 9.08 и 10.20, SunOS 4.1.3, OSF/1, Linux (Red Hat Linux 4.0 и 5.2), FreeBSD 3.0 и 3.4.

Диссертационная работа построена следующим образом.

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

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

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

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

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

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

В заключении суммируются полученные результаты.

Приложение 1 содержит описание языка С[], являющего подмнокеством шрС.

Приложение 2 содержит грамматику языка трС.

Приложения 3 и 4 содержат примеры кода, генерируемого компшятором по описаниям топологий сетей различной сложности.

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Ледовских, Илья Николаевич

7. ЗАКЛЮЧЕНИЕ

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

• Совместно с д.ф.-м.н. Ластовецким создана языковая модель абстрактной параллельной неоднородной вычислительной системы.

• На основе этой модели разработан язык программирования трС, предназначенный для эффективно-переносимого программирования вычислительных систем с распределенной памятью, в том числе неоднородных.

• Разработаны принципы эффективной реализации средств описания абстрактной параллельной вычислительной системы языка трС.

В диссертационной работе также получены следующие практические результаты:

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

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

• Разработана и реализована не имеющая аналогов интерактивная компонента системы программирования трС - трС Adviser, облегчающая написание семантически сложных программ на языке шрС.

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

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

Система программирования шрС реализована, помещена в Internet для свободного доступа и используется для программирования неоднородных сетей персональных компьютеров и рабочих станций (в компании West Virginia Network, Университете Миссури, Межведомственном суперкомпьютерном центре, Московском институте инженеров транспорта, Университете Луизианы, Институте высокопроизводительных вычислений и баз данных и т.д.).

Язык и его система программирования используются или планируются к использованию в качестве базы для курсов по параллельному программированию в Московском институте инженеров транспорта, Университете Луисвилля (США), Университете штата Небраска в Омахе (США) и Военно-морской академии (Монтерей, США).

Высокая эффективность программирования задач для неоднородных вычислительных сетей была подтверждена путем создания ряда приложений из разных областей науки. В настоящее время запланирована разработка прикладного программного обеспечения на языке шрС для нужд Института биоорганической химии РАН и НИИ Атомных Реакторов (г.Димитровград).

Практическая значимость языка шрС была высоко оценена специалистами по разработке программного обеспечения для высокопроизводительных вычислительных систем. Язык трС выбран в качестве объектного языка в совместном проекте CD AC (Centre for Development of Advanced Computing, Bangalore, India) и ИСП РАН по созданию распараллеливающего компилятора с языка Fortran 90 для системы PARAM-10000.

Язык трС и его система программирования находятся в процессе постоянного развития и совершенствования. Новые расширения языка и его компилятора связаны как с развитием модели неоднородной вычислительной системы, так и с переносом системы программирования на новые платформы. Так, планируется перенос системы программирования трС в среду Windows NT и Windows 2000.

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

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

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

Список литературы диссертационного исследования кандидат физико-математических наук Ледовских, Илья Николаевич, 2000 год

1. H.El-Rewini, and T.Lewis, Introduction To Distributed Computing. Manning Publications Co., 1997.

2. High Performance Fortran Forum, High Performance Fortran Language Specification, version 1.1. Rice University, Houston TX, November 10, 1994.

3. Extending High Performance Fortan for the Support of Unstructured Computations, Centro Svizzero di Calcolo Scientifico, Technical Report 94-08

4. P.Banerjee, J.A.Chandy, etc., "An Overview of the PARADIGM Compiler for Distributed-Memory Multicomputer", IEEE Computer, v.28,10, Oct. 1995.

5. G.Fox, S.Hiranandani, K.Kennedy, C.Koelbel, U.Kremer, C.-W.Tseng, and M.-Y.Wu, Fortran D Language Specification. Center for Research on Parallel Computation, Rice University, Houston, TX, October 1993.

6. B.Chapman, P.Mehrotra, and H.Zima, "Programming in Vienna Fortran", Scientific Programming, 1(1), 1992, pp.31-50.

7. The CM Fortran Programming Language. CM-5 Technical Summary, Thinking Machines Corporation, November 1992, pp. 61-67.

8. The C* Programming Language. CM-5 Technical Summary, Thinking Machines Corporation, November 1992, pp. 69-75.

9. P.J.Hatcher, and M.J.Quinn, Data-Parallel Programming on MIMD Computers. The MIT Press, Cambridge, MA, 1991.

10. M.Philippsen, and W.Tichy, "Modula-2* and its compilation", First International Conference of the Austrian Center for Parallel Computation, Salzburg, Austria, 1991.

11. T.Braeunl, "Parallaxis-III: A Language for Structured Data-Parallel Programming", IPVR, Univ.Stuttgart, Germany, Sept. 11,1994.

12. I.Foster, and K.M.Chandy, "Fortran M: A language for modular parallel programming", Journal of Parallel and Distributed Computing, 26(1), 1995, pp. 24-35.

13. K.M.Chandy, and C.Kesselman. CC++: A Declarative Concurrent Object Oriented Programming Language. Technical Report CS-TR-92-01, California Institute of Technology, Pasadena, CA, 1992.

14. G.E.Blennoch, "NESL: A Nested Data-Parallel Language (version 3.1)", Technical Report CMU-CS-95-170, 1995.

15. B.Alexander, D.Engelhardt, and A.Wendeborn, "An Overview of the Adl Language Project", University of Adelaide, Australia, Sept.3 1997.

16. P.Brinch Hansen, "The Programming Language SuperPascal", School of Computer and Information Science, Syracuse University, Syracuse, USA, 1993.

17. Split-C, http://www.cs.berkely.edu/projects/parallel/castle/split-c

18. A.Geist, A.Beguelin, J.Dongarra, W Jiang, R.Manchek, V.Sunderam, PVM: Parallel Virtual Machine, Users' Guide and Tutorial for Networked Parallel Computing, MIT Press, Cambridge, MA, 1994.

19. The Nexus Multithreaded Runtime System, http://www.mcs.anl.gov/nexus/index.html.

20. R.Calkin, R.Hempel, H.-C.Hoppe, and P.Wypior, "Portable Programming with the Parmacs message-passing library", Parallel Computing, Special issue on message-passing interface.

21. R.Butler and E.Lusk, "Monitors, Messages, and Clusters: the p4 Parallel Programming System", Journal of Parallel Computing, 20:547-568, 1994.

22. W.D.Gropp, and B.Smith. Chameleon Parallel Programming Tools Users Manual. Technical Report ANL-93/23, Argonne National Laboratory, March 1993.

23. CHIMP Version 1.0 Interface. Edinburgh Parallel Computing Centre, University of Edinburgh, May 1992.

24. BSP: The bulk Synchronous Parallel Model, http://www.bsp-worldwide.org.

25. A.Skjellum, and A.Leung, "Zipcode: A Portable Multicomputer Communication Library", Proceedings of the 5-th Distributed Memory Concurrent Computing Conference, IEEE Computer Society Press, 1990, pp. 767-776.

26. I.Foster, J.Geisler, C.Kesselman, and S.Tuecke, "Managing Multiple Communication Methods in High-Performance Networked Computing Systems", Journal of Parallel and Distributed Computing.

27. G.Fagg, and J.Dongarra, "PVMPI: Inter-operation and Co-ordination of MPI-1 Applications across multiple systems and MPI implementations", http://www.cs.utk.edu/~fagg/mpiglue/.

28. Message Passing Interface Forum, MPI: A Message-passing Interface Standard, version 1.1, June 1995.

29. LAM/MPI Parallel Computing, http://www.osc.edu/lam.html.

30. MPICH A Portable Implementation of MPI, http://www.mcs.anl.gov/mpi/mpich/.

31. MPI-2: Extensions to the Message-Passing Interface, http://www.mcs.anl.gov/mpi/.

32. Dome: Distributed Object Migration Environment, http://www.cs.cmu.edu/~Dome/.

33. С.С.Гайсарян, А.Л.Ластовецкий, И.Н.Ледовских, Д.А.Халецкий, "Расширение ANSI С для векторных и суперскалярных компьютеров", Программирование, 1995, N1, сс. 26-36.

34. А.Л.Ластовецкий, И.Н.Ледовских, "Анализ структурной эквивалентности описаний в компиляторе с языка С.", Вопросы кибернетики: Приложения системного программирования, Научный совет по комплексной проблеме "Кибернетика" РАН, Москва, 1995, сс. 6-19.

35. A.Lastovetsky, "mpC a Multi-Paradigm Programming Language for Massively Parallel Computers", ACM SIGPLAN Notices, 31(2), February 1996, pp.13-20.

36. D.Arapov, A.Kalinov, and A.Lastovetsky, "Resource Management in the mpC Programming Environment", Proceedings of the 30th Hawaii International Conference on System Sciences (HICSS'30), IEEE CS Press, Maui, HI, January 1997.

37. D.Arapov, V.Ivannikov, A.Kalinov, A.Lastovetsky, and I.Ledovskih, "Managing Processes with Network Objects and Their Translation", Proceedings of the EUROMICRO'98 International Conference, IEEE Computer Society, August 25-27,1998, Vasteras, Sweden

38. D.Arapov, A.Kalinov, A.Lastovetsky, and I.Ledovskih, "A Language Approach to High Performance Computing on Heterogeneous Networks", accepted for publication in Parallel and Distributed Computing Practices.

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