We wish you RISC-V holidays!
by Igor Ljubuncic on 21 December 2023
There are three types of computer users: the end user, the system administrator, and the involuntary system administrator. As it happens, everyone has found themselves in the last group at some point or another; you sit down to perform a task relevant to your needs or duties, but suddenly the machine does not work as expected. At that moment, you end up debugging the software and the hardware, instead of focusing on what you really want.
In the realm of High Performance Computing (HPC), where every second and byte of data count, the necessity to avoid hardware- and software-related snags is as high [sic] as ever. In Canonical, we want to make sure that the consumers of our products and tools can have a streamlined, efficient experience – so they can focus on their work and not on the setup.
This is why we have some great news for you just in time for the holidays. You can find a RISC-V version of Spack, the package manager focused on scientific software for HPC and supercomputing in the Snap Store!
We wanted to package Spack as a snap for RISC-V to make it a little easier for research software engineers, supercomputing cluster administrators, and scientists to start experimenting with the architecture. Spack is capable of building 7,000+ packages from source on heterogeneous compute environments, which makes Spack a natural choice for testing our HPC cluster deployments on RISC-V hardware.
We packaged it so you don’t have to
We have had an amd64 Spack snap available for a couple of months now, but we have recently added support for other architectures such as arm64, s390x, ppc64el, and riscv64. While Spack is relatively easy to install, the snap tries to unify and enhance the deployment and usage experience. We pre-bootstrapped Spack by including clingo, patchelf, and gnupg already inside the snap, and we enable you to pin specific Spack versions and refresh when you’re ready.
Our focus is to save you time building the package manager, figuring out the dependencies, all the fine details that would make you into an involuntary system administrator. Instead, grab the snap, install it, use it, job done. We started down this path of enabling multiple architectures in the snap after attending the Second International Workshop on RISC-V for HPC at SC23 in November.
After learning how others were experimenting with the latest advancements in the RISC-V ecosystem for HPC, our HPC engineer Jason Nucciarone identified an opportunity for us to take the industry experiment to the next level. Spack is an excellent tool for setting up workload environments and managing complex software stacks on distributed, multi-tenant HPC systems. It was a natural choice to use the package manager to build and test scientific software on RISC-V. However, before we could start any experimenting, we needed to enable riscv64 support for the Spack snap package.
We had to do some work to get the snap working on RISC-V. Namely, we had to build yq – a command-line YAML processor – from scratch as the cross-compiler used in yq’s build process does not support cross-compiling to riscv64. We also had to upgrade Spack to version 0.21.0 because of a KeyError that would arise if you were running on an architecture not supported by all Spack packages.If you’re interested, you can find the riscv64 build of Spack is still in the edge channel. Install it, test it, tell us how it goes. We welcome your feedback and participation.
HPC team’s New Year’s resolution
In the coming weeks and months, we intend to publish a series of articles, guides and whitepapers focused on the HPC domain. We want to showcase our progress in building tools and solutions for HPC engineers and scientists, we want to share benchmarks and studies, and in general, help you get an efficient, fast, stable computing experience. You can subscribe to our newsletter (in the sidebar to your right) to get updates on upcoming content.
Happy holidays!
Photo by Christiaan Huynen on Unsplash.