Научно-методическая конференция
«ИНТЕРНЕТ И СОВРЕМЕННОЕ ОБЩЕСТВО»

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

А.В. Комолкин, С.А. Немнюгин, А.В. Захаров, О.Л. Стесик

Санкт-Петербургский государственный университет
Санкт-Петербург

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

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

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

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

СОСТАВ ИНСТРУМЕНТАРИЯ

Работу по созданию приложения для многопроцессорной вычислительной системы можно разделить на следующие этапы:

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

Все имеющиеся приложения независимы, и могут использоваться как в комплексе, так и по отдельности друг от друга. Вне видимости остается важный компонент инструментария - преобразователь программ с языка написания (подмножество FORTRAN'а 77) на язык эмулятора параллельной вычислительной машины (Java).

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

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

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

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

Работа преобразователя кода разделяется на 2 этапа: преобразование исходного текста в xml-подобный код, и преобразование xml-подобного кода в код на языке исполнения. Такой подход позволяет разделить задачу преобразования на независимые подзадачи; кроме того, xml-подобный код программы может быть относительно легко подвергнут дополнительной обработке и анализу.

ВОЗМОЖНОСТИ ИНСТРУМЕНТАРИЯ

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

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

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

ВОЗНИКАЮЩИЕ ОГРАНИЧЕНИЯ

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

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

ЗАКЛЮЧЕНИЕ

Несмотря на неизбежные ограничения, инструментарий с точки зрения обучения обладает рядом очевидных преимуществ перед реальной многопроцессорной системой: он позволяет произвести разбор программы еще на стадии разбора исходного текста на FORTRAN'е; исполнение контролируется, и аварийная ситуация сопровождается трассировкой вызовов и протоколом передачи сообщений; для эмулятора не нужны кластер, FORTRAN, MPICH и система очередей; эмулятор помогает понять особенности отдельных операций обмена, тогда как использование реального мультипроцессора требует наличия глубокого понимания сути вызываемых процедур.

Авторы выражают благодарность Российскому фонду фундаментальных исследований за финансовую поддержку (грант № 02-07-90332в).

[Аннотация на английском языке]

Опубликовано: Принципы работы интеллектуального инструментария для дистанционной разработки параллельных приложений / Комолкин А.В., Немнюгин С.А., Захаров А.В., Стесик О.Л. // Технологии информационного общества - Интернет и современное общество: труды V Всероссийской объединенной конференции. СПб., 25 - 29 ноября 2002 г. СПб.: Изд-во С.-Петерб. ун-та, 2002. С.110-112.

Ориг. URL — http://imsconference2002.spbu.ru/02-r2f23.html