М С С   р е с у р с

 

Кафедра МСС

Про проект

Freeware

Open source

Кафедра МСС

Факультет

 

Про проект

Сучасні програмні технології дозволяють проводити різноманітні математичні дослідження та інженерні розрахунки із прямо-таки дивовижним сервісом: Mathematica знайде розв’язок рівняння в аналітичній формі, Simulink наплете хитрі технічні конструкції, так що першокласник (не кажучи вже про першокурсника), озброєний мишею, зможе запустити космічну ракету не гірше за пана Корольова. А питання тут полягає в наступному: де закінчується професіоналізм (математиків, фізиків, програмістів) і починаються всілякі фокуси та показуха? Для того, щоб в цьому розібратися, необхідно правильно розставити акценти в проблемі створення програмного забезпечення для наукових цілей. Зрозуміло, що прикладна програма наукового (інженерного) спрямування принципово відрізняється від офісних  програм, ігор або операційних систем. Основні вимоги, що пред’являються до прикладних програм для наукових досліджень, є:

  1. Мультиплатформеність. Наукові обчислення, як правило, вимагають великих обчислювальних ресурсів. Науковці ж (навіть „тамошні”), далеко не завжди мають безпосередній доступ до UltraSPARC. Тому доводиться проводити відлагодження на персональних комп'ютерах (мабуть з Windows) та сподіватися на те, що в подальшому буде можливість реалізувати обчислювальний експеримент на відповідній техніці (швидше за все з UNIX).
  2. Віддалений (дистанційний) доступ. Безпосередньо випливає з попередньої проблеми: користувач повинен мати можливість задавати початкові дані, стежити за процесом та отримувати результати обчислень, які проводяться на віддаленому сервері. Іншими словами, програмні модулі повинні передбачати дистанційне керування на зразок телевізійного пульту. 
  3. Модульність та уніфікованість. З одного боку, модульність необхідна тому, що наукові проекти, як правило, не робляться поодинці, але кожен дослідник має представити свою підпрограму, яка, можливо, стане основою для подальших досліджень. Очевидно також, що ці підпрограми повинні якось взаємоузгоджуватися. З іншого боку, модульність необхідна там, де є можливість розпаралелювання етапів обчислень на різні комп’ютери. І знову таки, отримані результати треба буде збирати до купи згідно жорстких стандартів.
  4. Простота та інтерфейсна незалежність. Вимагати від математика програму із сучасним інтерфейсом так само абсурдно, як від програміста – теоретичних досліджень. Повірте, наступить розруха. Науковець повинен зосередитися на програмуванні алгоритму, а питання вводу/виводу із графічними прикрасами має бути відокремлене.
  5. Ефективність обчислень. Ні в якому разі не можна витрачати ресурси (яких і так завжди не вистачає) на зайві графічні ефекти. Якщо необхідно досягти „генеральського ефекту” (важливо для презентацій), то для вже апробованого алгоритму можна застосувати парочку візуальних новинок. Але ж не варто змішувати це із самим дослідницьким процесом!
  6. Ліцензія. Ліцензованість програмного інструментарію для серйозних наукових розробок передбачається автоматично. Тому часто доводиться шукати цей інструментарій серед вільно-розповсюджуваного програмного забезпечення. Трагедії тут ніякої нема, оскільки практично для всякого комерційного продукту існує безплатний (freeware) аналог з рівними (а інколи більшими) функціональними можливостями. Порівняйте: Windows та Linux, компілятори С++ від Borland (C++Builder) та gcc, Microsoft Word та Open Office... Крім того, більшість безплатних програмних продуктів пропонуються з відкритими кодами (open source), отже є можливість перевірки коректності обчислень та доповнення інструментарію власними модулями.
     

На сайті зібрані модулі, які в тій чи іншій мірі можуть бути корисними при проведенні обчислювальних експериментів. Це хоч і не позбавить повністю науковця від необхідності клацати клавішами, але суттєво спростить та прискорить процес створення власних програмних модулів. Наприклад, вільно-розповсюджуваний пакет "Моделювання Динамічних Систем (MDS)" написаний на стандартному C++ (ISO/IEC 14882, Standard for the C++ Programming Language), отже його можна використовувати на різних платформах. Центральне місце пакету займає клас model, призначений для „перекладу” математичних моделей з мови формул на мову С++. Проста структура цього класу дозволяє легко моделювати як окремі об’єкти, так і комплекси взаємопов’язаних блоків, кожен з яких функціонує за власними законами. Цей клас добре співпрацює із класом integration (якщо модель представлена системою диференціальних рівнянь) або dynamo (для моделювання динаміки, що описується алгебраїчними рівняннями). Також на сайті пропонується клас матриць. Куди ж без них? На відміну від неймовірної кількості матричних класів, тут використовуються оптимізовані для наукових обчислень контейнери елементів, апарат винятків при спробі виконати некоректні операції та інші особливості. Крім того, тут представлені модулі для роботи з ini-файлами, для ведення log-файлу, перегляду графіків тощо...

Для завантаження програмних модулів необхідно перейти на відповідні сторінки: Freeware - вільно-розповсюджувані безплатні програми або Open source - програмні модулі з відкритими вихідними файлами (потребують компіляції).


Зауваження, пропозиції та питання просимо надсилати електронною поштою: soft@unicyb.kiev.ua

Кафедра Моделювання складних систем факультету кібернетики Київського університету імені Тараса Шевченка
03127, Україна, Київ, просп. Глушкова 2, корп. 6, кафедра МСС тел.: (044) 259-05-31, (044) 259-02-37, e-mail: garash@unicyb.kiev.ua
Всі права застережено.