Call for testing: Slurm 23.11.1

Hello again my snapping friends -

Over the past few weeks, I have been working on reviving the Slurm workload manager snap. What is Slurm exactly? It is a workload orchestrator for supercomputers, lovingly named after the Slurm drink from the show Futurama. Slurm is highly configurable, highly available, and is used on over half of the Top 500 supercomputers. It’s a pretty powerful application.

I haven’t published it to the snap store yet (the legacy snap still reserves the name), but that shouldn’t stop you from getting started. You can clone the current work from my personal GitHub: https://github.com/NucciTheBoss/slurm-snap. For instructions on how to build the snap, see the Build the Slurm snap section of the repo README.md me file.

Run into any issues with the snap? Feel free to post here or raise an issue directly on the GitHub repository. If you’re interested in contributing or have questions about how to use Slurm, feel to reach out to me @nuccitheboss on the Ubuntu HPC Matrix space!

Happy snapping! :rocket:

Hi @nuccitheboss .

I recommend you to build yourself the snap, then put it on your git repository . I tried to build, but nothing conclusive (a lot of errors in output ).

FWIW, I built the app without any issue in a Ubuntu 22.04 VM.

The warning about libslurm.so.40: unused library is a little concerning, but I have 0 context.

user@ubu-vm:~/Desktop/slurm-snap$ snapcraft
Installed package repositories                                                                                                     
Generated snap metadata                                                                                                            
Lint OK:                                                                                                                           
- classic: Snap confinement is set to classic.                                                                                     
Lint warnings:                                                                                                                     
- library: libslurm.so.40: unused library 'lib/libslurm.so.40.0.0'. (https://snapcraft.io/docs/linters-library)                    
- library: libpamc.so.0: unused library 'lib/x86_64-linux-gnu/libpamc.so.0.82.1'. (https://snapcraft.io/docs/linters-library)      
- library: librocm_smi64.so.1: unused library 'usr/lib/librocm_smi64.so.1.0'. (https://snapcraft.io/docs/linters-library)          
- library: libform.so.5: unused library 'usr/lib/x86_64-linux-gnu/libform.so.5.9'. (https://snapcraft.io/docs/linters-library)     
- library: libicuio.so.70: unused library 'usr/lib/x86_64-linux-gnu/libicuio.so.70.1'. (https://snapcraft.io/docs/linters-library) 
- library: libicutest.so.70: unused library 'usr/lib/x86_64-linux-gnu/libicutest.so.70.1'. (https://snapcraft.io/docs/linters-library)                                                                                                                                 
- library: liblua5.3-c++.so.0: unused library 'usr/lib/x86_64-linux-gnu/liblua5.3-c++.so.0.0.0'. (https://snapcraft.io/docs/linters-library)                                                                                                                           
- library: liblua5.4-c++.so.0: unused library 'usr/lib/x86_64-linux-gnu/liblua5.4-c++.so.0.0.0'. (https://snapcraft.io/docs/linters-library)                                                                                                                           
- library: libmenu.so.5: unused library 'usr/lib/x86_64-linux-gnu/libmenu.so.5.9'. (https://snapcraft.io/docs/linters-library)     
- library: libpanel.so.5: unused library 'usr/lib/x86_64-linux-gnu/libpanel.so.5.9'. (https://snapcraft.io/docs/linters-library)   
- library: libtic.so.5: unused library 'usr/lib/x86_64-linux-gnu/libtic.so.5.9'. (https://snapcraft.io/docs/linters-library)       
Created snap package slurm_23.11.1_amd64.snap                                                                                      
user@ubu-vm:~/Desktop/slurm-snap$ snap install ./slurm_23.11.1_amd64.snap --dangerous
error: This revision of snap "./slurm_23.11.1_amd64.snap" was published using classic confinement
       and thus may perform arbitrary system changes outside of the security sandbox that snaps are
       usually confined to, which may put your system at risk.

       If you understand and want to proceed repeat the command including --classic.
user@ubu-vm:~/Desktop/slurm-snap$ snap install ./slurm_23.11.1_amd64.snap --dangerous --classic
slurm 23.11.1 installed

Hi @goldstar611 .

Under lxd or multipass ?

Hi there! Thank you for testing out the snap - I appreciate it!

Bit odd that your build environment is exploding. I did have some issues with the Python plugin (what I use for creating the configure and install hook) not being idempotent, but that issue only presented itself after the first successful build. Still looking into that, but it will likely just involve me either (a) patching the plugin or (b) switching to a non-setuptools based build system for the hooks.

If possible, could you please share a copy of your build log? I’d like to see what is going on with the snap build just so I’m aware of issues that other users may encounter when they try to build the snap. You can upload a paste using the pastebinit utility and share the link here. Thanks!

Great! Thank you for testing the snap!

Don’t worry about that warning. It doesn’t seem obvious, but that library (libslurm.so.x) is for applications that interface directly with Slurm, not just the REST API provided by slurmrestd. One such example is PySlurm, which is a Python API for interacting with Slurm. It’s briefly mentioned in step 8 of the Slurm Super Quick Start guide. Feel free to let me know if you have any other questions; this highlights a good thing to point in the developer documentation for the Slurm snap.

For anyone that is looking to build the Slurm snap themselves, the repository has changed locations. Rather than my personal GitHub, it is now under the Charmed HPC organisation on Github. If you don’t know what Charmed HPC is, it’s a project by the Ubuntu HPC community. Happy testing :rocket:

You can now download the Slurm snap from the store using the following command:

sudo snap install slurm --channel=latest/edge --classic

I have the latest version of the snap published to the latest/edge channel, but I have a request open to create the 23.11 track for the snap package.