Кто-нибудь может порекомендовать мне хорошую систему управления рабочим процессом (WMS), желательно на Python? До сих пор я использовал GNU Make, но он вносит слой сложности, которого я хочу избежать. Хороший WMS должен иметь следующие особенности:
- легко интегрироваться с инструментами командной строки и скриптами Python,
- простой в использовании и легкий,
- обрабатывать зависимости,
- обеспечить интерфейс командной строки,
- обеспечить механизм регистрации,
- (необязательно) предоставить данные о происхождении.
Я знаю, что WMS очень популярны в биоинформатике (например, Galaxy ), но я ищу что-то более общее.
Ответы:
Для ведения журнала, обеспечивающего полную воспроизводимость, я настоятельно рекомендую пакет Python Sumatra . Он прекрасно связывает номер коммита управления версиями, состояние машины и выходные файлы с каждым запуском программы и имеет веб-интерфейс django для взаимодействия с базой данных информации о прогоне. Python API позволяет очень легко включать логирование в мои скрипты.
источник
Несколько месяцев назад я наткнулся на чрезвычайно рекомендованный веб-сайт Ханс-Мартин против Гаудекера, который преподает такие курсы, как «Эффективные методы программирования для экономистов». В своем курсе осенью 2010 года он представил SCons, в своем курсе осенью 2011 года он переключился на waf , который должен быть быстрее, чем SCons, но все же на основе Python. Слайды для обоих курсов доступны для скачивания, и я (как социолог) нашел их очень поучительными и поучительными.
источник
Посмотрите на VisTrails . Я не использовал его (только доморощенный материал
make
), но он выглядит хорошо продуманным, с хорошим документооборотом и имеет реальных пользователей в НАСА и т. Д.(Вы ищете инструменты для 1-2 человек, 4-5, больше ?)
Добавлено: не совсем ваш вопрос, но я думаю, стоит повторить:
для единообразных, воспроизводимых компьютерных экспериментов, очевидно, нужны
См. Также software-carpentry.org : «Проблема, которую мы пытаемся решить, состоит в том, что ученые часто тратят 40% или более своего времени на борьбу с программным обеспечением, но 95% или более из них в основном самоучки».
источник
Все требования, которые вы упомянули в своем вопросе, выполняются системой параллельных сценариев Swift.
Я провел год в группе Swift в качестве научного сотрудника (доктор наук в области научных процессов). Мы помогаем ученым и исследователям из разных областей удовлетворить их вычислительные потребности.
Swift - это платформа с открытым исходным кодом для параллельного запуска рабочих процессов. Он называется параллельным сценарием, главным образом для того, чтобы подчеркнуть тот факт, что он предоставляет интерфейс сценариев для создания рабочих процессов, а не интерфейс GUI box-arrow.
Я могу лично помочь вам начать работу с приложением Swift. Чтобы узнать больше о Swift, пожалуйста, посмотрите здесь .
источник
Taverna - это WMS с открытым исходным кодом, не Python, а Java.
источник
На этой странице упоминаются некоторые пакеты: https://wiki.python.org/moin/FlowBasedProgramming
Еще один многообещающий пакет, не упомянутый здесь, это Snakemake.
источник
Dexy звучит так, будто это именно то, что вы делаете после С сайта:
источник
Knime или Rapidminer, вероятно, также могут удовлетворить все требования. Должны ли они быть на связи :)
источник