-
Notifications
You must be signed in to change notification settings - Fork 2
/
.gitlab-ci.yml
121 lines (116 loc) · 4.25 KB
/
.gitlab-ci.yml
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
# This is a GitLab CI/CD configuration file for AngstromCube
stages: # List of stages for jobs, and their order of execution
- build
- test
- run
build_on_JUSUF:
id_tokens:
SITE_ID_TOKEN:
aud: "https://gitlab.jsc.fz-juelich.de"
stage: build
script:
- echo "Set module environment"
- module --force purge && module load Stages/2024 Intel/2023.2.1 ParaStationMPI/5.9.2-1-mt imkl-FFTW/2023.2.0 CMake CUDA/12
- export MKL_ROOT=/p/software/jusuf/stages/2024/software/imkl-FFTW/2023.2.0-ipsmpi-2023a/
- echo "Start build system..."
- rm -rf build && mkdir build && cd build
- cmake .. -DCMAKE_INSTALL_PREFIX=~/a43 -DHAS_MKL=ON -DHAS_MPI=ON -DHAS_DEVEL=ON -DHAS_TFQMRGPU=ON -DHAS_RAPIDXML=ON -DHAS_RAPIDJSON=OFF -DHAS_FFTW=ON -DHAS_OPENMP=ON
- echo "Compiling the code..."
- make -j
- cd ..
- echo "Compile complete."
- ls ~/a43/lib64 ~/a43/bin
tags: # Set tags such that we can use the shared runners of the JSC gitlab
- jacamar
- jusuf
- login # Compile on login node
- shell
interfaces_on_JUSUF:
id_tokens:
SITE_ID_TOKEN:
aud: "https://gitlab.jsc.fz-juelich.de"
stage: test
script:
- echo "Set module environment"
- module --force purge && module load Stages/2023 GCC/11.3.0 ParaStationMPI/5.8.0-1-mt imkl-FFTW/2022.1.0 Julia
- module --force purge && module load Stages/2022 GCC/11.2.0 ParaStationMPI/5.5.0-1 imkl/2021.4.0 CMake CUDA/11.5
- export MKL_ROOT=/p/software/jusuf/stages/2022/software/imkl/2021.4.0/mkl/latest
- ls ~/a43/lib64 # libliveatom.so needs to be here
- echo "Test Python interface"
- cd interfaces/Python
- rm ./libliveatom.so && ln -s ~/a43/lib64/libliveatom.so .
- python3 ./test_live_atom.py
- cd -
- echo "Test Julia interface"
- cd interfaces/Julia
- rm ./libliveatom.so && ln -s ~/a43/lib64/libliveatom.so .
- ./test_live_atom.jl
- cd -
- echo "Test Fortran interface"
- cd interfaces/F90
- rm ./libliveatom.so && ln -s ~/a43/lib64/libliveatom.so .
- make -B # compile
- ./test_live_atom
- cd -
- echo "Test C interface"
- cd interfaces/C
- rm ./libliveatom.so && ln -s ~/a43/lib64/libliveatom.so .
- make -B # compile
- ./test_live_atom
- cd -
- echo "Interface tests complete."
tags: # Set tags such that we can use the shared runners of the JSC gitlab
- jacamar
- jusuf
- login # Compile on login node
- shell
test_on_JUSUF:
id_tokens:
SITE_ID_TOKEN:
aud: "https://gitlab.jsc.fz-juelich.de"
stage: test
script:
- echo "Run A43 unit tests..."
- module --force purge && module load Stages/2023 GCC/11.3.0 ParaStationMPI/5.8.0-1-mt imkl-FFTW/2022.1.0 CMake
- module --force purge && module load Stages/2022 GCC/11.2.0 ParaStationMPI/5.5.0-1 imkl/2021.4.0 CMake CUDA/11.5
- export MKL_ROOT=/p/software/jusuf/stages/2022/software/imkl/2021.4.0/mkl/latest
- pwd
- ls ~/a43/lib64 ~/a43/bin
- cd test
- mkdir -p pot # directory for the Zeff.00Z files
- rm -f atoms.xyz
- echo "1" > atoms.xyz
- echo "#cell 2.277 2.277 2.277 p p p" >> atoms.xyz
- echo "Cu 0 0 0" >> atoms.xyz
- ls -lrt atoms.xyz
- echo "# 16 x 16 x 16" > vtot.dat
- ls -lrt vtot.dat
- cp Hmt_vacuum_8x8x8.xml Hmt.xml
- ls -lrt Hmt.xml
- ~/a43/bin/a43 --test
- cd ..
- echo "A43 unit tests done."
tags:
- jacamar
- jusuf
- login
- shell
run_on_JUSUF:
id_tokens:
SITE_ID_TOKEN:
aud: "https://gitlab.jsc.fz-juelich.de"
stage: run
script:
- echo "Run green unit tests..."
- module --force purge && module load Stages/2023 GCC/11.3.0 ParaStationMPI/5.8.0-1-mt imkl-FFTW/2022.1.0 CMake
- module --force purge && module load Stages/2022 GCC/11.2.0 ParaStationMPI/5.5.0-1 imkl/2021.4.0 CMake CUDA/11.5
- export MKL_ROOT=/p/software/jusuf/stages/2022/software/imkl/2021.4.0/mkl/latest
- pwd
- ls ~/a43/lib64 ~/a43/bin
- ~/a43/bin/green --test
- echo "green unit tests done."
tags:
- jacamar
- jusuf
- login # ToDo Run other tests on backend --> change to compute
- shell # ToDo Run other tests on backend --> change to slurm