singularityhub / singularity-hpc

Local filesystem registry for containers (intended for HPC) using Lmod or Environment Modules. Works for users and admins.
https://singularity-hpc.readthedocs.io
Mozilla Public License 2.0
110 stars 25 forks source link

SHPC Integration into OHPC #621

Open georgiastuart opened 1 year ago

georgiastuart commented 1 year ago

This is something I'm working on so SHPC integrates better with our cluster tech stack. I wanted to post about it here for feedback on the overarching plan and see if it would be something that could be an "accessory" to SHPC once it's polished (nothing impacts core behavior and it would likely go in its own repository).

OpenHPC is a collection of building blocks and a design philosophy for deploying HPC clusters. OHPC provides RPM-based software arranged into a particular structure that is easy to deploy across nodes in a cluster (e.g., apps are in /opt/ohpc/pub/apps). OHPC is very opinionated with how things are deployed to make sure software is consistent and compatible.

I think SHPC can fit into the OHPC ecosystem quite easily and provide another avenue for integrating container-based software into OHPC clusters. In addition, there are a LOT of OHPC based clusters out there, and easy deployment for an OHPC system would mean a wider audience for SHPC. Here are the aspects that I've thought of so far.

Any thoughts? Glaring pitfalls?

I'll update this issue as I get things working!

vsoch commented 1 year ago

Oh this looks super cool @georgiastuart ! If you make an rpm recipe for shpc we can maybe add it alongside a repository here for others to use (or even make it's own repository?) I'd like to learn more about these module deps too - I think the shpc view.yaml (that you can store somewhere and then install from) might be a good starting point for a logical group of applications?

Can you keep this thread updated / show what you are doing at each step and we can help if needed - either talking something through or helping with some of the work?

The one blocker for shpc (that already existed before this) is really pulling containers for specific architectures. As far as I know biocontainers doesn't provide that yet, and even if we did, the registry pull would dictate what you get. I do think we eventually need to figure out a strategy (but it may not be directly related here).

georgiastuart commented 1 year ago
  1. RPM: Yes! Once I have a cleaner spec file I'll upload the OHPC one to its own repo and make a more general one with standard system install locations for SHPC in general.
  2. I'll check out view.yaml as a starting spot!
  3. I'll definitely keep this thread updated and link to my working repo once I have it set up.

I think pulling containers for specific architectures is related here since my problem is pulling containers related to certain dependencies. I'll mull it over and see if I can find a starting solution to iterate on.

georgiastuart commented 1 year ago

Working on the OpenHPC compatible spec file here: https://github.com/georgiastuart/ohpc-application-spec-files/tree/add-python38/shpc

It works! But it's not particularly elegant. Feedback welcome in my internal PR here: https://github.com/georgiastuart/ohpc-application-spec-files/pull/4

georgiastuart commented 1 year ago

Note: the shpc-ohpc spec brings a LOT of python requirements with it since the python38 install I made is bare bones. A system RPM can lean more heavily on system python38 packages. We choose not to do that on the clusters to not bloat the nodes.

vsoch commented 1 year ago

Awesome! Sometimes "it works" is really the most important part, and elegance can come later. Do you want to have a repository space here to maintain it?

georgiastuart commented 1 year ago

Starting to get the bandwidth to work on this again. I've been out on maternity since late December. I've also got a new situation that would benefit from pulling by arch! Is there somewhere that conversation is happening?

vsoch commented 1 year ago

Oh congrats @georgiastuart!! (and welcome back!) Right now the container pull doesn't have any understanding of arch beyond what the registry delivers based on the OS doing the pull. If you want to open a new issue to discuss that would be perfect.

marcodelapierre commented 1 year ago

This is such a beautiful news @georgiastuart , I am so happy for you and your growing family! :-)