Journal influence
Bookmark
Next issue
Abstract:
Аннотация:
Authors: Oparin G.A. (oparin@icc.ru) - Institute of System Dynamics and Control Theory SB of the Russian Academy of Sciences, Irkutsk, Russia, Feoktistov A.G. (agf@icc.ru) - Matrosov Institute for System Dynamics and Control Theory of Siberian Branch of Russian Academy of Sciences, Irkutsk, Russia, Novopashin A.P. (apn@icc.ru) - Institute of System Dynamics and Control Theory SB of the Russian Academy of Sciences, Irkutsk, Russia, Ph.D, (oparin@icc.ru) - , Ph.D | |
Ключевое слово: |
|
Page views: 11110 |
Print version Full issue in PDF (2.00Mb) |
Активное внедрение в практику расчетных работ параллельной вычислительной техники (в особенности кластерных архитектур) способствует возвращению интереса к пакетной проблематике, но требует реконструкции старых и создания новых средств и методов программирования вычислений в пакетах прикладных программ.
Предлагаемый авторами подход к разработке пакета прикладных программ для вычислительных кластеров на основе технологии модульного программирования включает следующие основные этапы: определение множества функциональных отношений между объектами исследуемой предметной области и формализация ее вычислительной модели в виде системы алгебраических и/или дифференциальных булевых уравнений (Бохман Д., Станкович Р., Тошич Ж., Шмерко В., Янушкевич С. Логическое дифференциальное исчисление: достижения, тенденции, приложения. // Автоматика и телемеханика. 2000. №6); формирование библиотеки вычислительных модулей, реализующих функциональные отношения между объектами предметной области; проведение анализа вычислительной модели с целью выявления ее внутреннего параллелизма; формирование постановок исследовательских задач и синтез планов их решения; построение управляющих программ для решения задач. Последний этап предполагает программную реализацию в общем случае параллельного плана решения задачи средствами языка программирования высокого уровня. При конструировании параллельных программ на основе библиотек вычислительных модулей важными факторами являются эффективность и переносимость создаваемых программ, скорость их проектирования, разработки и отладки. Заключительная процедура, многократно выполняемая в процессе решения задачи, может оказаться достаточно сложной для пользователей пакета программ и обоснованно требует автоматизации. Анализ существующих подходов к автоматизации параллельного программирования показывает, что особое внимание в них уделяется описанию алгоритма параллельной программы для решения одной конкретной задачи. В системе модульного программирования требуется удобная и гибкая среда, обеспечивающая решение на вычислительной модели предметной области целого класса задач, объекты которых связаны между собой определенными отношениями. Архитектура рассматриваемого инструментального комплекса включает в себя следующие основные компоненты: многооконный текстовый редактор, претранслятор, подсистему компиляции, подсистему запуска. Многооконный текстовый редактор предназначен для ввода описания вычислительной модели предметной области на специализированном входном языке ORLANDO. Данный язык относится к классу декларативных и включает набор языковых конструкций для описания объектов вычислительной модели предметной области (параметров, операций, модулей и постановок задач) и инструкций ввода/вывода данных, инициализации значений входных параметров задачи и запуска вычислительного процесса (Опарин Г.А., Феоктистов А.Г. Инструментальная распределенная вычислительная САТУРН-среда. // Программные продукты и системы. 2002. №2). Текстовый редактор предоставляет набор функций для быстрого и удобного формирования языковых конструкций ORLANDO, средства динамической проверки синтаксиса и семантики последних с точки зрения корректности и целостности вычислительной модели предметной области. Исходный текст управляющей программы, записанный на языке ORLANDO, передается на обработку претранслятору. Претранслятор выполняет разбор описания предметной области на языке ORLANDO и перевод его в конструкции языка C++; запускает встроенный планировщик для построения параллельного плана решения задачи по непроцедурной постановке; включает в текст программы вызовы вычислительных модулей в установленном порядке (Опарин Г.А., Новопашин А.П. Булево моделирование планирования действий в распределенных вычислительных системах. // Теория и системы управления. 2004. №5). Подсистема компиляции параллельных программ осуществляет копирование исходных файлов программы на вычислительный кластер и компиляцию основной программы и прикладных модулей с использованием штатного компилятора языка C++. При компиляции используются: библиотека классов, предназначенных для реализации объектов вычислительной модели предметной области; системные библиотеки для работы с внутренними структурами данных, управления запуском вычислительных модулей и ввода/вывода данных; библиотеки вычислительных модулей, реализующих операции предметной области; коммуникационная библиотека PVM, обеспечивающая поддержку параллельного программирования. Подсистема запуска параллельных программ копирует из базы расчетных данных на кластер-файлы, содержащие значения входных параметров, выполняет запуск программы, проводит мониторинг ее работы и по завершении вычислений копирует в базу расчетных данных файл, содержащий значения целевых параметров. Возможности разработанного инструментального комплекса были апробированы на задаче поиска глобального минимума некоторой математической функции методом мультистарта (Жиглявский А.А., Жилинскас А.Г. Методы поиска глобального экстремума. М., 1991). Вычислительная модель данной предметной области представлена двудольным ориентированным графом (см. рис) и включает следующие параметры: количество начальных точек PC; количество координат начальной точки SPxy; вектор координат начальной точки SP(SPxy); вектор координат точки и значения локального минимума в этой точке EP(EPxyv); EPxyv – число элементов вектора EP; значение Val и координаты X и Y точки глобального минимума. На модели определены операции: Gen(PC, SPxy => SP) – генерирует множество начальных точек; Grad(SPxy, EPxyv, SP => EP) – реализует спуск методом градиента; Res(PC, EP, EPxyv => X, Y, Val) – находит минимальное значение функции. Следом за именем операции слева и справа от стрелки указываются списки соответственно входных и выходных параметров. Для операции Grad осуществляется параллельный запуск множества ее экземпляров. Множества вариантов значений векторов SP и EP, являющихся соответственно входным и выходным параметрами операции Grad, задаются в виде параллельных списков данных. Элементы этих списков обрабатываются независимо друг от друга в отдельных процессах – экземплярах операции Grad. Приведем фрагмент описания вычислительной модели и постановки задачи на специализированном входном языке ORLANDO: PARAMETER I4 PC, SPxy, EPxyv; PARAMETER R8 SP BOUNDS(SPxy), EP BOUNDS(EPxyv), Val, X, Y; PARALLEL SP SIZE(PC), EP SIZE(PC); MODULE CPP Gen FUNCTION generate (IN I4, IN I4, OUT R8[P2]{P1}) INCLUDE PATHLIB <> LIBS <> COMPILER ; MODULE CPP Grad FUNCTION grad (IN I4, IN R8[P1],IN I4,OUT R8[P3]) INCLUDE PATHLIB <> LIBS <> COMPILER ; MODULE CPP Res FUNCTION R8=res (IN I4, IN I4, IN R8[P2]{P1}, OUT R8, OUT R8) INCLUDE PATHLIB <> LIBS <> COMPILER ; OPERATION GEN BY Gen (PC, SPxy, SP); OPERATION RES BY Val = Res (PC, EPxyv, EP, X, Y); OPERATION GRAD BY Grad (SPxy, SP, EPxyv,EP); TASK Gradient (IN PC, IN SPxy, IN EPxyv, OUT Val, OUT X, OUT Y); Представленные инструментальные средства ориентированы на кластерные вычислительные системы, работающие под управлением ОС Linux. Их отладка и тестирование осуществлялись на вычислительном кластере МВС-1000/16 ИДСТУ СО РАН (http://mvs.icc.ru). |
Permanent link: http://swsys.ru/index.php?id=310&lang=en&page=article |
Print version Full issue in PDF (2.00Mb) |
The article was published in issue no. № 4, 2007 |
Perhaps, you might be interested in the following articles of similar topics:
- Эволюционная модель формирования структур виртуальных предприятий
- Система программного обеспечения единого технико-программного комплекса для гибких автоматизированных производств механообработки
- Интеллектуальные хранилища данных в системах государственного управления
- Информатика – инфраструктура информационного общества
- Искусственный интеллект в грядущем десятилетии
Back to the list of articles