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)
Ответ на: комментарий от oami

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

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

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

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

Не в случае научного ПО. Там с документацией в большинстве своё более-менее нормально, да и не сможет студент её улучшить. Проблема в её представлении.

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

> разработка модулей для работы с mustdie-only железом: CAN-контроллерами

По-моему здесь как раз более-менее проблем нет. Слышал доклад на конкурсе молодых учёных :) В ядро уже включено.

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

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

А что есть такие специалисты? :)

Сильно сомневаюсь.

Евгений, а как насчет разработки аналога матлабовского image processing toolbox для scilab'а?

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

Я-то и сам могу этим заняться, но нет времени. А на адаптацию под линукс, к примеру, исходников интерфейса для ПЗС-контроллера уйдет очень много времени.

Для CAN есть модуль ядра, но он работает не со всеми контроллерами.

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

> Евгений, а как насчет разработки аналога матлабовского image processing toolbox для scilab'а?

В этом я точно не специалист :) Более того про матлаб я знаю только то, что такое ПО есть, но зачем оно нужно я не в курсе. В моём «научном уголке» доминирует ROOT, ранее cernlib/paw.

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

Для CAN есть модуль ядра, но он работает не со всеми контроллерами.

Безусловно - но это нужно «пинать» производителей железа. Более того есть народ (был по крайней мере) который был готов разрабатывать драйвера в обмен на спецификации.

По поводу CAN где-то с месяц назад в ядро был включён драйвер plx_pci (есть версия и для xenomai)

This is a general driver for cards based on PLX90xx PCI-bridges. It supports following cards:

- Adlink PCI-7841/cPCI-7841 card (http://www.adlinktech.com/)

- Adlink PCI-7841/cPCI-7841 SE card

- esd CAN-PCI/CPCI/PCI104/200 (http://www.esd.eu/)

- esd CAN-PCI/PMC/266

- esd CAN-PCIe/2000

- Marathon CAN-bus-PCI card (http://www.marathon.ru/)

- TEWS TECHNOLOGIES TPMC810 card (http://www.tews.com/)

This driver has been ported from socketcan of mainline Linux kernel 2.6.34. Support of esd cards has been added by Matthias Fuchs in linux-next

Портирование драйвера plx_pci под rtcan подсистему в xenomai позволило работать с вышеобозначенными CAN-контроллерами в режиме жесткого реального времени.

---------------------

plx_pci в socketcan (обычное ядро Linux): http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=blob;f=driver... 7b5c716a2426aeac6157808b0539976db0515a;hb=d568ec369310919bcafb88fc97a171186543329d

Вот его разработал «студент», точнее аспирант :), но таких студентов один на тысячу.

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

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

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

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

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

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

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

А чуть подробнее? ТЗ я думаю было бы вполне в тему.

P.S. Ничего никому не даём (в смысле темы) - просто обдумываем варианты.

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

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

Сделай в FAQ ссылку на тред :)

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

> Не, это все лучше бы прямо там оформить. Я бы и сам это сделал, но в сабже мало разбираюсь -_-

а) Здесь нет суперспецов

б) FAQ пишут те, кому это надо, то есть заведомо не разбирающиеся :)

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

> А чуть подробнее? ТЗ я думаю было бы вполне в тему.

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

Описания теории есть в книгах Л.В.Овсянникова(год издания не помню), Н.Х.Ибрагимова (1978), П.Олвера (1984), более свежими изданиями не интересовался.

Формат формул LaTeX в задании дипломнику приплел тогда, потому что хотелось некоего стандартного формата ввода. Цепочка обработки предполагалась такой: входной файл с описанием уравнения (системы) -> извлечение основных переменных и генерация дополнительных -> создание скрипта на языке системы символьных вычислений -> вычисление однопараметрических групп Ли симметрий. Наверное, красивым завершением было бы преобразование результата снова в формат LaTeX (в духе literate programming).

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

И до какого момента было всё проделано? Или как обычно :)

Мне кажется, что формат LaTeX действительно с одной стороны может претендовать на некий стандарт для ввода данных, но с другой стороны уж очень много вариантов этого самого ввода надо учитывать. Например, как пресловутое dx отличить от двух переменных d и x. Необходима формализация записи тогда.

Evgueni ★★★★★
() автор топика
Ответ на: мысли вслух от greenman

Уже не могу :( - нет соответствующей кнопочки. Постараюсь быть внимательней.

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

> Или как обычно :)

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

С друой стороны, принцип «Хочешь, чтобы было так, как тебе нравится — делай сам» тоже никто не отменял. Было бы время...

Необходима формализация записи тогда.

Да, разумеется. Хотя бы на уровне соглашений по использованию идентификаторов переменных (запретить использовать d :)

oami ★★
()

Тема затихла, задачи ясны. Пожалуй, я выберу проблему с R.

PS. Не ожидал, что меня будут разбирать по косточкам на ЛОР-е :)

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