-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJenkinsfile
162 lines (160 loc) · 7.54 KB
/
Jenkinsfile
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
pipeline {
agent { label 'Vulture' }
triggers {
pollSCM('H/10 * * * *')
}
options {
disableConcurrentBuilds()
buildDiscarder(logRotator(numToKeepStr: '50'))
timestamps()
}
stages {
stage ('build-dare-chameleon') {
steps {
sh '''#!/bin/bash -el
module purge
module load gcc/10.2.0
module load cmake/3.19.2
module load cuda/11.4
module load openmpi/4.1.0-gcc-10.2.0
module load hwloc/2.4.0-gcc-10.2.0
module load python-3.9.9-gcc-7.5.0-bp37qr2
module load mkl/2020.0.166
module list
daredir=$(pwd)
# starpu
cd $HOME && rm -rf starpu-1.3.9.tar.gz starpu-1.3.9 7090
wget https://files.inria.fr/starpu/starpu-1.3.9/starpu-1.3.9.tar.gz
tar -xzf starpu-1.3.9.tar.gz
cd starpu-1.3.9
export STARPU_ROOT=$(pwd)
mkdir build && cd build
echo "CUDA HOME is "
echo $CUDA_HOME
# make sure your cuda is in right place. starpu won't fail if cuda is not found.
../configure --prefix=$(pwd)/install --with-cuda-dir=$CUDA_HOME
make install -j
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$STARPU_ROOT/build/install/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$STARPU_ROOT/build/install/lib
# chameleon
cd $HOME && rm -rf chameleon-1.1.0.tar.gz chameleon-1.1.0
wget https://gitlab.inria.fr/solverstack/chameleon/uploads/b299d6037d7636c6be16108c89bc2aab/chameleon-1.1.0.tar.gz
tar xvf chameleon-1.1.0.tar.gz
cd chameleon-1.1.0
export CHAMELEON_ROOT=$(pwd)
mkdir build && cd build
cmake .. -DCHAMELEON_USE_CUDA=ON -DCHAMELEON_USE_MPI=ON -DBUILD_SHARED_LIBS=ON \
-DCMAKE_INSTALL_PREFIX=$(pwd)/install
make -j install
export CHAMELEON_TESTING=$CHAMELEON_ROOT/testing
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$CHAMELEON_ROOT/build/install/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CHAMELEON_ROOT/build/install/lib
rm -rf ~/.venv/dareenv
python -m venv ~/.venv/dareenv
source ~/.venv/dareenv/bin/activate
pip install conan
# dare installation
cd $daredir
rm -rf build-chameleon && mkdir build-chameleon && cd build-chameleon
conan install -b missing ..
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$(pwd)
cmake -DCMAKE_CUDA_COMPILER=$(which nvcc) -DCHAMELEON_BACKEND=ON -DDPLASMA_BACKEND=OFF ..
make -j
'''
}
}
stage ('dare-test-chameleon') {
steps {
sh '''#!/bin/bash -el
module purge
module load gcc/10.2.0
module load cmake/3.19.2
module load cuda/11.4
module load openmpi/4.1.0-gcc-10.2.0
module load hwloc/2.4.0-gcc-10.2.0
module load python-3.9.9-gcc-7.5.0-bp37qr2
module load mkl/2020.0.166
module list
echo $(pwd)
ls
echo "look into home"
ls $HOME
export STARPU_ROOT=$HOME/starpu-1.3.9
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$STARPU_ROOT/build/install/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$STARPU_ROOT/build/install/lib
export CHAMELEON_ROOT=$HOME/chameleon-1.1.0
export CHAMELEON_TESTING=$CHAMELEON_ROOT/testing
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$CHAMELEON_ROOT/build/install/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CHAMELEON_ROOT/build/install/lib
cd build-chameleon
CHAMELEON_USE_CUDA=1 STARPU_SILENT=1 OMP_NUM_THREADS=1 \
MKL_NUM_THREADS=1 STARPU_CUDA_PIPELINE=4 STARPU_NWORKER_PER_CUDA=4 \
STARPU_SCHED=dmda STARPU_CALIBRATE=1 CUDA_VISIBLE_DEVICES=0 \
./ddarechameleon --threads=5 --n=7090 --ninstr=18694 --nb=720 --ib=180 --gpus=1
'''
}
}
stage ('build-dare-dplasma') {
steps {
sh '''#!/bin/bash -el
module purge
module load gcc/10.2.0
module load cmake/3.19.2
module load cuda/11.4
module load openmpi/4.1.0-gcc-10.2.0
module load hwloc/2.4.0-gcc-10.2.0
module load python-3.9.9-gcc-7.5.0-bp37qr2
module load mkl/2020.0.166
module list
daredir=$(pwd)
# starpu
cd $HOME
rm -rf dplasma
git clone --recursive https://github.com/ICLDisco/dplasma.git
cd dplasma
mkdir build && cd build
../configure --prefix=$(pwd)/install \
--with-cuda=$CUDA_HOME -DCMAKE_CUDA_COMPILER=$(which nvcc)
make install -j
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/dplasma/build/install/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/dplasma/build/install/lib
rm -rf ~/.venv/dareenv
python -m venv ~/.venv/dareenv
source ~/.venv/dareenv/bin/activate
pip install conan
# dare installation
cd $daredir
rm -rf build-dplasma && mkdir build-dplasma && cd build-dplasma
conan install -b missing ..
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$(pwd)
cmake -DCMAKE_CUDA_COMPILER=$(which nvcc) -DCHAMELEON_BACKEND=OFF -DDPLASMA_BACKEND=ON ..
make -j
'''
}
}
stage ('dare-test-dplasma') {
steps {
sh '''#!/bin/bash -el
module purge
module load gcc/10.2.0
module load cmake/3.19.2
module load cuda/11.4
module load openmpi/4.1.0-gcc-10.2.0
module load hwloc/2.4.0-gcc-10.2.0
module load python-3.9.9-gcc-7.5.0-bp37qr2
module load mkl/2020.0.166
module list
echo $(pwd)
ls
echo "look into home"
ls $HOME
cd build-dplasma
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$HOME/dplasma/build/install/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/dplasma/build/install/lib
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$(pwd)
./ddareparsec -c 20 -g 1 > log.txt
'''
}
}
}
}