Adding apple-container as a new executor#7066
Adding apple-container as a new executor#7066Joon-Klaps wants to merge 1 commit intonextflow-io:masterfrom
apple-container as a new executor#7066Conversation
✅ Deploy Preview for nextflow-docs-staging ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Thanks for the contribution but nor sure we need this |
|
Hi @pditommaso, could you elaborate a bit more on this? I would assume that reducing overhead would still be beneficial, even if small relative to task execution time. Is it because it doesn't translate into meaningful gains for large analyses (which would get run on HPC/cloud), or that macOS is mostly used for development, where such optimisations don’t matter as much? |
|
I would try to implement this in a plugin instead of adding it to core. Since you just need a local executor that uses the apple container runtime, it should be possible. You already have the executor, you just need to use the apple container runtime "under the hood" instead of exposing it is a user-facing container runtime. |
|
I mean, as developer, what's benefits of this approach considering docker is mainstream ? |
(Attemps to) Adress #7064
Claude* and I have tried to implement the
containeras a new executor and as a mini project to learn more about apple containers and nextflow.Changes
applecontainer engine (apple { enabled = true }) andapple_containerexecutor-with-apple-container(analogous to-with-docker)process.arch = 'x86_64', emits--platform linux/amd64 --rosettaso x86_64 images run via Rosettaappleadded to theDOCKER_LIKEengines list inWaveContainerResolver, since Apple uses the same OCI format as DockerTesting
Tested on Apple Silicon (macOS) with the Apple
containerCLI installed.nf-core/rnaseq with Wave (recommended):
Pipeline ran end-to-end successfully (51+ processes,
containerEngine: appleshown in run summary).Simple pipeline without Wave:
Where
custom.configcontainedprocess.arch = 'x86_64'ascontainerassumes the container islinux/arm64.