Низамов О.О.

Самарский Государственный Аэрокосмический университет, Россия

Организация взаимодействия Web-версии системы Графо-символического программирования PGRAPH с кластером

 

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

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

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

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

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

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

Подсистема должна реализовывать следующие функции:

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

-       передавать на кластер по защищенному соединению;

-       запускать на кластере компилятор gcc;

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

-       возвращать пользователю результат работы программы.

Взаимодействие с вычислительным кластером происходит с использованием сетевого протокола SSH и модуля ssh2lib. Написанная граф-программа компилируется с помощью встроенного в ОС компилятора. В процессе компиляции создается командный файл задания для кластера. Происходит авторизация на кластере и файлы передаются с помощью ssh соединения. Затем на кластере происходит запуск компилятора gcc и обрабатывается результат компиляции. Если компиляция выдала ошибку, происходит её передача на web-сервер и вывод пользователю на экран. Если компиляция прошла успешно, программа ставится в очередь задач с помощью системы пакетной обработки заданий для выполнения на кластере. Происходит проверка статуса задания. После успешного выполнения программы, результат записывается в файл, передается на сервер и выводится на экран пользователя.

Схема работы подсистемы представлена на рисунке 2.1.

 

Рисунок 1 – Схема взаимодействия элементов системы визуальной удаленной разработки параллельных программ

 

Литература:

 

 

1.     Коварцев А.Н. Автоматизация разработки и тестирования программных средств. ¾ Самара, Самарский государственный аэрокосмический университет, 1999. ¾ 150 с.

2.     Весь Linux. Установка, конфигурирование, использование: Пер. с англ. //М. Кофлер – Бином, 2009. – 880 с.

3.     Welcome to The Apach Software Foundation [Электронный ресурс] – http://www.apache.org/

4.     Суперкомпьютер «Сергей Королев» | Суперкомпьютерный центр СГАУ [Электронный ресурс] - http://hpc.ssau.ru/node/6.

5.     Работа на кластере «Сергей Королев» | Суперкомпьютерный центр СГАУ [Электронный ресурс] - http://hpc.ssau.ru/node/22.

6.     Система пакетной обработки заданий torque: [Текст] Руководство пользователя – Т-Платформы, 2008. – 31с.

7.     Материал из Википедии (свободной энциклопедии). Статья     «GNU Compiler Collection» [Электронный ресурс] – http://ru.wikipedia.org/wiki/GNU_Compiler_Collection.

8.     Материал из Википедии (свободной энциклопедии). Статья     «SSH» [Электронный ресурс] – http://ru.wikipedia.org/wiki/SSH.