Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020)
Материал из 0x1.tv
- Докладчик
- Евгений Алексеев
Система математического моделирования Simfor [1] была разработана в рамках выпускных магистерских работ на кафедре «Прикладная математика и информатика» в Вятском Государственном Университете (ВятГУ).
Содержание
Видео
Презентация
Thesis
Как известно, современные задачи моделирования, встречающиеся при решении инженерных задач, проблем биологии и во многих других отраслях человеческой деятельности являются довольно сложными и имеют ряд особенностей:
- сложные дифференциальные уравнения, описывающие физические, технические, биологические и др. процессы;
- при дискретизации дифференциальных уравнений получаются матричные разностные уравнения, содержащие сотни тысяч и даже получающиеся в результате требуют огромного количества вычислений;
- кроме того, разрабатываемое специализированное программное обеспечение использует ряд довольно стандартных алгоритмов (решение огромных систем линейных алгебраических уравнений, операции над матрицами большой размерности (n~10 000 – 1 000 000 ) и т.д.).
Для разработки современных программ математического моделирования программист должен знать предметную область, численные методы ( в том числе и параллельные). Также от разработчика требуется умение разрабатывать высокоэффективные параллельные приложения.
Не всегда просто использовать опыт и коды разработчиков других систем, изложенных в современных научных работах. Ряд современных библиотек, реализующих эффективные параллельные алгоритмы вычислительной математики, являются проприетарными. Разработка ПО для решения задачи математического моделирования является сложной, дорогостоящей, громоздкой и длительной по времени.
Авторам неизвестны свободные универсальные интегрированные среды разработки параллельных приложений, которые бы работали в локальном компьютере и на вычислительном кластере.
В рамках выпускной магистерской работы была поставлена задача разработки системы математического моделирования, которая бы упростила разработку специализированных программ моделирования физических, технологических, биологических, инженерных и др. процессов.
Были сформулированы требования к системе моделирования.
- В основе системы должен лежать язык программирования, который имеет свободный транслятор компилирующего типа;
- Язык программирования должен поддерживать все современные технологии параллельного программирования.
- Свободная библиотека, реализующая основные алгоритмы вычислительной математики.
- Свободная библиотека графического вывод результатов.
- Отладчик, который позволяет отлаживать как последовательные, так и параллельные приложения.
- Универсальная свободная интегрированная среда разработки, позволяющая вести разработку приложений, работающих как на локальном компьютере, так и в вычислительном кластере.
В качестве языка программирования был взят современный язык Фортран. Вся система моделирования построена на базе компилятора gfortran. Были разработаны библиотека графического вывода и параллельная библиотека вычислительной математики. Свободная графическая библиотека на языке Фортран была представлена на тринадцатой конференции «Свободное программное обеспечение в высшей школе» в Переславле-Залесском 26-28 января 2018 года. Одной из особенностей библиотеки является возможность построения графиков при использовании консольных операционных систем. В этом случае библиотека формирует графические изображения в файле.
Ядром системы моделирования является разработанная авторами библиотека численного анализа.
Одним из главных требований к разрабатываемой системе является функционирование среды разработки как на локальном компьютере, так и на кластере. В связи с этим, было принято решение строить систему путём расширения функционала текстового редактора Emacs. В состав редактора был добавлен ряд существующих модулей. Был модифицирован модуль подсветки синтаксиса программы. Кроме того, на языке elisp были написаны следующие функции, превратившие текстовый редактор в полноценную интегрированную среду разработки:
- Функции (compile-cc(), compile-f()) позволяют компилировать код на языках С/С++ и Фортран, кроме того, на базе этих функций написан шаблон, с помощью которого пользователь может изменять функционал функций compile-cc(), compile-f() при необходимости.
- Функции compile-f-lib(), compile-f-plotter() предназначены для добавления в строку компиляции необходимых ключей и подключения библиотек.
- Функция send-from-local() для рассылки исполняемого файла с локального компьютера.
- Функция send-from-claster() для отправки с узла кластера на оставшиеся узлы.
- Функции run-program(), run-plotter(), run-program-cluster() для запуска разрабатываемых приложений на кластере.
Для установки системы на локальный компьютер или вычислительный кластер был написан скрипт, который собирает и добавляет библиотеки параллельных алгоритмов численного анализа и вывода графики в текстовый редактор Emacs, преобразует редактор Emacs в специализированную интегрированную среду разработки.
Разработанная система ориентирована на работу с любыми linux-подобными операционными системами. В данный момент прошло тестирование системы на ОС Ubuntu, Mint, Debian. Сейчас проходит адаптация системы под отечественные ОС – BaseAlt, Rosa, Astra. В систему могут быть добавлены необходимы библиотеки на Фортране и С/С++ с открытым исходным кодом. Система доступна на сайте https://www.github.com/MatSysLib.
Примечания и ссылки
- ↑ Алексеев, Евгений Ростиславович; Лутошкин, Денис Александрович; Стародумов, Вячеслав Владимирович. Свободная система математического моделирования simfor на базе компилятора gfortran. Международный научный журнал «Современные информационные технологии и ИТ-образование», [S.l.], v. 15, n. 4, p. 820-827, dec. 2019. ISSN 2411-1473. Доступно на: http://sitito.cs.msu.ru/index.php/SITITO/article/view/585. doi: https://doi.org/10.25559/SITITO.15.201904.820-827