-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcompilers.sh
executable file
·114 lines (82 loc) · 3.82 KB
/
compilers.sh
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
#!/bin/bash
set -x
set -e
########################################### PARSE ARGUMENTS ################################################
if [ $# -ne 2 ]; then
echo $0: USAGE: $0 SPACK_HOME COMPILERS_HOME
exit 1
fi
export SPACK_HOME=$1
export COMPILERS_HOME=$2
################################ MIRROR DIRECTORIES ################################
mkdir -p $SPACK_HOME/mirrors/compiler
spack mirror add compiler_filesystem $SPACK_HOME/mirrors/compiler
################################ MIRROR COMPILERS ################################
packages_to_mirror=(
'[email protected]+advisor+inspector+itac+vtune'
)
for package in "${packages_to_mirror[@]}"
do
spack mirror create -d $SPACK_HOME/mirrors/compiler --dependencies $package
done
############################## PGI COMPILER TARBALL #############################
mkdir -p $SPACK_HOME/mirrors/compiler/pgi
cp /gpfs/bbp.cscs.ch/scratch/gss/bgq/kumbhar-adm/compiler_downlaods/pgilinux-2017-174-x86_64.tar.gz $SPACK_HOME/mirrors/compiler/pgi/pgi-17.4.tar.gz
################################ SET COMPILERS CONFIG ################################
mkdir -p $SPACK_HOME/spack/etc/spack/defaults/linux/
rm -f $SPACK_HOME/spack/etc/spack/defaults/linux/*
cp $SPACK_HOME/spack-deployment/step1/config.yaml $SPACK_HOME/spack/etc/spack/defaults/linux/config.yaml
cp $SPACK_HOME/spack-deployment/step1/modules.yaml $SPACK_HOME/spack/etc/spack/defaults/linux/modules.yaml
source $SPACK_HOME/spack/share/spack/setup-env.sh
################################ INSTALL OPTIONS ################################
options='--show-log-on-error'
################################ CORE COMPILER (C++11 Headers) ################################
core_compiler='[email protected]'
spack install $options $core_compiler %gcc@4
spack compiler find `spack location --install-dir $core_compiler`
################################ START COMPILERS INSTALLATION ################################
compilers=(
'[email protected]+advisor+inspector+itac+vtune'
'[email protected]+network+nvidia'
)
for compiler in "${compilers[@]}"
do
spack spec -I $compiler %$core_compiler
spack install $options $compiler %$core_compiler
done
####################### REGENERATE MODULES ################################
spack module refresh --yes-to-all --delete-tree --module-type tcl --yes-to-all
spack module refresh --yes-to-all --delete-tree --module-type lmod --yes-to-all
####################### AVAILABLE PACKAGES & MODULES ################################
spack find
module avail
####################### PGI COMPILER CONFIGURATION ################################
spack load [email protected]
PGI_DIR=$(dirname $(which makelocalrc))
GCC_DIR=`spack location --install-dir [email protected]`
makelocalrc -x $PGI_DIR -gcc $GCC_DIR/bin/gcc -gpp $GCC_DIR/bin/g++ -g77 $GCC_DIR/bin/gfortran
####################### ADD NEW COMPILERS TO SPACK ################################
spack compilers
module load gcc-4.8.4 gcc-4.9.3 gcc-5.3.0 gcc-6.2.0 gcc-7.2.0 intel-parallel-studio-professional.2017.4 llvm-4.0.1 pgi-17.4
spack compiler find
sed -i 's#.*fc: .*pgfortran# fc: /usr/bin/gfortran#' $HOME/.spack/linux/compilers.yaml
sed -i 's#.*f77: .*pgf77# f77: /usr/bin/gfortran#' $HOME/.spack/linux/compilers.yaml
sed -i 's#.*f77: .*pgfortran# f77: /usr/bin/gfortran#' $HOME/.spack/linux/compilers.yaml
sed -i 's#.*f77: null# f77: /usr/bin/gfortran#' $HOME/.spack/linux/compilers.yaml
sed -i 's#.*fc: null# fc: /usr/bin/gfortran#' $HOME/.spack/linux/compilers.yaml
spack compilers
spack config get compilers
################################ PERMISSIONS ################################
chmod -R g-w $SPACK_HOME/*
chmod -R g+rx $COMPILERS_HOME/*