Log Concretised output for each installation

Following the suggestion by @micael.oliveira in today's octopus developers meeting and further discussion from within the SSU later, for each installation we want the install script to log the following:

  • spack concretize -f ( right after creating an environment) or use: spack -e ENV concretize

example:

mpsddeb@mpsd-hpc-ibm-022:/opt_mpsd/linux-debian11/ashwins_playground/test-mpi-with-serial-elpa/spack$ spack env activate foss2021a-mpi 
mpsddeb@mpsd-hpc-ibm-022:/opt_mpsd/linux-debian11/ashwins_playground/test-mpi-with-serial-elpa/spack$ spack concretize -f
==> Warning: using "slurm@20-11-4-1" which is a deprecated version
==> Concretized openmpi@4.1.1%gcc@10.3.0~cuda fabrics=ucx schedulers=slurm ^slurm@20-11-4-1+pmix ^ucx@1.13.1+cma~cuda+dc+dm~gdrcopy+ib_hw_tm+knem+mlx5_dv+rc+rdmacm+thread_multiple+ud+verbs+vfs~xpmem
[+]  k2q4mwt  openmpi@4.1.1%gcc@10.3.0~atomics~cuda~cxx~cxx_exceptions~gpfs~internal-hwloc~java~legacylaunchers~lustre~memchecker~pmi+romio+rsh~singularity+static+vt+wrapper-rpath build_system=autotools fabrics=ucx schedulers=slurm arch=linux-debian11-sandybridge
[+]  23pr7nu      ^hwloc@2.8.0%gcc@10.3.0~cairo~cuda~gl~libudev+libxml2~netloc~nvml~oneapi-level-zero~opencl+pci~rocm build_system=autotools libs=shared,static arch=linux-debian11-sandybridge
[+]  bbfewe3          ^libpciaccess@0.16%gcc@10.3.0 build_system=autotools arch=linux-debian11-sandybridge
[+]  c7gqzo5              ^util-macros@1.19.3%gcc@10.3.0 build_system=autotools arch=linux-debian11-sandybridge
[+]  jyhbf7z          ^libxml2@2.10.1%gcc@10.3.0~python build_system=autotools arch=linux-debian11-sandybridge
[+]  lsxxshu              ^libiconv@1.16%gcc@10.3.0 build_system=autotools libs=shared,static arch=linux-debian11-sandybridge
[+]  mqoliwj              ^xz@5.2.7%gcc@10.3.0~pic build_system=autotools libs=shared,static arch=linux-debian11-sandybridge
[+]  ahe7aye          ^ncurses@6.3%gcc@10.3.0~symlinks+termlib abi=none build_system=autotools arch=linux-debian11-sandybridge
[+]  6kupods      ^numactl@2.0.14%gcc@10.3.0 build_system=autotools patches=4e1d78c,62fc8a8,ff37630 arch=linux-debian11-sandybridge
[+]  qsvspcn          ^autoconf@2.71%gcc@10.3.0 build_system=autotools arch=linux-debian11-sandybridge
[+]  xxf2lqr          ^automake@1.16.3%gcc@10.3.0 build_system=autotools arch=linux-debian11-sandybridge
[+]  p4xvtnh          ^libtool@2.4.6%gcc@10.3.0 build_system=autotools arch=linux-debian11-sandybridge
[+]  cv2zrpx          ^m4@1.4.19%gcc@10.3.0+sigsegv build_system=autotools patches=9dc5fbd,bfdffa7 arch=linux-debian11-sandybridge

This is harder to diff, because it contains arch related terms but can be useful to log for checking the toolchains to be installed.

  • spack find -dfv --show-full-compiler --loaded after installation to show installed packages in a DAG without hashes and with full compiler specs. This needs to be done after the install, within the said environment eg:
karnada@mpsd-hpc-login1:~/spackbox/sandyspack$ spack env activate foss2021a-mpi 
karnada@mpsd-hpc-login1:~/spackbox/sandyspack$ spack find -ldfv --show-full-compiler --loaded
==> In environment foss2021a-mpi
==> Root specs
-- no arch / gcc@10.3.0 -----------------------------------------
------- autoconf@2.71%gcc@10.3.0
-------     openmpi@4.1.1 ~cuda fabrics=ucx schedulers=slurm
-------     slurm@20-11-4-1 +pmix
-------     ucx@1.13.1 +cma~cuda+dc+dm~gdrcopy+ib_hw_tm+knem+mlx5_dv+rc+rdmacm+thread_multiple+ud+verbs+vfs~xpmem

------- automake@1.16.3%gcc@10.3.0
-------     openmpi@4.1.1 ~cuda fabrics=ucx schedulers=slurm
-------     slurm@20-11-4-1 +pmix
-------     ucx@1.13.1 +cma~cuda+dc+dm~gdrcopy+ib_hw_tm+knem+mlx5_dv+rc+rdmacm+thread_multiple+ud+verbs+vfs~xpmem

------- berkeleygw@2.1%gcc@10.3.0 +mpi
-------     openmpi@4.1.1 ~cuda fabrics=ucx schedulers=slurm
-------     slurm@20-11-4-1 +pmix
-------     ucx@1.13.1 +cma~cuda+dc+dm~gdrcopy+ib_hw_tm+knem+mlx5_dv+rc+rdmacm+thread_multiple+ud+verbs+vfs~xpmem

------- binutils@2.36.1%gcc@10.3.0 +headers+ld
-------     openmpi@4.1.1 ~cuda fabrics=ucx schedulers=slurm
-------     slurm@20-11-4-1 +pmix
-------     ucx@1.13.1 +cma~cuda+dc+dm~gdrcopy+ib_hw_tm+knem+mlx5_dv+rc+rdmacm+thread_multiple+ud+verbs+vfs~xpmem

------- cgal@5.0.3%gcc@10.3.0
-------     openmpi@4.1.1 ~cuda fabrics=ucx schedulers=slurm
-------     slurm@20-11-4-1 +pmix
-------     ucx@1.13.1 +cma~cuda+dc+dm~gdrcopy+ib_hw_tm+knem+mlx5_dv+rc+rdmacm+thread_multiple+ud+verbs+vfs~xpmem

------- elpa@2021.11.001%gcc@10.3.0
-------     openmpi@4.1.1 ~cuda fabrics=ucx schedulers=slurm
-------     slurm@20-11-4-1 +pmix
-------     ucx@1.13.1 +cma~cuda+dc+dm~gdrcopy+ib_hw_tm+knem+mlx5_dv+rc+rdmacm+thread_multiple+ud+verbs+vfs~xpmem

......

This output is diff friendly and can be shipped as an artifact after releasing each tool chains for users to compare this when they install it on their own