-
Notifications
You must be signed in to change notification settings - Fork 1
/
22.5
119 lines (112 loc) · 3.75 KB
/
22.5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#%Module1.0
# The first line of this file tells Modules that this is a module file.
# DO NOT ALTER IT!
#
# METADATA AND DOCUMENTATION SECTION
#
# This function is part of the Modules help system. You can modify
# the second line if needed, but most products should
# leave this alone.
#
proc ModulesHelp { } {
global product version
puts stderr "This module adds $product/$version to your environment."
}
#
# These variables are used below. The product variable should be set to
# the name of the product and never changed. The version variable will
# be set at install time, so it should be left alone. The conflict line
# prevents multiple versions from being loaded simultaneously. Do not
# change it.
#
set product desimodules
set version 22.5
conflict $product
set desiconda_version 20211217-2.0.0
if {[info exists env(NERSC_HOST)]} {
if { $env(NERSC_HOST) == "perlmutter" } {
set desiconda_version 20220119-2.0.1
# https://docs.nersc.gov/current/#ongoing-issues
setenv MPI4PY_RC_RECV_MPROBE "False"
# https://docs.nersc.gov/development/languages/python/using-python-perlmutter/#mpi-issues
setenv CXI_FORK_SAFE 1
setenv CXI_FORK_SAFE_HP 1
module unload cudatoolkit
}
}
#
# The line below is another part of the Modules help system. You can
# modify the part in quotes if you really need to, but most products should
# leave this alone.
#
module-whatis "Sets up $product/$version in your environment."
#
# ENVIRONMENT SECTION
#
# The PRODUCT_ROOT and PRODUCT_DIR variables are used to set other
# environment variables but are not exported to the actual environment.
# If you are not working at NERSC, but still want to use Modules, you
# will need to set the DESI_PRODUCT_ROOT environment variable
#
if {[info exists env(DESI_PRODUCT_ROOT)]} {
set code_root $env(DESI_PRODUCT_ROOT)/code
} else {
set code_root /global/common/software/desi/$env(NERSC_HOST)/desiconda/$desiconda_version/code
}
set PRODUCT_DIR /global/common/software/desi/$env(NERSC_HOST)/desiconda/startup/modulefiles/$product
#
# This line creates an environment variable pointing to the install
# directory of your product.
#
setenv [string toupper $product] $PRODUCT_DIR
setenv [string toupper $product]_VERSION $version
#
# desiconda contains the external products that we need for most DESI work.
# The value of $desiconda_version, defined above, may change depending
# on system, e.g. cori v. datatran.
#
if { [info exists env(NERSC_HOST)] } {
set desiconda_modules_root [string map {/code /modulefiles} $code_root]
module use $desiconda_modules_root
module load desiconda/$desiconda_version
prereq desiconda
}
#
# DESI-specific modules
#
module load desiutil/3.2.5
prereq desiutil
module load desitree/0.5.0
prereq desitree
module load specter/0.10.0
module load desimodel/0.17.0
module load specex/0.8.4
module load desitarget/2.5.0
module load specsim/v0.15
module load desispec/0.53.1
module load desisim/0.36.0
module load fiberassign/5.6.0
module load desisurvey/0.19.0
module load surveysim/0.12.3
module load redrock/0.15.4
module load redrock-templates/0.7.2
module load prospect/1.2.1
module load desimeter/0.6.7
module load simqso/v1.3.0
module load dust/v0_1
module load speclite/v0.15
module load QuasarNP/0.1.3
module load desietc/0.1.14
module load gpu_specter/master
module load specprod-db/1.1.0
setenv DESI_SURVEYOPS $env(DESI_ROOT)/survey/ops/surveyops/trunk
setenv DESI_SPECTRO_CALIB $env(DESI_ROOT)/spectro/desi_spectro_calib/trunk
# may solve some OpenMP instabilities at NERSC
setenv KMP_INIT_AT_FORK FALSE
# work around
# https://docs.nersc.gov/development/languages/python/using-python-perlmutter/#mpi-issues
if { [info exists env(NERSC_HOST)] } {
if { $env(NERSC_HOST) == "perlmutter" } {
module load evp-patch
}
}