Низамов О.О.
Самарский
Государственный Аэрокосмический университет, Россия
Организация
взаимодействия 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.