LINUX.ORG.RU
ФорумTalks

[мысли в слух] [много букв] Что можно сделать для свободного научного ПО


0

2

По мотивам примерно четырёхчасового разговора между первокурсником ФФ, к.ф.-м.н. и д.ф.-м.н.

В принципе делать можно много чего, но хотелось бы понять на что следует обратить внимание «условно молодому человеку с программистскими навыками», чтобы принести пользу человечеству. Плюс есть потенциальная возможность подобную работу оформить как диплом - прецедент есть (в идеале результатом диплома должно стать включение кода в свободный проект).

Очевидно тема совершенно безбрежная. Для начала грубая классификация по свободному научному софту (далеко не полный список) к которому можно приложиться:

* Системы компьютерной алгебры (CAS): Maxima (Дедушка всех CASов), Reduse (В основном использовался физиками, стал свободным совсем не давно), Axiom (Самая красивая из перечисленных систем. Код пишется в соответствии с принципами грамотного программирования. В силу разногласий между разработчиками есть три форка - по отзывам наиболее активный форк FriCAS).

* Численные вычисления: Octave, SciLab (+scicos)

* Системы анализа: R, ROOT

* Системы визуализации: paraview (библиотека VTK), VisIt (библиотека VTK), OpenDX (IBM решила отдать сообществу свои наработки), Geomview (очень крутая программа, визуализация четырёхмерных математических объектов и прочее, но лаборатория в которой её развивали закрыта), MathGL+UDAV (гораздо слабее перечисленных выше, но делает исключительно красивые картинки и автор владеет русским языком как родным :) )

(!) Очевидные точки возможного приложения усилий это объединение систем визуализации и программ анализа и расчётов. Как правило, например, CASы не имеют своего встроенного вывода и используют внешние программы. Обычно эти внешние программы исчерпываются gnuplotом, который далеко не самый красивый и отзывчивый инструмент, хотя в лиге научной визуализации определённо самый простой. Упомянутый в самом начале прецедент с дипломной работой - это возможность передавать данные Geomview из FriCAS.

(!) Системы анализа. Несмотря на удивительную гибкость и продвинутость у R есть фундаментальный недостаток: он работает только с теми объектами, которые находятся в оперативной памяти. Добавление механизма по типу «нтаплов» (ntuple - в CERNLIB/PAW) и деревьев (TTree - в ROOT) было бы этой системе анализа весьма на пользу.

(!) Проблема фактически всех систем анализа, которая серьёзно увеличивает порог вхождение: наличие системы отзывчивой помощи. Система помощи должна быть гипертекстовой, позволять легко редактировать описание, позволять искать информацию по ключевым словам - возможный кандидат что-то на wiki-подобное. Система помощи должна легко взаимодействовать с открытой консолью системы анализа или расчёта - то есть должна быть возможность выполнения примеров из помощи по запросу и поиск вводимой в консоле команды. На самом деле что-то подобное кое-где есть (что-то вроде help в wxMaxima - кстати, сейчас посмотрел - очень даже прилично выглядит), но нигде это не доведено до вменяемого состояния.

Предложения принимаются, разумная критика поощряется.

★★★★★

Последнее исправление: Evgueni (всего исправлений: 4)

\add *PIC (Particle In Cell) симуляторы. (какие есть свободные, с моделированием столкновений?)

\add *Системы моделирования методом конечных элементов (из свободных, вроде, только SALOME и ELMER)

\add *Удобный формат для электронных текстов, что то вроде fb2 с поддержкой TeX'а

thunar ★★★★★
()
Ответ на: комментарий от Okitain

> Вы переизобрели GSoC?

Да не всё гораздо круче - диплом :)

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от thunar

> из свободных, вроде, только SALOME и ELMER

Двух недостаточно?

fang
()
Ответ на: комментарий от thunar

> \add *PIC (Particle In Cell) симуляторы. (какие есть свободные, с моделированием столкновений?)

Я не очень понимаю что это такое. Может scicos?

\add *Системы моделирования методом конечных элементов (из свободных, вроде, только SALOME и ELMER)

не разбираюсь

\add *Удобный формат для электронных текстов, что то вроде fb2 с поддержкой TeX'а

LaTeX же. Можно взять подмножество, но IMHO не очень осмысленно.

Ну и цель чтобы что вменяемое и полезное смог сделать одиночка за относительно небольшой промежуток времени.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

>Я не очень понимаю что это такое. Может scicos?

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

собственно это на сегодня самый точный метод моделирования плазмы и не только. (в порядке возрастания точности: гидродинамика -> кинетическое описание -> моделирование частиц в ячейках)

thunar ★★★★★
()
Ответ на: комментарий от Evgueni

>LaTeX же. Можно взять подмножество, но IMHO не очень осмысленно.

ну так он и должен быть основой. pdf всё таки затачивается на печать и читать его с экрана очень неудобно, мне в этом плане очень нравится рендер LyX'а.

thunar ★★★★★
()
Ответ на: комментарий от thunar

А не проще программу самому написать? Где там засада в расчётах. Генераторы случайных чисел хорошие есть, расчёт полей тоже.

Evgueni ★★★★★
() автор топика

Моим особым интересом являются системы,
позволяющие упростить и автоматизировать
создание сложных отчётов с визуализацией
полученных результатов. Примерами являются
Sweave (хорошо сделан (на основе LP),
но привязан к R), SAGE, org-babel.
Сейчас при работе с разными источниками
данных и желании сделать всё действительно
хорошо приходится значительную часть всего
писать вручную.

Система должна позволять: указывание исходных
данных, описание формата вывода, отслеживание
зависимостей и перестройку только нужных кусков
отчёта (критично для больших работ).

Sphinx ★★☆☆
()
Ответ на: комментарий от Evgueni

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

thunar ★★★★★
()
Ответ на: комментарий от thunar

> мне в этом плане очень нравится рендер LyX'а.

Его в телефон не очень-то запихаешь, да и emacs удобнее :)

В этом смысле есть ещё texmacs - фактически WYSIWIG. Не LaTeX и не emacs, но есть интерфейс почти ко всем СASам.

Основная проблема - жуткий тормоз. Единственное, что может поправить скорость - это переход от TeXовских METAFONT шрифтов к Type1, но для этого надо доработать математические шрифты STIX

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Sphinx

может стоит в ЛОРвики сделать/добавить раздел с большим списком научного ПО и сборником рецептов?

thunar ★★★★★
()
Ответ на: комментарий от Sphinx

> Сейчас при работе с разными источниками данных и желании сделать всё действительно хорошо приходится значительную часть всего писать вручную.

Спецы рекомендуют Python - даже я думаю, что придётся таки мне его изучить в конце концов - так и не дождусь Perl6.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от thunar

> это сильно ресурсожорная числодробилка. там нужен высокий скилл программирования и оптимизации, что бы расчёт длился сутками а не неделями.

Попристаю к плазмистам - попытаю на предмет чем они пользуются.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

>Спецы рекомендуют Python

правильно рекоммендуют. у него и библиотеки работы с текстом и визуализатор matplotlib и модули для расчётом есть.

thunar ★★★★★
()
Ответ на: комментарий от thunar

> у него и библиотеки работы с текстом и визуализатор matplotlib и модули для расчётом есть.

Основной плюс - это возможность сделать интерфейс к чему угодно написанному почти на любом вменяемом языке.

Evgueni ★★★★★
() автор топика

я думаю за софтину типа SETI@home для универов-нищебродов, не имеющих собственных мега-кластеров, тебе многие бы сказали спасибо.

vostrik ★★★☆
()
Ответ на: комментарий от vostrik

> я думаю за софтину типа SETI@home для универов-нищебродов, не имеющих собственных мега-кластеров, тебе многие бы сказали спасибо.

IMHO это тупиковая ветка развития расчётов. Кластер под задачу легче собрать чем организовывать и содержать подобную структуру.

Evgueni ★★★★★
() автор топика

На основе VTK полно систем, вряд ли нужна еще одна (если только не очень специальная).

Свободных конечно-элементных кодов тоже полно.

Системы компьютерной алгебры в науке (не как «помошник студента» ) --- вещь, на сколько я знаю, очень специальная. Но тут я не специалист.

Польза будет, например, если довести octave до уровня matlab по скорости и сделать их 100% совместимыми. Они похожи, но второй является промышленным стандартом, и если что-то работающее в matlab не будет работать в octave, последний широко использоваться не будет. Я бы, например, был бы очень рад если бы octave оказался бы 100% совместимым с matlab-ом, даже не реализуя полностью функциональность matlab в плане графики и так далее (пусть рисуется хуже или вообще не рисуется, но все что запускается в matlab — запустится и в octave и корректно отработает до конца).

gene
()
Ответ на: комментарий от gene

> На основе VTK полно систем, вряд ли нужна еще одна (если только не очень специальная).

Не новая система, а объединение с системами анализа, чтобы, скажем, maxima делала графический вывод не в gnuplot, а в opendx. Это вполне по плечу одиночке.

Польза будет, например, если довести octave до уровня matlab по скорости и сделать их 100% совместимыми.

Совместимости не будет никогда и это особо не осмысленно - не зачем делать «windows но бесплатную». Существенные изменения одиночка не потянет.

Evgueni ★★★★★
() автор топика

Неплохо бы визуальный конструктор структур (желательно с командной строкой), позволяющий сделать что угодно (даже по атомам собрать), с поддержкой системы молекулярной динамики LAMMPS.

Желаемые возможности:

1. Визуальная сборка по атомам со вспомогательными средствами для точного расположения атомов и структур из них, а также редактирование готовых данных о расположении атомов.
2. Интеграция с Python для создания скриптов построения моделей (например, скрипты для построения нанотрубок, фуллеренов, создания границ зёрен в готовых кисталлах, внесение дислокаций и т.д.).

Сейчас всё это делается очень трудоёмко, при помощи встроенного в LAMMPS простенького скриптового языка, а то и специализированных внешних программ (и не все из них свободные).

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

Кстати, наработки некоторые уже имеются, но для визуализации и небольшого анализа данных. Например, OVITO.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

>> редактирование готовых данных о расположении атомов.

Что, ещё один велосипед? Их же ДЕСЯТКИ уже есть полноценных. Avogadro вообще в кедовских репах.

скриптов построения моделей

Все это есть на основе Tcl/Tk в пакете VMD, еще в gopenmol, и наверняка в куче других.

Тут слишком узкая область чтобы попросить кого-то написать еще одну недоподелку. Правильнее кооперироваться лабораториям вокруг одного гибкого пакета и наращивать его.

mclaudt
()
Ответ на: комментарий от Quasar

>>и не все из них свободные

Ну софтины уровня Accelrуs Мaterials Studio (о нем ведь речь, угадал?) без централизации не поднять, да кстати они и не нужны особо. Гибкий конвейер расчетов в них все равно не создать. Bash-овый скриптик намного удобнее.

У Atomistix были начинания по созданию апи для конвееров квантовохимических расчетов.

mclaudt
()
Ответ на: комментарий от mclaudt

s/ее/ейе

Полезно было бы стандартизовать параметры вычислений атомной модели (это все к openbabel) и выработать единый API основных методов (DFT, PM6, MCSCF)

mclaudt
()
Ответ на: комментарий от Quasar

>>но для визуализации и небольшого анализа данных. Например, OVITO.

Для визуализации неплох Pymol (там и скрипты во все поля), но после преждевременной кончины главного разработчика на проект полезли копирасты. Старая версия доступна и открыта, но не поддерживается.

mclaudt
()

В чем проблема не понятно? Что интересно пусть то и делает. Интересно это то, что нужно для работы лаборатории но нет в данном пакете. В любом пакете чего то не хватает.

RCV ★★★★
()
Ответ на: комментарий от RCV

> Интересно это то, что нужно для работы лаборатории но нет в данном пакете.

То, что нужно для работы делают не студенты. Очевидно.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

>Вообще-то учатся и мешаются :)

Оригинально. Вообще-то кроме процесса мешания они могут еще и помогать :). И могут не плохо помочь.

RCV ★★★★
()
Ответ на: комментарий от Evgueni

По Вашим ответам получилось, что нужна задача решение которой Вам лично даром не нужно, но может пригодиться какому-то мифическому сообществу open source.

RCV ★★★★
()
Ответ на: комментарий от RCV

> По Вашим ответам получилось, что нужна задача решение которой Вам лично даром не нужно, но может пригодиться какому-то мифическому сообществу open source.

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

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

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

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от RCV

> Вообще-то кроме процесса мешания они могут еще и помогать :).

Популярное заблуждение :) Но естественно с ними приходится работать, так как грамотные люди именно из студентов и вырастают.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от mclaudt

mclaudt> Что, ещё один велосипед? Их же ДЕСЯТКИ уже есть полноценных.

Есть только один платный редактор - MAPS. Больше нету _ничего_ (если не считать редакторы для биологов).

Quasar ★★★★★
()
Ответ на: комментарий от mclaudt

Я прекрасно осведомлён, что имеется для ВИЗУАЛИЗАЦИИ. Для визуализации программ как раз пруд пруди.

Quasar ★★★★★
()
Ответ на: комментарий от Quasar

>>Есть только один платный редактор - MAPS. Больше нету _ничего_

Мы сидим в разных интернетах? У меня почему-то стоит зоопарк перечисленных редакторов со скриптовым бекграундом, а вот MAPS не гуглится.

mclaudt
()
Ответ на: комментарий от Quasar

>>Я прекрасно осведомлён, что имеется для ВИЗУАЛИЗАЦИИ. Для визуализации программ как раз пруд пруди.

К опенсорсному VMD прикручиваются аналитические причиндалы на скриптовых языках. Брать и делать. Но пилить новый подобный велик - разбазаривание времени.

Кинь ссылку на MAPS - гугл не дает ничего толкового.

mclaudt
()

Последний пункт самый важный, я считаю -_- документации по всему СПО маловато я бы сказал.

pevzi ★★★★★
()
Ответ на: комментарий от dn2010

> Вот ещё бы эта информация добавлялась в http://www.linux.org.ru/wiki/en/LOR-FAQ-Scientific , а то все поговорят, тема утонет в форуме

Люто плюсую. Здесь столько полезного уже всплыло, лучше бы это где-то сохранить.

pevzi ★★★★★
()
  • разработка пакетов для Scilab (image processing toolbox, wavelet toolbox,...), чтобы он хотя бы немного походил на Matlab по функционалу;
  • разработка аналога Optilayer (моделирование многослойных интерференционных покрытий);
  • моделирование переходных процессов в тонкопленочных покрытиях металл-окисел-диэлектрик (разработка микросхем);
  • внедрение в MIDAS алгоритмов ИИ для автоматической калибровки спектров;
  • помощь в интеграции SVG 2.0 в свободные браузеры;
  • разработка модулей для работы с mustdie-only железом: CAN-контроллерами, CCD-контроллерами и т.п.;
  • разработка модулей для управления дешевыми телескопами (a la Meade, Celestron);

Проблем много, каждая требует тысячи, а то и десятки тысяч человеко-часов, но вряд ли кто в ближайшее время будет этим заниматься, т.к. целевая аудитория слишком мала :(

Eddy_Em ☆☆☆☆☆
()

А нужно ли сразу ставить Большую Цель на диплом первокурснику? Может, дать сначала задачу для освоения предметной области, например, разработать пакет расширения для R, решающий узкоспециальную задачу, а потом определиться с окончательной темой.

И еще могу предложить одну бредовую идею (давал ее как тему, но дипломник не осилил до конца): написать модуль группового анализа дифференциальных уравнений в виде конвертора из LaTeX-описания системы в код для системы символьных вычислений.

oami ★★
()
Ответ на: комментарий от Eddy_Em

> Проблем много, каждая требует тысячи, а то и десятки тысяч человеко-часов, но вряд ли кто в ближайшее время будет этим заниматься, т.к. целевая аудитория слишком мала :(

Вот на что надо было бы направлять средства... Хотя бы гранты какие-нибудь. У РФФИ есть направление по созданию программных средств, но куда это все уходит - даже смотреть неинтересно.

oami ★★
()
Ответ на: комментарий от dn2010

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

dn2010 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.