Checks HDF5 build features (cmake) #219
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: linux | |
on: | |
pull_request: | |
branches: [ develop ] | |
push: | |
branches: [ develop ] | |
paths-ignore: | |
- '**.md' | |
- '**.txt' | |
- 'docs/**' | |
# Allows to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
vol-async-hdf5-latest-Makefile: | |
runs-on: ubuntu-latest | |
timeout-minutes: 60 | |
steps: | |
- name: Checkout submodule Argobots | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- name: Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libtool libopenmpi-dev zlib1g-dev python3 | |
- name: Installation | |
run: | | |
mydir="$PWD" | |
export HDF5_DIR=$mydir/hdf5/install | |
export ABT_DIR=$mydir/argobots | |
export VOL_DIR=$mydir | |
# Download and Compile latest release of HDF5 | |
wget https://github.com/HDFGroup/hdf5/releases/latest/download/hdf5.tar.gz | |
tar xzf hdf5.tar.gz | |
ln -sf hdf5-* hdf5 | |
mkdir $HDF5_DIR | |
cd hdf5 | |
export HDF5_LIBTOOL=/usr/bin/libtoolize | |
./autogen.sh | |
./configure --prefix=$HDF5_DIR --enable-parallel --enable-threadsafe --enable-unsupported \ | |
--disable-tests --disable-hl --disable-fortran --disable-tools | |
make && make install | |
# Compile Argobots | |
cd $ABT_DIR | |
./autogen.sh | |
./configure --prefix=$ABT_DIR | |
make && make install | |
# Compile Asynchronous VOL connector | |
cd $VOL_DIR/src | |
tail -n 48 Makefile.summit > Makefile | |
make | |
- name: Compile and Test Vol-Async | |
run: | | |
# Compile vol-async tests | |
mydir="$PWD" | |
cd $mydir | |
cd test | |
# Set Environmental Variables | |
export H5_DIR=$mydir/hdf5 | |
export VOL_DIR=$mydir/ | |
export ABT_DIR=$mydir/argobots | |
export ASYNC_DIR=$mydir/src | |
export HDF5_DIR=$mydir/hdf5/install | |
export LD_LIBRARY_PATH=$VOL_DIR/src:$H5_DIR/install/lib:$ABT_DIR/lib:$LD_LIBRARY_PATH | |
export HDF5_PLUGIN_PATH="$VOL_DIR/src" | |
export HDF5_VOL_CONNECTOR="async under_vol=0;under_info={}" | |
# Makefile | |
tail -n 47 Makefile.summit > Makefile | |
export LD_PRELOAD=$mydir/argobots/lib/libabt.so | |
make | |
date | |
# Run serial and parallel tests | |
make check | |
date | |
# Test with async VOL double buffering | |
cd ../src | |
sed -i "s/CFLAGS =/CFLAGS = -DENABLE_WRITE_MEMCPY=1 /g" ./Makefile | |
cat Makefile | |
make clean | |
make | |
cd ../test | |
date | |
make clean | |
make | |
make check | |
date | |
vol-async-hdf5-develop-Makefile: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout submodule Argobots | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- name: Checkout HDF5 latest | |
uses: actions/checkout@v3 | |
with: | |
repository: HDFGroup/hdf5 | |
path: hdf5 | |
- name: Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libtool libopenmpi-dev zlib1g-dev python3 | |
- name: Installation | |
run: | | |
mydir="$PWD" | |
export HDF5_DIR=$mydir/hdf5/install | |
export ABT_DIR=$mydir/argobots | |
export VOL_DIR=$mydir | |
mkdir $HDF5_DIR | |
# Compile HDF5 | |
cd hdf5 | |
export HDF5_LIBTOOL=/usr/bin/libtoolize | |
./autogen.sh | |
./configure --prefix=$HDF5_DIR --enable-parallel --enable-threadsafe --enable-unsupported \ | |
--disable-tests --disable-hl --disable-fortran --disable-tools | |
make && make install | |
# Compile Argobots | |
cd $ABT_DIR | |
./autogen.sh | |
./configure --prefix=$ABT_DIR | |
make && make install | |
# Compile Asynchronous VOL connector | |
cd $VOL_DIR/src | |
tail -n 48 Makefile.summit > Makefile | |
make | |
- name: Compile and Test Vol-Async | |
run: | | |
# Compile vol-async tests | |
mydir="$PWD" | |
cd $mydir | |
cd test | |
# Set Environmental Variables | |
export H5_DIR=$mydir/hdf5 | |
export VOL_DIR=$mydir/ | |
export ABT_DIR=$mydir/argobots | |
export ASYNC_DIR=$mydir/src | |
export HDF5_DIR=$mydir/hdf5/install | |
export LD_LIBRARY_PATH=$VOL_DIR/src:$H5_DIR/install/lib:$ABT_DIR/lib:$LD_LIBRARY_PATH | |
export HDF5_PLUGIN_PATH="$VOL_DIR/src" | |
export HDF5_VOL_CONNECTOR="async under_vol=0;under_info={}" | |
# Makefile | |
tail -n 47 Makefile.summit > Makefile | |
export LD_PRELOAD=$mydir/argobots/lib/libabt.so | |
make | |
date | |
# Run serial and parallel tests | |
make check | |
date | |
# Test with async VOL double buffering | |
cd ../src | |
sed -i "s/CFLAGS =/CFLAGS = -DENABLE_WRITE_MEMCPY=1 /g" ./Makefile | |
cat Makefile | |
make clean | |
make | |
cd ../test | |
date | |
make clean | |
make | |
make check | |
date | |
vol-async-hdf5-1_14_3-cmake: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout submodule Argobots | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- name: Checkout HDF5 1.14.3 | |
uses: actions/checkout@v3 | |
with: | |
repository: HDFGroup/hdf5 | |
ref: hdf5-1_14_3 | |
path: hdf5 | |
- name: Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libtool libopenmpi-dev zlib1g-dev python3 cmake | |
- name: Installation | |
run: | | |
mydir="$PWD" | |
export HDF5_DIR=$mydir/hdf5/install | |
export ABT_DIR=$mydir/argobots | |
export VOL_DIR=$mydir/vol-async/install | |
mkdir $HDF5_DIR | |
# Compile HDF5 | |
cd hdf5 | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$HDF5_DIR -DHDF5_ENABLE_PARALLEL=ON -DHDF5_ENABLE_THREADSAFE=ON \ | |
-DALLOW_UNSUPPORTED=ON -DBUILD_TESTING=OFF -DHDF5_BUILD_HL_LIB=OFF -DHDF5_BUILD_HL_TOOLS=OFF \ | |
-DHDF5_BUILD_EXAMPLES=OFF -DHDF5_BUILD_FORTRAN=OFF -DCMAKE_C_COMPILER=mpicc .. | |
make -j && make install | |
# Compile Argobots | |
cd $ABT_DIR | |
./autogen.sh | |
./configure --prefix=$ABT_DIR | |
make && make install | |
# Compile Asynchronous VOL connector | |
pwd | |
cd ../ | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$VOL_DIR -DCMAKE_C_COMPILER=mpicc .. | |
make && make install | |
- name: Compile and Test Vol-Async | |
run: | | |
# Compile vol-async tests | |
mydir="$PWD" | |
echo $PWD | |
cd build | |
# Set Environmental Variables | |
export VOL_DIR=$mydir/vol-async/install | |
export ABT_DIR=$mydir/argobots | |
export HDF5_DIR=$mydir/hdf5/install | |
export LD_LIBRARY_PATH=$VOL_DIR/lib:$HDF5_DIR/install/lib:$ABT_DIR/lib:$LD_LIBRARY_PATH | |
export HDF5_PLUGIN_PATH="$VOL_DIR/lib" | |
export HDF5_VOL_CONNECTOR="async under_vol=0;under_info={}" | |
export LD_PRELOAD=$mydir/argobots/lib/libabt.so | |
# Run serial and parallel tests | |
date | |
ctest -V | |
date | |
# Test with async VOL write memcopy (double buffering) | |
cmake -DCMAKE_INSTALL_PREFIX=$VOL_DIR -DCMAKE_C_COMPILER=mpicc -DENABLE_WRITE_MEMCPY=ON .. | |
make clean | |
make && make install | |
date | |
ctest -V | |
date | |
vol-async-hdf5-develop-cmake: | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
steps: | |
- name: Checkout submodule Argobots | |
uses: actions/checkout@v3 | |
with: | |
submodules: 'true' | |
- name: Checkout HDF5 latest | |
uses: actions/checkout@v3 | |
with: | |
repository: HDFGroup/hdf5 | |
path: hdf5 | |
- name: Dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install libtool libopenmpi-dev zlib1g-dev python3 cmake | |
- name: Installation | |
run: | | |
mydir="$PWD" | |
export HDF5_DIR=$mydir/hdf5/install | |
export ABT_DIR=$mydir/argobots | |
export VOL_DIR=$mydir/vol-async/install | |
mkdir $HDF5_DIR | |
# Compile HDF5 | |
cd hdf5 | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$HDF5_DIR -DHDF5_ENABLE_PARALLEL=ON -DHDF5_ENABLE_THREADSAFE=ON \ | |
-DALLOW_UNSUPPORTED=ON -DBUILD_TESTING=OFF -DHDF5_BUILD_HL_LIB=OFF -DHDF5_BUILD_HL_TOOLS=OFF \ | |
-DHDF5_BUILD_EXAMPLES=OFF -DHDF5_BUILD_FORTRAN=OFF -DCMAKE_C_COMPILER=mpicc .. | |
make -j && make install | |
# Compile Argobots | |
cd $ABT_DIR | |
./autogen.sh | |
./configure --prefix=$ABT_DIR | |
make && make install | |
# Compile Asynchronous VOL connector | |
pwd | |
cd ../ | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=$VOL_DIR -DCMAKE_C_COMPILER=mpicc .. | |
make && make install | |
- name: Compile and Test Vol-Async | |
run: | | |
# Compile vol-async tests | |
mydir="$PWD" | |
echo $PWD | |
cd build | |
# Set Environmental Variables | |
export VOL_DIR=$mydir/vol-async/install | |
export ABT_DIR=$mydir/argobots | |
export HDF5_DIR=$mydir/hdf5/install | |
export LD_LIBRARY_PATH=$VOL_DIR/lib:$HDF5_DIR/install/lib:$ABT_DIR/lib:$LD_LIBRARY_PATH | |
export HDF5_PLUGIN_PATH="$VOL_DIR/lib" | |
export HDF5_VOL_CONNECTOR="async under_vol=0;under_info={}" | |
export LD_PRELOAD=$mydir/argobots/lib/libabt.so | |
# Run serial and parallel tests | |
date | |
ctest -V | |
date | |
# Test with async VOL write memcopy (double buffering) | |
cmake -DCMAKE_INSTALL_PREFIX=$VOL_DIR -DCMAKE_C_COMPILER=mpicc -DENABLE_WRITE_MEMCPY=ON .. | |
make clean | |
make && make install | |
date | |
ctest -V | |
date | |
- name: Setup tmate session | |
if: ${{ failure() }} | |
uses: mxschmitt/action-tmate@v3 |