Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020) — различия между версиями

Материал из 0x1.tv

 
<!-- <blockquote>[©]</blockquote> -->

{{vklink|1676}}                                          
{{fblink|2622118461374492}}                                          
<references/>

[[Категория:OSEDUCONF-2020]]
[[Категория:СПО в образовании]]
[[Категория:Fortran]]
[[Категория:Свободные библиотеки построения графиков]]
{{stats|disqus_comments=0|refresh_time=2020-07-08T00:03:4219T00:27:30.915243964419|vimeo_plays=0|youtube_plays=0}}

Текущая версия на 21:27, 18 июля 2020

Докладчик
Евгений Алексеев.jpg
Евгений Алексеев

Система математического моделирования Simfor [1] была разработана в рамках выпускных магистерских работ на кафедре «Прикладная математика и информатика» в Вятском Государственном Университете (ВятГУ).

Видео

Презентация

Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020).pdf Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020).pdf Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020).pdf Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020).pdf Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020).pdf Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020).pdf Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020).pdf Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020).pdf Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020).pdf

Thesis

Как известно, современные задачи моделирования, встречающиеся при решении инженерных задач, проблем биологии и во многих других отраслях человеческой деятельности являются довольно сложными и имеют ряд особенностей:

  • сложные дифференциальные уравнения, описывающие физические, технические, биологические и др. процессы;
  • при дискретизации дифференциальных уравнений получаются матричные разностные уравнения, содержащие сотни тысяч и даже получающиеся в результате требуют огромного количества вычислений;
  • кроме того, разрабатываемое специализированное программное обеспечение использует ряд довольно стандартных алгоритмов (решение огромных систем линейных алгебраических уравнений, операции над матрицами большой размерности (n~10 000 – 1 000 000 ) и т.д.).

Для разработки современных программ математического моделирования программист должен знать предметную область, численные методы ( в том числе и параллельные). Также от разработчика требуется умение разрабатывать высокоэффективные параллельные приложения.

Не всегда просто использовать опыт и коды разработчиков других систем, изложенных в современных научных работах. Ряд современных библиотек, реализующих эффективные параллельные алгоритмы вычислительной математики, являются проприетарными. Разработка ПО для решения задачи математического моделирования является сложной, дорогостоящей, громоздкой и длительной по времени.

Авторам неизвестны свободные универсальные интегрированные среды разработки параллельных приложений, которые бы работали в локальном компьютере и на вычислительном кластере.

В рамках выпускной магистерской работы была поставлена задача разработки системы математического моделирования, которая бы упростила разработку специализированных программ моделирования физических, технологических, биологических, инженерных и др. процессов.

Были сформулированы требования к системе моделирования.

  1. В основе системы должен лежать язык программирования, который имеет свободный транслятор компилирующего типа;
  2. Язык программирования должен поддерживать все современные технологии параллельного программирования.
  3. Свободная библиотека, реализующая основные алгоритмы вычислительной математики.
  4. Свободная библиотека графического вывод результатов.
  5. Отладчик, который позволяет отлаживать как последовательные, так и параллельные приложения.
  6. Универсальная свободная интегрированная среда разработки, позволяющая вести разработку приложений, работающих как на локальном компьютере, так и в вычислительном кластере.

В качестве языка программирования был взят современный язык Фортран. Вся система моделирования построена на базе компилятора gfortran. Были разработаны библиотека графического вывода и параллельная библиотека вычислительной математики. Свободная графическая библиотека на языке Фортран была представлена на тринадцатой конференции «Свободное программное обеспечение в высшей школе» в Переславле-Залесском 26-28 января 2018 года. Одной из особенностей библиотеки является возможность построения графиков при использовании консольных операционных систем. В этом случае библиотека формирует графические изображения в файле.

Ядром системы моделирования является разработанная авторами библиотека численного анализа.

Одним из главных требований к разрабатываемой системе является функционирование среды разработки как на локальном компьютере, так и на кластере. В связи с этим, было принято решение строить систему путём расширения функционала текстового редактора Emacs. В состав редактора был добавлен ряд существующих модулей. Был модифицирован модуль подсветки синтаксиса программы. Кроме того, на языке elisp были написаны следующие функции, превратившие текстовый редактор в полноценную интегрированную среду разработки:

  1. Функции (compile-cc(), compile-f()) позволяют компилировать код на языках С/С++ и Фортран, кроме того, на базе этих функций написан шаблон, с помощью которого пользователь может изменять функционал функций compile-cc(), compile-f() при необходимости.
  2. Функции compile-f-lib(), compile-f-plotter() предназначены для добавления в строку компиляции необходимых ключей и подключения библиотек.
  3. Функция send-from-local() для рассылки исполняемого файла с локального компьютера.
  4. Функция send-from-claster() для отправки с узла кластера на оставшиеся узлы.
  5. Функции run-program(), run-plotter(), run-program-cluster() для запуска разрабатываемых приложений на кластере.

Для установки системы на локальный компьютер или вычислительный кластер был написан скрипт, который собирает и добавляет библиотеки параллельных алгоритмов численного анализа и вывода графики в текстовый редактор Emacs, преобразует редактор Emacs в специализированную интегрированную среду разработки.

Разработанная система ориентирована на работу с любыми linux-подобными операционными системами. В данный момент прошло тестирование системы на ОС Ubuntu, Mint, Debian. Сейчас проходит адаптация системы под отечественные ОС – BaseAlt, Rosa, Astra. В систему могут быть добавлены необходимы библиотеки на Фортране и С/С++ с открытым исходным кодом. Система доступна на сайте https://www.github.com/MatSysLib.


Свободная система математического моделирования Simfor на базе компилятора gfortran (Евгений Алексеев, OSEDUCONF-2020)!.jpg

Примечания и ссылки

  1. Алексеев, Евгений Ростиславович; Лутошкин, Денис Александрович; Стародумов, Вячеслав Владимирович. Свободная система математического моделирования 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

Plays:0   Comments:0