Spack

Jul 13, 2020. | By: @vsoch

This week for the sofware survey we are highlighting spack/spack, a multi-platform package manager that builds and installs multiple versions and configurations of software. If you want to jump right in, you can:

or learn more about it in the following sections.

What is spack?

Spack is a simple package manager implemented in Python. More specifically, it stands for “Supercomputing PACKage manager” as it was originally intended for high performance computing clusters. The creator Todd Gamblin chose it because:

I had a decent meaning for the words, it had “pack” in it for package manager, and it seemed like it’d be googleable based on the result I saw. That was the original meaning anyways.

👉️ spack documentation

Why was it created?

For the many times that I’ve heard Todd speak (he gives regular talks and even was featured on the RSE Stories and Changelog podcasts) the most equally truthful and funny fact is the reason that he created it in the first place.

Other fun fact is that it was built out of anger at how hard it is to build things in HPC :), and the need for some type of concrete goal for distributing software. There was no environment you could target that was usable/tweakable everywhere — Spack sort of provides that in that if you make a package and it works on your machine, and you get it into Spack, there is a reasonable chance someone else can get it working on some other machine, too.

We’ve all been there! And now it has fans far and wide, and the contributors are getting smaller and smaller these days!

/rseng/assets/img/posts/showcase/spack.jpeg

How do I cite it?

See this section of the repository README.md for details on citation.

@INPROCEEDINGS {7832814,
  author = {T. Gamblin and M. LeGendre and M. R. Collette and G. L. Lee and A. Moody and B. R. de Supinski and S. Futral},
  booktitle = {SC15: International Conference for High-Performance Computing, Networking, Storage and Analysis},
  title = {The Spack package manager: bringing order to HPC software chaos},
  year = {2015},
  volume = {},
  issn = {2167-4337},
  pages = {1-12},
  keywords = {libraries;complexity theory;syntactics;operating systems;production},
  doi = {10.1145/2807591.2807623},
  url = {https://doi.ieeecomputersociety.org/10.1145/2807591.2807623},
  publisher = {IEEE Computer Society},
  address = {Los Alamitos, CA, USA},
  month = {nov}
}

How do I get started?

If you want to get started with spack, the following tutorials are suggested, and coming up soon!

And of course if you miss these dates, there are plenty of resources in the spack documentation and you can post questions on the GitHub issues board.

How do I contribute to the software survey?

or read more about annotation here. You can clone the software repository to do bulk annotation, or annotation any repository in the software database, We want annotation to be fun, straight-forward, and easy, so we will be showcasing one repository to annotate per week. If you’d like to request annotation of a particular repository (or addition to the software database) please don’t hesitate to open an issue or even a pull request.

Where can I learn more?

You might find these other resources useful:

For any resource, you are encouraged to give feedback and contribute!

Categories

News 2

Tutorials 2

Software 33

Recent Posts