Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shift to planning-specific singularity hub #37

Open
haz opened this issue Jul 6, 2021 · 9 comments
Open

Shift to planning-specific singularity hub #37

haz opened this issue Jul 6, 2021 · 9 comments
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@haz
Copy link
Contributor

haz commented Jul 6, 2021

Since singularity seems to be the leading virtualization technique for high-performance planning, and since the original hub has been discontinued, it's probably worth our while to have a community-led effort to host planners and planning-related software somewhere. Ala https://singularityhub.github.io/sregistry/

@FlorianPommerening : This something you guys would be interested in maintaining from Basel?

@haz haz added enhancement New feature or request help wanted Extra attention is needed labels Jul 6, 2021
@FlorianPommerening
Copy link
Collaborator

I didn't know that the hub no longer exists. The existing links still seem to work (singularity pull --name downward.sif shub://aibasel/downward for example) but going to the site directly redirects to datalad.org. Do you know more about the status of this?
So is the option to set up our own "hub" server and host images there? I think it would be worthwhile to set something like this up for the whole community and I can ask if we'd have the resources available to host it.

@haz
Copy link
Contributor Author

haz commented Jul 12, 2021

I learned about it from @ctpelok77 . Old images remain, but new seem to be done and gone.

So is the option to set up our own "hub" server and host images there? I think it would be worthwhile to set something like this up for the whole community and I can ask if we'd have the resources available to host it.

Yep, precisely. It makes the most sense run by the Basel folk, and as a heads up, you may be able to secure funding from ICAPS (org) for the service. Reach out if you'd like to see the semi-regular application I put in for Planning.Domains server fees (generally pretty small, so an easy ask).

@ctpelok77
Copy link
Contributor

There seems to be another option: https://cloud.sylabs.io/library

@jendrikseipp
Copy link
Contributor

Another option is the GitHub container registry. I just tried it for Scorpion and it works nicely (with Singularity 3.8, note that the pull fails with Singularity 3.5). There's now a workflow that automatically builds a new Singularity container when new commits are pushed to the main branch (https://github.com/jendrikseipp/scorpion/blob/scorpion/.github/workflows/container.yml) and containers can be downloaded with singularity pull oras://ghcr.io/jendrikseipp/scorpion:latest.

@FlorianPommerening
Copy link
Collaborator

For completeness, we also discussed the option of using DockerHub on Slack (Singularity can pull from DockerHub with singularity pull docker://aibasel/downward). The time to get the image is slightly higher (but not too bad) than pulling from a singularity registry but the speed of the container is the same as a singularity image, i.e., it does not have the overhead we saw with docker containers. DockerHub has the advantage that with a single recipe file you'd get both a docker and a singularity image. It also is the most well-known solution, which probably makes it a bit easier to access things. It has the downside that some people might use docker for experiments.

There also is the option of hosting a .sif file on Zenodo as an scientific artifact. The advantage is that is is more stable than the other registries and that it is more citable, because it gets a DOI. I have not tried to check what the links of Zenodo look like for the singularity pull command.

@haz
Copy link
Contributor Author

haz commented Aug 9, 2021

Thanks @FlorianPommerening ! I was going to ask you to post just such an update.

I'm partial to the DockerHub solution, for many of the reasons Florian points out. That said -- planutils requires singularity, and the install recipe can be whatever you want (i.e., pulling from a variety of sources). The documentation around it is largely what we have to influence things.

I think it would be very useful to have a page somewhere (planutils ? lab? elsewhere?) along the lines of "So you want to run a planning comparison?". It needs some dusting off, but the "All-STRIPS" collection was meant to be one prong of that (focusing on the benchmarks that are worth using to avoid common pitfalls). Turn-key lab setup, instructions on running with sif's rather than docker, etc, are all additional prongs.

@jendrikseipp
Copy link
Contributor

There's a basic example for running a Singularity-based experiment in the Lab docs: https://lab.readthedocs.io/en/stable/singularity.html This could be a starting point.

@roveri-marco
Copy link
Contributor

I'm working on putting optic in singularity, and I succeeded. The singularity image is also automatically created and it can be downloaded. You can find this in the branch https://github.com/roveri-marco/optic/tree/singularity-build-and-release
I'll merge all in the main branch soon. This is a possible approach to address this issue. One can simply create a simple github repo with the workflow that has only the objective to create the singularity image and make it available. It took me 2h of wok to do this (most was create the singularity file).

@jdekarske
Copy link
Contributor

In #91 I simply hosted the docker image on GitHub CR and singularity successfully converted to .sif on an image pull command. My workflow in that PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

6 participants