Разработка транслятора описаний моделей системной динамики из формата XMILE в исполняемые модули на языке Erlang
В работе были поставлены следующие задачи:
1. Исследование формата описаний моделей системной динамики XMILE.
2. Анализ реализации существующего решения – PySD.
3. Проектирование транслятора.
4. Реализация транслятора описаний моделей на языке Erlang.
Важным инструментом при выполнении исследований в области системной динамики является компьютерное моделирование, однако большинство продуктов, представленных на рынке соответствующего программного обеспечения - коммерческие. В 2014-м году комитетом OASIS был принят открытый формат XMILE, в который предполагается конвертировать существующие модели, а также создавать новые. Однако, для обеспечения самого процесса моделирования, необходимо транслировать описания моделей в исполняемый код. В настоящее время существует решение - PySD, но оно не обеспечивает высокого уровня производительности. Генерация исполняемого кода на языке Erlang должна повысить быстродействие процесса моделирования.
В рамках работы было проведено исследование существующего решения - PySD, которое представляет собой реализацию транслятора описаний моделей из формата XMILE в исходный код на языке Python. Это решение позволяет запускать процесс моделирования, получать результаты, при необходимости имея возможность изменить полученный код, поскольку Python довольно неплохо подходит для задачи прототипирования. В то же время, это решение не позволяет достигнуть серьёзной производительности и задействовать возможности современных процессоров, обеспечивая параллельное выполнение. Для этого предлагается в качестве целевого языка трансляции описаний моделей использовать Erlang, поскольку этот язык проектировался для разработки распределённых систем.
Данный транслятор позволяет существенно повысить производительность (по результатам сравнения производительности Erlang с другими аналогичными решениями, написанными даже на C++ - до 100%) процесса моделирования. Сам транслятор является частью проекта, ориентированного на создание облачного сервиса для обмена моделями и обеспечения процесса моделирования. Сам этот проект является ответом на проблемы обработки больших данных и доступа к данным для научного сообщества системной динамики (для свободного обмена моделями в сообществе). Высокая производительность, которая обеспечивается предлагаемым решением, может сделать процесс моделирования легче и доступнее, что может стимулировать дальнейшую работу над инновациями в области системной динамики.
open.org/committees/tc_home.php?wg_abbrev=xmile)
2. Chichakly, K. 2007. SMILE and XMILE: a common language and interchange format for system
dynamics. Proceedings of the 2007 International System Dynamics Conference, Boston, MA.
System Dynamics Society: Albany, NY.
3. Diker, V.G. and Allen, R.B. 2005. XMILE: towards an XML interchange language for system
dynamics models. System Dynamics Review 21(4)
4. Ward, R., Houghton, J., and Perl, I. A. (2015) SDXchange: stand-alone translators to enable XMILE
model adaptation, transportation, and exchange. Syst. Dyn. Rev., 31: 86–95. doi:
10.1002/sdr.1529