Spack: Difference between revisions

From Mu2eWiki
Jump to navigation Jump to search
Line 68: Line 68:
==References==
==References==
*[https://docs.google.com/presentation/d/16CxC40Hs0V0m7pwTQaSoUdo-gqy5UqojNZY824AiCBY/edit#slide=id.g23f597c85bd_0_0 lab intro talk]
*[https://docs.google.com/presentation/d/16CxC40Hs0V0m7pwTQaSoUdo-gqy5UqojNZY824AiCBY/edit#slide=id.g23f597c85bd_0_0 lab intro talk]
*[ spack official docs]
*[https://spack.readthedocs.io/en/latest/index.html spack official docs]
*[https://fifewiki.fnal.gov/wiki/Spack New Fermilab spack wiki]
*[https://packages.spack.io/ public packages]
** [https://fifewiki.fnal.gov/wiki/Using_fermi-spack-tools_for_test_releases Using fermi-spack-tools for test releases]
*[https://fifewiki.fnal.gov/wiki/Spack lab spack wiki and tutorial]
*[https://cdcvs.fnal.gov/redmine/projects/spack-infrastructure/wiki/Wiki Old Fermilab spack wiki]
* githubs
*[https://spack.readthedocs.io/en/latest/ Spack docs]
**[https://github.com/FNALssi FNALssi] (spack, spack tools)
*[https://github.com/FNALssi fnal ssi github] [https://github.com/FNALssi/fnal_art/tree/develop/packages recipes] [https://github.com/FNALssi/spack/tree/fnal-develop/var/spack/repos/builtin/packages builtin recipes]
**[https://github.com/fermitools fermitools] (metacat, jobsub, POMS)
*[https://github.com/spack/spack github]
**[https://github.com/art-framework-suite/art.git art framework]
*[https://github.com/FNALssi/fermi-spack-tools spack-tools github]
* recipe repos
** [https://github.com/Mu2e/mu2e-spack mu2e-spack] (ots,mdh)
** [https://github.com/FNALssi/fnal_art fnal_art]
** [https://github.com/marcmengel/scd_recipes/tree/master/packages scd_recipes] (metacat)
** builtin [https://github.com/FNALssi/spack/tree/fnal-develop/var/spack/repos/builtin lab] [https://github.com/spack/spack/tree/develop/var/spack/repos/builtin spack]
*[https://fnalssi.github.io/cetmodules/ cetmodules]
*[https://fnalssi.github.io/cetmodules/ cetmodules]
*[https://cmake.org/cmake/help/latest/ cmake]
*[https://grid-deployment.web.cern.ch/grid-deployment/dms/dmc/docs/gfal2-python-1.9.0/html/index.html gfal2]


[[Category:Computing]]
[[Category:Computing]]
[[Category:Code]]
[[Category:Code]]
[[Category:CodeManagement]]
[[Category:CodeManagement]]

Revision as of 03:17, 26 April 2024

Introduction

Spack is a multi-package setup and build system. It replaces UPS and MRB (Multi-Repo Build) and related packages. The computing division will work to build and provide their software (art, ifdhc) within spack. Mu2e will probably not use the spack build features, but will have to use spack to access pre-built software, instead of ups setup command.

Scripts are provided to allow a spack setup of a UPS product and vice versa. The user doesn't see the difference.

Usage

setup mu2e
source /cvmfs/fermilab.opensciencegrid.org/packages/common/spack/rollout/NULL/share/spack/setup-env.sh

defines

SPACK_ROOT=/cvmfs/fermilab.opensciencegrid.org/packages/common/spack/rollout/NULL
MODULEPATH=$SPACK_ROOT/share/spack/modules/linux-scientific7-x86_64
DK_NODE=$SPACK_ROOT/share/spack/dotkit/linux-scientific7-x86_64
PATH= ... /cvmfs/fermilab.opensciencegrid.org/packages/common/spack/rollout/NULL/bin
BASH_FUNC_spack()=... load ... unload ...

and some useful commands

spack -h
spack find -h
spack arch
spack find
spack find --variants art_root_io arch=linux-scientific7-x86_64_v2 %gcc@13.1.0
spack find -ldv 

You can see the common lab packages are available in spack: ifdhc, jobsub_client, sam_web_client.

spack load ifdhc
# load (like ups setup) using a hash for the version and qualifiers
spack load ifdhc/242t7pk

Notes

show what spack knows about architectures

spack arch --known-targets

full listing of dependencies

spack find --long --show-flags --deps --variants ifdhc

diff between two hashes

spack diff art-root-io/jrcjyn4 art-root-io/h43e5rd

How to group sets of setups into one. You can make a spack environment, like

spack env create uboone_analysis_current_sl7_x86_64

then

spack activate uboone_analysis_current_sl7_x86_64

and "spack install" packages into it; then if you

spack env activate uboone_analysis_current_sl7_x86_64

those will be the packages you see, and they're all spack loaded at once. Marc stills need to add support for that to the cvmfs scripts though...

geant names

geant data packages have different names in spack. From Julia:

g4able is G4ABLA
g4emlow is G4EMLOW
g4neutron is G4NDL
g4nucleonsxs is G4SAIDDATA
g4nuclide is G4ENSDFSTATE 
g4photon is PhotonEvaporation
g4pii is G4PII
g4radiative is RadioactiveDecay
g4tendl is G4TENDL
g4particlexs is G4PARTICLEXS
g4incl is G4INCL

G4NEUTRONXS appears to be obsolete.

References