Cellar Door

28 июля 2005

Scientific software

Краткий экскурс в область свободного ПО для научных вычислений был вдохновлен прочтением посвященного данной теме цикла А. Зубинского. Я описываю лишь краткие впечатления, вызванные упомянутыми там инструментальными средствами. Сами статьи можно легко найти, введя в форму поиска на странице itc.ua фразу "научные вычисления"...

Nickle
Скриптовый язык Nickle известен в первую очередь как язык быстрого прототипирования научных задач. Вторая область применения вычислительных способностей Nickle состоит в качестве более мощной замены классических UNIX-вычислителей bc, dc и expr. Синтаксис Nickle предельно приближен к таковому у C, а семантика обнаруживает общие черты с функциональными языками программирования, например LISP или ML. В документе, представленном на USENIX, разработчики отмечают, что идеи, впоследствии реализованные в Nickle, были заимствованы из C, C++, Icon, ML, Java, Modula-3, Perl, Python, Scheme, sed, awk, bc, dc, expr. Компактность и мобильность реализации же косвенно указывают на происхождение из академической среды [и почему ине вспоминается Lua?]. Присутствует реализация основных примитивов многопоточного программирования, например реализована работа с семафорами и мьютексами. Среди установленных примеров нашлась библиотека, реализующая алгоритм RSA в менее чем 30 строках кода (размер импортируемого модуля с реализациями некоторых численных алгоритмов - еще около 30 строк). А на сайте был обнаружен и порт референсной ANSI C реализации алгоритма шифрования Rijndael на языке Nickle.
Для меня Nickle оказался более чем интересной разработкой, видимо, способной заставить меня отложить запланированное знакомство с Forth.

Yorick
Yorick - универсальная языковая среда для решения вычислительных задач. Среда предсавляет собой интерпретатор "еще одного" скриптового языка. Yorick содержит весьма обширную библиотеку функций, в т.ч. для обработки данных в распостраненных в научной среде формате HDF и NetCDF, допускает использование сторонних расширений на C и Fortran. Фактически Yorick принадлежит к тому же классу ПО, что и коммерческий Matlab или GNU Octave...
Есть возможность интеграции Yorick с Emacs, и сие таинство не сложнее, чем подключение Slime, описанное мною ранее в заметке о Lisp.
Подсистему визуализирования данных Yorick разработчик характеризует как наипростейшую из возможных реализаций набора из базовых графообразующих функций, способных производить основные графические элементы, которыми изобилуют научные издания. Впрочем системы визуализации научных данных крайне сложны, среди них к классу свободного ПО относится OpenDX, основанная на "освобожденных" IBM исходных текстов системы IBM Data Explorer. Приведу лишь цитату из описания соответствующего порта системы FreeBSD:

Data Explorer can be used to add visualization capabilities to existing applications. It is used by companies and institutions for applications in a large variety of visualization fields including computational fluid dynamics, medical imagery, computational chemistry, and engineering analysis. For example, it is currently
being used to:

* Identify and manage portfolio risk worldwide for a large
multinational banking group.
* Depict oil-flow simulations to improve drilling success-rates and increase reservoir yields.
* Piece together over 5,000 ceiling fragments from a 1,200-year-old temple in Peru.
* Help insurance agents identify opportunities to cross-sell product offerings.
* Visualize developing weather patterns to improve the accuracy of weather forecasts.

Итог краток: в свободных версиях UNIX, по сей день являющейся основной инструментальной ОС в научной среде, достаточно элегантных и полезных разработок, зачастую балансирующих на тонкой грани искусства и ремесла, способных увлечь человека далекого от основных областей их применения и имеющего крайне поверхностное представление о них.
Все упомянутые прогаммные системы присутствуют в коллекции портов FreeBSD, а также в виде прекоммпилированных пакетов на ftp-сервере проекта.
Ссылки: язык Nickle, официальная страница среды Yorick, unofficial home page, а также посвященная ей страница на dmoz.org, сайт проекта OpenDX.

2 Comments:

  • Оффтопик про Lisp:
    Вот эта вот красавица работает на Lisp'e.

    By Anonymous Анонимный, at 28 июля, 2005 17:17  

  • Спасибо за ссылку! Да в области AI у LISP конкурентов мало (Prolog?), еще NASA освоила его для некоторых своих проектов, например:
    SPIKE, the Hubble Space Telescope planning and scheduling system
    Remote Agent, winner of the 1999 NASA Software of the Year Award
    Вот еще список проектов той же NASA, использующих Forth.

    By Blogger Marduk, at 28 июля, 2005 18:04  

Отправить комментарий

<< Home