nextflow-io / nextflow-io/nextflow
Improved support for HTCondor
Nobody has claimed this yet.
- Dominant language
- Groovy
- Stars
- 3.5k
- Forks
- 811
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 61
Description
I've been tasked with trying to improve nextflow/HTCondor interoperability by the Powers That Be at UWisc (and my own pipeline's needs).
Initially, I thought the major issue would be the lack of a shared file system in HTCondor (#3697). However, I've encountered other issues that suggest a proper feature request might be in order.
- Getting access to a node with submit capabilities. This is a HTCondor-side issue, and I'm working it out with them. It should be doable. (It's possible the solution lies in HTCondor's grid setup, but I don't know enough to say for sure.
- Shared file system. Our setup has a shared 'staging' drive, which will serve as a shared file system while I get the other issues worked out. Eventually, I think Wave/Fusion should solve this problem.
- Launching containerized jobs from Nextflow. Currently all HTCondor jobs are submitted with the descriptor "universe = vanilla", which forces the job to be run as "Vanilla Universe" job, ie locally on each server.
- HTCondor has a separate "Docker" universe to run jobs in docker containers. One simply needs to specifiy 'universe=docker,docker_image=my/dockerimage:version'.
- HTCondor also has a "Container" universe, which sets up jobs to run in Docker containers or Singularity containers. If a universe isn't specified, HTCondor will attempt to determine the universe being requested. Jobs with no image specified are run as vanilla/local jobs, jobs with a docker image url specified are run in docker containers, and jobs with a ".sif" file are run in that singularity container.
- I think most users would benefit from the ability to run containerized jobs. Maybe if 'docker=true' or 'singularity=true', the appropriate universe could be specified along with the image file?
I will add to this post as more issues are encountered. I'm writing something similar to the HTCondor people.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing Nextflow's existing HTCondor submission handling and the HTCondor universe and container documentation linked in the issue. The work is complete when the supported HTCondor execution and container behavior is defined and implemented, with the relevant submission behavior verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, groovy
- Domain
- backend, hpc
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100