УДК 004.4’24:004.272.2:004.942

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

В.В.ПЕКУНОВ, Ф.Н.ЯСИНСКИЙ
(Ивановский государственный энергетический университет,
НИИ математического моделирования Ивановской государственной текстильной академии,
Региональный научно-образовательный центр по наноматериалам «Жидкие кристаллы»)

Одними из главных проблем при разработке и модификации программных комплексов параллельного численного моделирования (ПКПЧМ) многофазных сред и сложных систем являются: а) обеспечение открытости комплекса, заключающейся в возможности оперативного ввода в базовую модель новых фаз, уравнений или компонентов моделируемой системы; б) автоматизированного выбора наиболее эффективного метода распараллеливания при изменении модели или структуры моделируемой системы.
Особенно характерны данные проблемы для задач численного моделирования образования и распространения загрязнений в воздушной и водной средах. В первом случае речь обычно идет об оперативном изменении математической модели, во втором — об изменении как модели так и структуры моделируемой сложной речной системы.
Проблема открытости может решаться как традиционными объектным и шаблонным подходами к разработке ПКПЧМ так и с помощью систем автоматизации порождения программ (САПП). При первом подходе проблема связывания и настройки типовых алгоритмов и объектов решается вручную, причем возможны различные семантические и логические ошибки. Второй подход решает проблему автоматически и без ошибок, устраняя лишний код и осуществляя формальную проверку связности модели.
Разработана САПП, в которой модель проектируется в виде блочной схемы. Блоки являются элементами объектно-событийной модели (ОСМ) и представляют отдельные фрагменты модели. Блоки осуществляют контекстную (в зависимости от значений параметров и наличия связей с другими блоками) генерацию участков кода, которые объединяются в единую программу путем специальной интерпретации ОСМ. Такой подход существенно сокращает сроки и повышает эффективность разработки и модификации программных комплексов численного моделирования, основные трудозатраты связаны лишь с однократным созданием требуемых классов блоков.
Проблема выбора метода распараллеливания также решается в рамках разработанной системы порождения программ. Соответствующие алгоритмы могут быть интегрированы непосредственно в порождающие скрипты блоков модели. Представляются перспективными два основных подхода: а) применение специализированных методик выбора и оптимизации метода распараллеливания (по переменным, по пространству, конвейерная обработка); б) распараллеливание по переменным или объектам модели, когда для каждого нового элемента вводится дополнительный процессор. Первый подход более трудоемок, но и позволяет получить более эффективные параллельные программы. Авторами разработан ряд соответствующих методик выбора метода распараллеливания и оптимизации пересылок данных для некоторых классов задач механики многофазных сред. Второй подход требует меньших временных затрат на создание классов блоков и может применяться при первичной разработке и отладке системы. Кроме того, он может быть легко применен и для самостоятельных ПКПЧМ (вне САПП), однако в этом случае ПКПЧМ должен настраиваться на структуру модели самостоятельно (например, по описанию модели в специальных файлах).
Работа была выполнена при финансовой поддержке Минобразования и науки (грант РНП.2.2.1.1.7280).