Как стать автором
Поиск
Написать публикацию
Обновить
121.02
MWS
Единый контур решений для цифровой трансформации

Планировщики процессов для необычных областей знаний

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.2K

Продолжаем обсуждать примечательные инструменты для автоматизации и управления рабочими процессами (и напоминаем про MWS Tables — платформу для командной работы, включающую таблицы, трекер задач, отчётность и другие инструменты, собранные в одном сервисе; можно легко создать рабочее пространство для себя или небольшой команды).

Сегодня рассмотрим узкоспециализированные решения для различных областей знаний: Covalent, Cromwell, Cylc и Martian. Эти решения используются для высокопроизводительных вычислений, в работе с квантовыми алгоритмами, климатическом моделировании и анализе медицинских данных.

Covalent

Источник

В 2022 году стартап Agnostiq представил собственное решение для управления рабочими процессами, заточенное под высокопроизводительные и квантовые вычисления — python-библиотеку Covalent. Изначально она предназначалась для внутреннего использования, чтобы команда могла заниматься прототипированием и проводить эксперименты в своей области. Однако авторы поспешили поделиться своей разработкой с комьюнити и выложили проект по лицензии Apache 2.0. 

Разработчикам систем ИИ и исследователям в области машинного обучения Covalent позволяет выполнять ресурсоёмкие задачи в облачных средах. Дата-сайентистам фреймворк предлагает возможность подключаться к этим вычислительным ресурсам.

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

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

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

Cromwell

Этот инструмент написан на Scala. Он предназначен для организации сложных вычислений в биоинформатике. Распространяется под лицензией BSD 3-Clause. В частности, его можно применить в проектах, связанных с секвенированием ДНК и РНК. В последних версиях планировщик работает исключительно с декларативным языком описания рабочих процессов WDL.

Разработка Cromwell стартовала примерно в середине 2010-х годов в одном из крупнейших центров биомедицинских исследований — Институте имени Эли и Эдит Л. Броуд при MIT и Гарварде. К тому времени местные секвенсоры ежедневно генерировали порядка 20 ТБ данных. Для их обработки специалистам потребовался высокопроизводительный планировщик, и команда института представила Cromwell.

Позже этот инструмент вошёл в стек альянса больниц и исследовательских учреждений — Melbourne Genomics. По словам представителей организации, Cromwell улучшил масштабируемость их системы геномного тестирования. Впоследствии разработчики Cromwell стали сотрудничать с биотех-организацией Verily для развития open source решений в области бионаук.

Martian

Язык и фреймворк для выполнения сложных вычислительных пайплайнов. Martian был разработан в 10xGenomics — биотех-компании, специализирующейся на создании технологий секвенирования. Там этот инструмент играет ключевую роль, обеспечивая работу более 30 пайплайнов.

Прототип Martian написали на JavaScript и Node.js, с Jison в качестве генератора парсеров. В дальнейшем Martian переписали на Go, а Jison заменили на goyacc. Как пишут авторы, фреймворк разработан с прицелом на простоту: минималистичный синтаксис и понятная структура, прозрачная логика работы.

Ключевой элемент фреймворка — stage (звено). Ввод каждого звена связан с выводом другого, формируя пайплайн в виде ациклического графа. Пример описания звена:

stage SORT_ITEMS(
    in  txt  unsorted,
    in  bool case_sensitive,
    out txt  sorted,
    src py   "stages/sort",
)

Подробная документация, дополнительные примеры кода и описание всех концепций доступны на официальном сайте Martian.

Cylc

Источник

Универсальный планировщик рабочих процессов (лицензия GPL-3.0), разработанный для автоматизации систем прогнозирования погоды. Он применяется в метеорологических службах по всему миру. 

В основе Cylc лежат два ключевых принципа: распределение и децентрализация. Каждый workflow выполняется независимо и управляется собственной серверной программой, что обеспечивает масштабирование.

Инструмент работает как с классическими Directed Acyclic Graphs (DAG), так и с циклическими процессами. Эта особенность полезна в тех случаях, когда повторяющиеся задачи зависят от результатов предыдущих запусков. 

В то же время Cylc позволяет настраивать задачи с разными интервалами и сложными межцикловыми зависимостями. Пользователи могут контролировать процессы с помощью графического (GUI) или терминального интерфейса (TUI). С их помощью легко отслеживать выполнение задач, вносить изменения в конфигурации и анализировать логи.

Для желающих познакомиться с инструментом поближе, хорошей отправной точкой станет документация. Она достаточно исчерпывающая, поэтому её изучение может занять продолжительное время. Там описана установка и настройка, есть руководства по созданию и запуску рабочих процессов с примерами, компактные шпаргалки (cheat sheets), охватывающие большинство ключевых команд Cylc, и многое другое.

Теги:
Хабы:
+2
Комментарии1

Публикации

Информация

Сайт
mws.ru
Дата регистрации
Дата основания
Численность
501–1 000 человек
Местоположение
Россия