What are the key differences between Spack and Conda package managers?

102 Views Asked by At

What are the main differences between Spack and Conda package managers? Which applications are more suitable in one or the other?

Based on the Spack documentation, it is meant to be used for the supercomputers. But which exact benefits does it bring?

Does it make sense to use Spack over Conda for personal use?

I guess Conda is more Python-focused, while spack is more versatile? But I couldn't find any detailed information on the actual differences.

1

There are 1 best solutions below

0
AlexJWR On

One deeper difference between the two is that Conda installs precompiled packages, whereas with Spack, the software is compiled on your computer (unless you happen to be using a build cache, but nevermind that). This means that if you want a self-consistent set of packages with Conda, your options may be limited because they're compiled in a finite number of ways. If you only need a few packages, and/or you intend to use the packages you install separately in the sense that they don't depend on each other, then Conda may be a good way to go. On the other hand, if you want to use a particular compiler with a particular MPI flavor to build HDF5 which you then want to use to build your own software in a way where everything is internally consistent, then Spack is a strong option. Roughly speaking, Conda can be simpler and quicker to get an installation done, but Spack provides flexibility and customizability (on account of being built to support complex software stacks on HPC systems).