Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
nextflow [2025/02/06 01:55] – [# Slurm] mirocownextflow [2025/02/26 20:36] (текущий) mirocow
Строка 13: Строка 13:
 </code> </code>
  
-https://training.nextflow.io/basic_training/containers/#software-directives+  * https://training.nextflow.io/basic_training/containers/#software-directives
  
 ==== Каналы ==== ==== Каналы ====
Строка 23: Строка 23:
 </code> </code>
  
-https://training.nextflow.io/basic_training/channels/#channel-factories+  * https://training.nextflow.io/basic_training/channels/#channel-factories
  
 ==== Процессы ==== ==== Процессы ====
Строка 53: Строка 53:
   * script|shell|exec/Скрипт — это строковый оператор, определяющий команду, которая должна быть выполнена задачей процесса.   * script|shell|exec/Скрипт — это строковый оператор, определяющий команду, которая должна быть выполнена задачей процесса.
  
-https://training.nextflow.io/basic_training/processes+  * https://training.nextflow.io/basic_training/processes
  
 ==== Операторы ==== ==== Операторы ====
Строка 64: Строка 64:
 </code> </code>
  
-https://training.nextflow.io/basic_training/operators+  * https://training.nextflow.io/basic_training/operators
  
 ==== Модули ==== ==== Модули ====
Строка 74: Строка 74:
 </code> </code>
  
-https://training.nextflow.io/basic_training/modules/+  * https://training.nextflow.io/basic_training/modules/
  
 ==== Конфигурация ==== ==== Конфигурация ====
Строка 106: Строка 106:
   * docker-daemon:// извлеките образ контейнера из локальной установки Docker и преобразуйте его в файл образа Singularity.   * docker-daemon:// извлеките образ контейнера из локальной установки Docker и преобразуйте его в файл образа Singularity.
  
-https://training.nextflow.io/basic_training/config/+  * https://training.nextflow.io/basic_training/config/
  
 ===== # Docker ===== ===== # Docker =====
Строка 274: Строка 274:
 ===== # Slurm ===== ===== # Slurm =====
  
-Slurm — это отказоустойчивая и высокомасштабируемая система управления кластером и планирования заданий с открытым исходным кодом для больших и малых кластеров Linux. Slurm не требует никаких изменений ядра для своей работы и является относительно самодостаточной. Как менеджер рабочей нагрузки кластера, Slurm имеет три ключевые функции. Во-первых, он выделяет пользователям эксклюзивный и/или неэксклюзивный доступ к ресурсам (вычислительным узлам) на определенный период времени, чтобы они могли выполнять работу. Во-вторых, он предоставляет фреймворк для запуска, выполнения и мониторинга работы (обычно параллельной работы) на наборе выделенных узлов. Наконец, он разрешает конфликты за ресурсы, управляя очередью ожидающих работ.+[[application:hpc:slurm|Slurm]] — это отказоустойчивая и высокомасштабируемая система управления кластером и планирования заданий с открытым исходным кодом для больших и малых кластеров Linux. Slurm не требует никаких изменений ядра для своей работы и является относительно самодостаточной. Как менеджер рабочей нагрузки кластера, Slurm имеет три ключевые функции. Во-первых, он выделяет пользователям эксклюзивный и/или неэксклюзивный доступ к ресурсам (вычислительным узлам) на определенный период времени, чтобы они могли выполнять работу. Во-вторых, он предоставляет фреймворк для запуска, выполнения и мониторинга работы (обычно параллельной работы) на наборе выделенных узлов. Наконец, он разрешает конфликты за ресурсы, управляя очередью ожидающих работ.
  
 Демоны slurmd обеспечивают отказоустойчивую иерархическую связь.  Демоны slurmd обеспечивают отказоустойчивую иерархическую связь. 
Строка 290: Строка 290:
  
 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>
Строка 299: Строка 304:
  
 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>
Строка 308: Строка 317:
  
 HTCondor — это программная система, которая создает среду высокопроизводительных вычислений (HTC). Она эффективно использует вычислительную мощность машин, подключенных через сеть, будь то отдельный кластер, набор кластеров в кампусе, облачные ресурсы, как автономные, так и временно присоединенные к локальному кластеру, или международные сети. Мощь исходит из способности эффективно использовать общие ресурсы с распределенным владением. HTCondor — это программная система, которая создает среду высокопроизводительных вычислений (HTC). Она эффективно использует вычислительную мощность машин, подключенных через сеть, будь то отдельный кластер, набор кластеров в кампусе, облачные ресурсы, как автономные, так и временно присоединенные к локальному кластеру, или международные сети. Мощь исходит из способности эффективно использовать общие ресурсы с распределенным владением.
 +
 +  * https://github.com/htcondor/htcondor
  
 <code bash> <code bash>
Строка 318: Строка 329:
 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>