ComputeCanada / software-stack-config

8 stars 3 forks source link

If CC_RESTRICTED not set don't error out without a license found. #28

Closed bartoldeman closed 2 years ago

bartoldeman commented 2 years ago

This is relevant to pgi and intel modules for which the license is irrelevant if the restricted repo isn't available. And there is no licensed software in soft.computecanada.ca, so for other software this doesn't trigger without restricted.

mboisson commented 2 years ago

Do we have any module file that return positive for grep of find_and_define_license_file and negative for grep of restricted.computecanada.ca ?

bartoldeman commented 2 years ago

The following modules use find_and_define_license_file:

abaqus
ansys
ansysedt
comsol
cst
ddt-cpu
ddt-gpu
feko
fluent
gurobi
hfss
intel
ls-dyna
ls-dyna-mpi
matlab
oasys-ls-dyna
quantumatk
starccm
starccm-mixed

all of theme except intel reference restricted: [oldeman@build-node modules]$ for i in $(grep -r -l find_and_define_license_file .); do grep -L restricted $i; done

./2017/Core/matlab/2017a.lua.bak_20171017143756
./2017/Core/starccm/12.04.011-R8.lua.bak_20180109180750
./2017/Core/starccm/12.04.011-R8.lua.bak_20180110035605
./2017/Core/ddt-gpu/7.1.lua.bak_20180406163205
./2017/Core/intel/2018.3.lua
./2017/Core/intel/2014.6.bak_20211119010632_29479
./2017/Core/intel/2017.1.lua
./2017/Core/intel/2017.5.lua
./2017/Core/intel/2019.3.lua
./2017/Core/intel/2014.6.lua
./2017/Core/intel/2016.4.lua
./2017/Core/cst/2017.bak_20180801142550
./2017/Core/cst/2018.bak_20180801142610
./2017/Core/cst/2020.bak_20200721005748_24034
./2017/Core/cst/2017.bak_20180801142224
./2017/Core/starccm-mixed/12.04.011.lua.bak_20180109180743
./2017/Core/starccm-mixed/12.04.011.lua.bak_20180110035555

but the intel modules depend on icc and ifort which use restricted.

ostueker commented 2 years ago

IMHO the error of a missing license file should only be suppressed for intel modules. What your search can't find are modules of packages that have been installed into a user's home directory via Easybuild and that rely on the user having a file properly set up in ~/.licenses/<package>.lic.

Intel is really the only case where the module is useful (and actually needed) without access to a license. Sure you can't compile but we have loads of packages that have been compiled w/ intel and therefore the module needs to be loaded.

bartoldeman commented 2 years ago

@ostueker ok, yes I hadn't considered the case of sites without restricted but where users install in their $HOME. I can change the conditional to only apply to Intel and PGI. This way we get what we want for Intel/PGI, an error if CC_RESTRICTED=true (and those presumably know what to do), and no error if it's false.

bartoldeman commented 2 years ago

Changed to explicitly check now, tested by setting export LMOD_PACKAGE_PATH=~/software-stack-config/lmod, does the job with unset CC_RESTRICTED; export CC_CLUSTER=foo

mboisson commented 2 years ago

LGTM

bartoldeman commented 2 years ago

Deployed and tested on my laptop; with CC_CLUSTER=foo it no longer sets INTEL_LICENSE_FILE nor complains.