nextflow-io / nextflow-io/nextflow

Improve SLURM executor efficiency by supporting the SLURM Apache Kafka job completion plugin

Open
#6,371 9 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

executor/slurm stale
Dominant language
Groovy
Stars
3.5k
Forks
811
Avg merge
2d 11h
Merged PRs (30d)
61

Description

New feature

Nextflow can be quite aggressive with job schedulers. While there are good features now to rate limit the polling of the job scheduler, that does slow things down, and still doesn't really solve the problem of repeated polling of the scheduler for job status.

SLURM now supports a kafka plugin (https://slurm.schedmd.com/jobcomp_kafka.html).

Use case

Polling of SLURM by Nextflow could be almost eliminated, and delays due to polling intervals eliminated, by updating the SLURM executor to support the kafka plugin.

Suggested implementation

An event-driven executor like this is probably a significant re-write, so I realise in practice it might be simpler to implement it as a completely separate executor, rather than an option to the existing slurm executor.

I haven't looked at the code, but if the AWS Batch executor already uses EventBridge or something like that to notice job completion in AWS Batch, that mechanism could be used as a model, since the concept is the same.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the SLURM executor and comparing it with the AWS Batch executor's event-notification approach. Consult the SLURM Apache Kafka job completion plugin documentation, then define how job-completion events would replace polling and how the new executor or option should be validated.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, groovy, kafka
Domain
distributed-systems, hpc
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.