singularity
nextflow
Our great sponsors
singularity | nextflow | |
---|---|---|
6 | 9 | |
2,495 | 2,538 | |
0.6% | 2.0% | |
0.0 | 9.7 | |
over 1 year ago | 5 days ago | |
Go | Groovy | |
GNU General Public License v3.0 or later | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
singularity
-
Just a warning about typos
Old Singularity repo: https://github.com/apptainer/singularity
- Singularity – Open Source Container System for Secure High Performance Computing
- Singularity – Open-Source Container System for Secure High Performance Computing
-
Podman: A tool for managing OCI containers and pods
This sounds exactly like Singularity http://singularity.hpcng.org/
-
What is a singularity container and how do I use it?
never used it but a very popular example of a container is docker (that link says what a container is) and singularity just looks like another container flavour (maybe specific to HPCs?)
-
Youki, a container runtime in Rust, passed all the default tests provided by opencontainers.
The re-exec pattern is not the only way you can solve this in Go. I actually rebuilt a container runtime from C to Go (for the HPC market) and we had to solve this problem. We did it by essentially forking before any Go code gets run. Here’s the code for the main binary that actually spawns the container process. It’s half C, half Go. https://github.com/hpcng/singularity/tree/master/cmd/starter
nextflow
-
Nextflow: Data-Driven Computational Pipelines
> It's been a while since you can rerun/resume Nextflow pipelines
Yes, you can resume, but you need your whole upstream DAG to be present. Snakemake can rerun a job when only the dependencies of that job are present, which allows to neatly manage the disk usage, or archive an intermediate state of a project and rerun things from there.
> and yes, you can have dry runs in Nextflow
You have stubs, which really isn't the same thing.
> I have no idea what you're referring to with the 'arbitrary limit of 1000 parallel jobs' though
I was referring to this issue: https://github.com/nextflow-io/nextflow/issues/1871. Except, the discussion doesn't give the issue a full justice. Nextflow spans each job in a separate thread, and when it tries to span 1000+ condor jobs it die with a cryptic error message. The option of -Dnxf.pool.type=sync and -Dnxf.pool.maxThreads=N prevents the ability to resume and attempts to rerun the pipeline.
> As for deleting temporary files, there are features that allow you to do a few things related to that, and other features being implemented.
There are some hacks for this - but nothing I would feel safe to integrate into a production tool. They are implementing something - you're right - and it's been the case for several years now, so we'll see.
Snakemake has all that out of the box.
-
Alternatives to nextflow?
For now, I think that the best place to track this / get your voice heard is this GitHub Discussions post (which covers many things - error reporting is one of them). https://github.com/nextflow-io/nextflow/discussions/3107
- HyperQueue: ergonomic HPC task executor written in Rust
-
Nextflow vs Snakemake
We could spend the day pointing to things we wish were different, but that doesn't change the fact that Nextflow is the leader when it comes to workflow orchestration. And feel free to create a new issue in the GitHub repository if you wish to request a feature :)
-
Feel very hard writing nextflow pipeline.
The nextflow devs have been talking about this for a while on GitHub. Looks like they're implementing something along these lines using schema like they do for nf-core. GitHub discussion.
-
Need a statically typed Python replacement
Groovy definitely scales up just fine I think but I never used it myself outside of little snippets embedded in my DSL, I know its considered by some to be "dead" so its interesting to see what other JVM-ecosystem users think of it.
What are some alternatives?
podman - Podman: A tool for managing OCI containers and pods.
galaxy - Data intensive science for everyone.
apptainer - Apptainer: Application containers for Linux
argo - Workflow Engine for Kubernetes
warewulf - Warewulf is a stateless and diskless container operating system provisioning system for large clusters of bare metal and/or virtual systems.
ploomber - The fastest ⚡️ way to build data pipelines. Develop iteratively, deploy anywhere. ☁️
gitlab-runner
Airflow - Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
kaniko - Build Container Images In Kubernetes
devops-resources - DevOps resources - Linux, Jenkins, AWS, SRE, Prometheus, Docker, Python, Ansible, Git, Kubernetes, Terraform, OpenStack, SQL, NoSQL, Azure, GCP
cockpit-podman - Cockpit UI for podman containers
Hubitat-iPhone-Presence-Sensor - A virtual presence sensor for Hubitat that checks if an iPhone/Android is on the WiFi network.