-
Notifications
You must be signed in to change notification settings - Fork 27
159 lines (118 loc) · 3.94 KB
/
h5bench-hdf5-develop-test.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
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
name: h5bench (HDF5 develop test)
on:
pull_request:
workflow_dispatch:
jobs:
h5bench:
runs-on: ubuntu-22.04
timeout-minutes: 60
env:
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1
OMPI_MCA_rmaps_base_oversubscribe: "yes"
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Dependencies
run: |
sudo apt-get update
sudo apt-get install cmake gcc gdb libtool zlib1g-dev python3 libopenmpi-dev -y
# HDF5
git clone https://github.com/HDFGroup/hdf5.git
# VOL-ASYNC
git clone --recursive https://github.com/hpc-io/vol-async.git --branch v1.7 /opt/vol-async
python3 -m pip install pytest
- name: Build HDF5 develop
run: |
export HDF5_DIR=/opt/hdf5
export HDF5_LIBTOOL=/usr/bin/libtoolize
mkdir $HDF5_DIR
cd hdf5
./autogen.sh
./configure --prefix=$HDF5_DIR --enable-parallel --enable-threadsafe --enable-unsupported
make -j 2
make install
- name: Build Argobots
run: |
export ABT_DIR=/opt/argobots
cd /opt/vol-async/argobots
./autogen.sh
./configure --prefix=$ABT_DIR
make -j 2
make install
- name: Build VOL-ASYNC
run: |
export HDF5_DIR=/opt/hdf5
export ABT_DIR=/opt/argobots
export ASYNC_DIR=/opt/vol-async
cd $ASYNC_DIR
mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=$ASYNC_DIR -DCMAKE_PREFIX_PATH=$HDF5_DIR -DENABLE_WRITE_MEMCPY=ON
make
make install
- name: Test VOL-ASYNC
run: |
export HDF5_DIR=/opt/hdf5
export HDF5_HOME=$HDF5_DIR
export ABT_DIR=/opt/argobots
export ASYNC_DIR=/opt/vol-async
export LD_LIBRARY_PATH=$ASYNC_DIR/lib:$HDF5_DIR/lib:$ABT_DIR/lib:$LD_LIBRARY_PATH
export HDF5_PLUGIN_PATH="$ASYNC_DIR/include"
export HDF5_VOL_CONNECTOR="async under_vol=0;under_info={}"
cd $ASYNC_DIR/build
export LD_PRELOAD=$ASYNC_DIR/lib/libh5async.so:$ABT_DIR/lib/libabt.so:$HDF5_DIR/lib/libhdf5.so
ctest
- name: Build h5bench SYNC
run: |
export HDF5_DIR=/opt/hdf5
export HDF5_HOME=$HDF5_DIR
export LD_LIBRARY_PATH=$HDF5_HOME/lib:$LD_LIBRARY_PATH
mkdir build-sync
cd build-sync
cmake .. \
-DH5BENCH_ALL=ON
make
sudo make install
sudo ldconfig
- name: Build h5bench ASYNC
run: |
export HDF5_HOME=/opt/hdf5
export ABT_HOME=/opt/argobots
export ASYNC_HOME=/opt/vol-async
export LD_LIBRARY_PATH=$ASYNC_HOME/lib:$HDF5_HOME/lib:$ABT_HOME/lib:$LD_LIBRARY_PATH
mkdir build-async
cd build-async
cmake .. \
-DWITH_ASYNC_VOL:BOOL=ON \
-DCMAKE_C_FLAGS="-I$ASYNC_HOME/include -L$ASYNC_HOME/lib" \
-DH5BENCH_ALL=ON
make
sudo make install
sudo ldconfig
- name: Test h5bench SYNC
run: |
export HDF5_DIR=/opt/hdf5
export ABT_DIR=/opt/argobots
export ASYNC_DIR=/opt/vol-async
cd build-sync
ctest --verbose .
- name: Test h5bench ASYNC
run: |
export HDF5_DIR=/opt/hdf5
export ABT_DIR=/opt/argobots
export ASYNC_DIR=/opt/vol-async
export HDF5_ASYNC_MAX_MEM_MB=1024
cd build-async
ctest --verbose .
- name: Setup tmate session
if: ${{ failure() }}
uses: mxschmitt/action-tmate@v3
- name: Upload artifact
if: always()
uses: actions/upload-artifact@v2
with:
name: test
path: build*/storage/**/std*
retention-days: 5