Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия |
nextflow [2025/02/06 01:55] – [# Slurm] mirocow | nextflow [2025/02/26 20:36] (текущий) – mirocow |
---|
</code> | </code> |
| |
https://training.nextflow.io/basic_training/containers/#software-directives | * https://training.nextflow.io/basic_training/containers/#software-directives |
| |
==== Каналы ==== | ==== Каналы ==== |
</code> | </code> |
| |
https://training.nextflow.io/basic_training/channels/#channel-factories | * https://training.nextflow.io/basic_training/channels/#channel-factories |
| |
==== Процессы ==== | ==== Процессы ==== |
* script|shell|exec/Скрипт — это строковый оператор, определяющий команду, которая должна быть выполнена задачей процесса. | * script|shell|exec/Скрипт — это строковый оператор, определяющий команду, которая должна быть выполнена задачей процесса. |
| |
https://training.nextflow.io/basic_training/processes | * https://training.nextflow.io/basic_training/processes |
| |
==== Операторы ==== | ==== Операторы ==== |
</code> | </code> |
| |
https://training.nextflow.io/basic_training/operators | * https://training.nextflow.io/basic_training/operators |
| |
==== Модули ==== | ==== Модули ==== |
</code> | </code> |
| |
https://training.nextflow.io/basic_training/modules/ | * https://training.nextflow.io/basic_training/modules/ |
| |
==== Конфигурация ==== | ==== Конфигурация ==== |
* docker-daemon:// извлеките образ контейнера из локальной установки Docker и преобразуйте его в файл образа Singularity. | * docker-daemon:// извлеките образ контейнера из локальной установки Docker и преобразуйте его в файл образа Singularity. |
| |
https://training.nextflow.io/basic_training/config/ | * https://training.nextflow.io/basic_training/config/ |
| |
===== # Docker ===== | ===== # Docker ===== |
===== # Slurm ===== | ===== # Slurm ===== |
| |
Slurm — это отказоустойчивая и высокомасштабируемая система управления кластером и планирования заданий с открытым исходным кодом для больших и малых кластеров Linux. Slurm не требует никаких изменений ядра для своей работы и является относительно самодостаточной. Как менеджер рабочей нагрузки кластера, Slurm имеет три ключевые функции. Во-первых, он выделяет пользователям эксклюзивный и/или неэксклюзивный доступ к ресурсам (вычислительным узлам) на определенный период времени, чтобы они могли выполнять работу. Во-вторых, он предоставляет фреймворк для запуска, выполнения и мониторинга работы (обычно параллельной работы) на наборе выделенных узлов. Наконец, он разрешает конфликты за ресурсы, управляя очередью ожидающих работ. | [[application:hpc:slurm|Slurm]] — это отказоустойчивая и высокомасштабируемая система управления кластером и планирования заданий с открытым исходным кодом для больших и малых кластеров Linux. Slurm не требует никаких изменений ядра для своей работы и является относительно самодостаточной. Как менеджер рабочей нагрузки кластера, Slurm имеет три ключевые функции. Во-первых, он выделяет пользователям эксклюзивный и/или неэксклюзивный доступ к ресурсам (вычислительным узлам) на определенный период времени, чтобы они могли выполнять работу. Во-вторых, он предоставляет фреймворк для запуска, выполнения и мониторинга работы (обычно параллельной работы) на наборе выделенных узлов. Наконец, он разрешает конфликты за ресурсы, управляя очередью ожидающих работ. |
| |
Демоны slurmd обеспечивают отказоустойчивую иерархическую связь. | Демоны slurmd обеспечивают отказоустойчивую иерархическую связь. |
| |
OAR — это универсальный менеджер ресурсов и задач (также называемый пакетным планировщиком) для кластеров HPC и других вычислительных инфраструктур (например, экспериментальных испытательных стендов распределенных вычислений, где универсальность является ключевым фактором). | OAR — это универсальный менеджер ресурсов и задач (также называемый пакетным планировщиком) для кластеров HPC и других вычислительных инфраструктур (например, экспериментальных испытательных стендов распределенных вычислений, где универсальность является ключевым фактором). |
| |
| * https://oar.imag.fr/ |
| * https://github.com/oar-team/oar |
| * https://github.com/oar-team/oar3 |
| * https://oar.imag.fr/docs/2.5/ |
| |
<code bash> | <code bash> |
| |
HyperQueue — это инструмент, разработанный для упрощения выполнения больших рабочих процессов (графов задач) на кластерах HPC. Он позволяет выполнять большое количество задач простым способом, без необходимости вручную отправлять задания в пакетные планировщики, такие как Slurm или PBS. Вы указываете, что именно вы хотите вычислить, а HyperQueue автоматически запрашивает вычислительные ресурсы и динамически распределяет нагрузку задач по всем выделенным узлам и ресурсам. HyperQueue также может работать без Slurm/PBS как общий распределенный механизм выполнения задач. | HyperQueue — это инструмент, разработанный для упрощения выполнения больших рабочих процессов (графов задач) на кластерах HPC. Он позволяет выполнять большое количество задач простым способом, без необходимости вручную отправлять задания в пакетные планировщики, такие как Slurm или PBS. Вы указываете, что именно вы хотите вычислить, а HyperQueue автоматически запрашивает вычислительные ресурсы и динамически распределяет нагрузку задач по всем выделенным узлам и ресурсам. HyperQueue также может работать без Slurm/PBS как общий распределенный механизм выполнения задач. |
| |
| * https://github.com/It4innovations/hyperqueue |
| * https://it4innovations.github.io/hyperqueue |
| * https://github.com/jaantollander/workflows |
| |
<code bash> | <code bash> |
| |
HTCondor — это программная система, которая создает среду высокопроизводительных вычислений (HTC). Она эффективно использует вычислительную мощность машин, подключенных через сеть, будь то отдельный кластер, набор кластеров в кампусе, облачные ресурсы, как автономные, так и временно присоединенные к локальному кластеру, или международные сети. Мощь исходит из способности эффективно использовать общие ресурсы с распределенным владением. | HTCondor — это программная система, которая создает среду высокопроизводительных вычислений (HTC). Она эффективно использует вычислительную мощность машин, подключенных через сеть, будь то отдельный кластер, набор кластеров в кампусе, облачные ресурсы, как автономные, так и временно присоединенные к локальному кластеру, или международные сети. Мощь исходит из способности эффективно использовать общие ресурсы с распределенным владением. |
| |
| * https://github.com/htcondor/htcondor |
| |
<code bash> | <code bash> |
Flux — это гибкая структура для управления ресурсами, созданная для вашего сайта. Структура состоит из набора проектов, инструментов и библиотек, которые могут использоваться для создания настраиваемых менеджеров ресурсов для центров высокопроизводительных вычислений. В отличие от традиционных менеджеров ресурсов, Flux может работать как параллельное задание в большинстве пусковых установок, поддерживающих MPI, в том числе в самом Flux. Это не только делает пакетные скрипты и рабочие процессы для Flux переносимыми на другие менеджеры ресурсов (просто запустите Flux как задание), но также означает, что пакетные задания имеют в своем распоряжении все функции полного менеджера ресурсов, как будто у них есть целый кластер. | Flux — это гибкая структура для управления ресурсами, созданная для вашего сайта. Структура состоит из набора проектов, инструментов и библиотек, которые могут использоваться для создания настраиваемых менеджеров ресурсов для центров высокопроизводительных вычислений. В отличие от традиционных менеджеров ресурсов, Flux может работать как параллельное задание в большинстве пусковых установок, поддерживающих MPI, в том числе в самом Flux. Это не только делает пакетные скрипты и рабочие процессы для Flux переносимыми на другие менеджеры ресурсов (просто запустите Flux как задание), но также означает, что пакетные задания имеют в своем распоряжении все функции полного менеджера ресурсов, как будто у них есть целый кластер. |
| |
<code bash> | ./nextflow.config |
| <code> |
| manifest { |
| mainScript = 'demo.nf' |
| homePage = 'https://github.com/nextflow-io/nextflow/tree/master/docker/flux' |
| description = 'Demo using Nextflow with Flux' |
| } |
| |
| process { |
| executor = 'flux' |
| } |
| </code> |
| |
| ./main.nf |
| <code> |
| workflow { |
| breakfast = Channel.of '🥞️', '🥑️', '🥧️', '🍵️', '🍞️' |
| haveMeal(breakfast) |
| } |
| |
| process haveMeal { |
| debug true |
| input: |
| val food |
| script: |
| """ |
| printf '$food for breakfast!' |
| """ |
| } |
| </code> |
| |
| <code bash> |
| $ nextflow -c nextflow.config run main.nf |
</code> | </code> |
| |