Skip to content
This repository was archived by the owner on Mar 20, 2023. It is now read-only.

Commit d501c68

Browse files
author
Nicolas Cornu
authored
Add tqperf to jenkins (#288)
- Add tqperf to jenkins CI - Fix ISPC url - Simplify jenkins CI
1 parent 769c0c4 commit d501c68

File tree

6 files changed

+121
-45
lines changed

6 files changed

+121
-45
lines changed

.travis.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,12 +126,15 @@ before_install:
126126
fi
127127
# install ISPC compiler (only for mac or linux build for now)
128128
- if [[ "$USE_ISPC" == "ON" ]]; then
129+
ispc_version="v1.12.0";
129130
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
130131
url_os="linux";
132+
ispc_version_suffix="b";
131133
else
132134
url_os="macOS";
135+
ispc_version_suffix="";
133136
fi;
134-
url="https://sourceforge.net/projects/ispcmirror/files/v1.12.0/ispc-v1.12.0-${url_os}.tar.gz";
137+
url="https://github.com/ispc/ispc/releases/download/${ispc_version}/ispc-${ispc_version}${ispc_version_suffix}-${url_os}.tar.gz";
135138
wget -O ispc.tar.gz $url;
136139
mkdir ispc && tar -xvzf ispc.tar.gz -C ispc --strip 1;
137140
fi

tests/jenkins/Jenkinsfile

Lines changed: 105 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -24,56 +24,71 @@ pipeline {
2424
}
2525
}
2626

27-
stage('spack install neuron+debug@develop'){
27+
stage('Spack installations'){
2828
steps {
29-
sh 'sh tests/jenkins/install_neuron.sh'
29+
sh 'sh tests/jenkins/install_neuron_reportinglib.sh'
3030
}
3131
}
3232

33-
stage('build corenrn AoS'){
34-
steps {
35-
sh 'sh tests/jenkins/install_coreneuron.sh AoS'
36-
}
37-
}
38-
39-
stage('build corenrn SoA'){
40-
steps {
41-
sh 'sh tests/jenkins/install_coreneuron.sh SoA'
42-
}
43-
}
44-
45-
stage('build corenrn GPU-non-unified'){
46-
steps {
47-
sh 'sh tests/jenkins/install_coreneuron.sh GPU-non-unified'
48-
}
49-
}
50-
51-
stage('build corenrn GPU-unified'){
52-
steps {
53-
sh 'sh tests/jenkins/install_coreneuron.sh GPU-unified'
54-
}
55-
}
56-
57-
stage('unit and ring tests'){
33+
stage('build CoreNeuron'){
5834
parallel{
5935
stage('AoS'){
60-
steps{
61-
sh 'sh tests/jenkins/ringtest.sh AoS'
36+
stages{
37+
stage('build'){
38+
steps{
39+
sh 'sh tests/jenkins/install_coreneuron.sh AoS'
40+
}
41+
}
42+
stage('unit & ring tests'){
43+
steps{
44+
sh 'sh tests/jenkins/ringtest.sh AoS'
45+
}
46+
}
6247
}
6348
}
49+
6450
stage('SoA'){
65-
steps{
66-
sh 'sh tests/jenkins/ringtest.sh SoA'
51+
stages{
52+
stage('build'){
53+
steps {
54+
sh 'sh tests/jenkins/install_coreneuron.sh SoA'
55+
}
56+
}
57+
stage('unit & ring tests'){
58+
steps{
59+
sh 'sh tests/jenkins/ringtest.sh SoA'
60+
}
61+
}
6762
}
6863
}
64+
6965
stage('GPU-non-unified'){
70-
steps{
71-
sh 'sh tests/jenkins/ringtest.sh GPU-non-unified'
66+
stages{
67+
stage('build'){
68+
steps {
69+
sh 'sh tests/jenkins/install_coreneuron.sh GPU-non-unified'
70+
}
71+
}
72+
stage('unit & ring tests'){
73+
steps{
74+
sh 'sh tests/jenkins/ringtest.sh GPU-non-unified'
75+
}
76+
}
7277
}
7378
}
79+
7480
stage('GPU-unified'){
75-
steps{
76-
sh 'sh tests/jenkins/ringtest.sh GPU-unified'
81+
stages{
82+
stage('build'){
83+
steps {
84+
sh 'sh tests/jenkins/install_coreneuron.sh GPU-unified'
85+
}
86+
}
87+
stage('unit & ring tests'){
88+
steps{
89+
sh 'sh tests/jenkins/ringtest.sh GPU-unified'
90+
}
91+
}
7792
}
7893
}
7994
}
@@ -94,13 +109,28 @@ pipeline {
94109
}
95110
}
96111

97-
stage('checkout testcorenrn and ringtest'){
98-
steps{
99-
dir('testcorenrn'){
100-
git url: 'https://github.com/pramodk/testcorenrn.git'
112+
stage('checkout tests'){
113+
parallel{
114+
stage('testcorenrn'){
115+
steps{
116+
dir('testcorenrn'){
117+
git url: 'https://github.com/pramodk/testcorenrn.git'
118+
}
119+
}
101120
}
102-
dir('ringtest'){
103-
git url: 'https://github.com/nrnhines/ringtest.git'
121+
stage('ringtest'){
122+
steps{
123+
dir('ringtest'){
124+
git url: 'https://github.com/nrnhines/ringtest.git'
125+
}
126+
}
127+
}
128+
stage('tqperf'){
129+
steps{
130+
dir('tqperf'){
131+
git url: 'https://github.com/nrnhines/tqperf.git'
132+
}
133+
}
104134
}
105135
}
106136
}
@@ -117,6 +147,11 @@ pipeline {
117147
sh 'sh tests/jenkins/nrnivmodl.sh ringtest'
118148
}
119149
}
150+
stage('nrnivmodl tqperf'){
151+
steps{
152+
sh 'sh tests/jenkins/nrnivmodl.sh tqperf'
153+
}
154+
}
120155
stage('nrnivmodl-core testcorenrn AoS'){
121156
steps{
122157
sh 'sh tests/jenkins/nrnivmodl-core.sh testcorenrn AoS'
@@ -137,6 +172,16 @@ pipeline {
137172
sh 'sh tests/jenkins/nrnivmodl-core.sh ringtest SoA'
138173
}
139174
}
175+
stage('nrnivmodl-core tqperf AoS'){
176+
steps{
177+
sh 'sh tests/jenkins/nrnivmodl-core.sh tqperf AoS'
178+
}
179+
}
180+
stage('nrnivmodl-core tqperf SoA'){
181+
steps{
182+
sh 'sh tests/jenkins/nrnivmodl-core.sh tqperf SoA'
183+
}
184+
}
140185
}
141186
}
142187

@@ -328,6 +373,25 @@ pipeline {
328373
}
329374
}
330375
}
376+
stage('tqperf'){
377+
stages{
378+
stage('neuron'){
379+
steps{
380+
sh 'sh tests/jenkins/run_neuron.sh tqperf tqperf 6'
381+
}
382+
}
383+
stage('corenrn AoS'){
384+
steps{
385+
sh 'sh tests/jenkins/run_corenrn.sh tqperf AoS tqperf 6'
386+
}
387+
}
388+
stage('corenrn SoA'){
389+
steps{
390+
sh 'sh tests/jenkins/run_corenrn.sh tqperf SoA tqperf 6'
391+
}
392+
}
393+
}
394+
}
331395
}
332396
}
333397
}

tests/jenkins/install_coreneuron.sh

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ set -e
44

55
source ${JENKINS_DIR:-.}/_env_setup.sh
66

7-
# Install reportinglib with spack to run reportinglib tests
8-
spack install reportinglib%intel
97
reportinglib_dir=$(spack cd -i reportinglib%intel && pwd)
108

119
CORENRN_TYPE="$1"

tests/jenkins/install_neuron.sh renamed to tests/jenkins/install_neuron_reportinglib.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,14 @@ patch_neuron() (
1919
)
2020

2121
set -e
22+
set -x
2223
source ${JENKINS_DIR:-.}/_env_setup.sh
2324

25+
# Install reportinglib with spack to run reportinglib tests
26+
spack install reportinglib%intel
27+
2428
patch_neuron
2529
spack install neuron+debug@develop
2630
source $SPACK_ROOT/share/spack/setup-env.sh
27-
module av neuron
31+
module av neuron reportinglib
32+

tests/jenkins/run_corenrn.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ if [ "${TEST}" = "patstim" ]; then
2121
mpirun -n ${MPI_RANKS} ./${CORENRN_TYPE}/special-core --mpi -e 100 --pattern patstim.spk -d test${TEST}dat -o ${TEST}
2222
elif [ "${TEST}" = "ringtest" ]; then
2323
mpirun -n ${MPI_RANKS} ./${CORENRN_TYPE}/special-core --mpi -e 100 -d coredat -o ${TEST}
24+
elif [ "${TEST}" = "tqperf" ]; then
25+
mpirun -n ${MPI_RANKS} ./${CORENRN_TYPE}/special-core --mpi -e 50 -d coredat --multisend -o ${TEST}
2426
else
2527
mpirun -n ${MPI_RANKS} ./${CORENRN_TYPE}/special-core --mpi -e 100 -d test${TEST}dat -o ${TEST}
2628
fi

tests/jenkins/run_neuron.sh

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ elif [ "${TEST_DIR}" = "ringtest" ]; then
2020
mkdir ${TEST}
2121
mpirun -n 6 ./x86_64/special ringtest.py -mpi
2222
cat coredat/spk6.std | sort -k 1n,1n -k 2n,2n > ${TEST}/out_nrn_${TEST}.spk
23+
elif [ "${TEST_DIR}" = "tqperf" ]; then
24+
mkdir ${TEST}
25+
mpirun -n ${MPI_RANKS} ./x86_64/special -c tstop=50 run.hoc -mpi
26+
cat spk000.dat | sort -k 1n,1n -k 2n,2n > ${TEST}/out_nrn_${TEST}.spk
2327
else
2428
echo "Not a valid TEST"
2529
exit 1

0 commit comments

Comments
 (0)