Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
sbyna authored Jul 28, 2021
2 parents f6ea1a7 + bb60cd5 commit 5acd327
Show file tree
Hide file tree
Showing 28 changed files with 3,124 additions and 2,381 deletions.
58 changes: 58 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
Language: Cpp
BasedOnStyle: LLVM
AlignConsecutiveAssignments: true
#llvm11: AlignConsecutiveBitFields: false
AlignConsecutiveDeclarations: true
AlignConsecutiveMacros: true
#llvm10-11: AlignOperands: true - Align
#llvm11: AllowShortEnumsOnASingleLine: true
AllowShortFunctionsOnASingleLine: None
AlwaysBreakAfterReturnType: AllDefinitions
BraceWrapping:
AfterFunction: true
#llvm10-11: AfterControlStatement: false - Never
BeforeCatch: true
BeforeElse: true
#llvm11: BeforeLambdaBody: false
#llvm11: BeforeWhile: false
BreakBeforeBraces: Stroustrup
BreakAfterJavaFieldAnnotations: true
BreakStringLiterals: true
ColumnLimit: 110 # Update $max_trace_macro_line_len in bin/trace also
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 3
SortPriority: 0
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 4
SortPriority: 0
- Regex: '.*'
Priority: 0
SortPriority: 0
- Regex: '^PDC*.*'
Priority: 1
SortPriority: 0
- Regex: 'private.*'
Priority: 2
SortPriority: 0
IncludeIsMainRegex: '(public)?$'
IndentCaseLabels: true
#llvm11: IndentCaseBlocks: false
IndentGotoLabels: false
#llvm11: IndentExternBlock: AfterExternBlock
IndentWidth: 4
#llvm11: InsertTrailingCommas: None
# MacroBlockBegin: "^BEGIN_FUNC"
# MacroBlockEnd: "^END_FUNC"
ObjCBlockIndentWidth: 4
#llvm11: ObjCBreakBeforeNestedBlockParam: true
ReflowComments: true
SortIncludes: false
StatementMacros:
#llvm10: TypenameMacros:
#llvm10: - STACK_OF
#llvm10: - LIST
#llvm11: WhitespaceSensitiveMacros:
#llvm11: - STRINGIZE
#llvm11: - PP_STRINGIZE
18 changes: 18 additions & 0 deletions .github/workflows/clang-format-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: clang-format Check
on:
pull_request:
jobs:
formatting-check:
name: Formatting Check
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'skip-ci')"
steps:
- uses: actions/checkout@v2
- name: Run clang-format style check for C programs.
uses: DoozyX/clang-format-lint-action@v0.11
with:
source: '.'
extensions: 'c,h,cpp,hpp'
clangFormatVersion: 10
style: file
# exclude: './config'
25 changes: 25 additions & 0 deletions .github/workflows/clang-format-fix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: clang-format Check
on:
workflow_dispatch:
push:
jobs:
formatting-check:
name: Formatting Check
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'skip-ci')"
steps:
- uses: actions/checkout@v2
- name: Run clang-format style check for C programs.
uses: DoozyX/clang-format-lint-action@v0.11
with:
source: '.'
extensions: 'c,h,cpp,hpp'
clangFormatVersion: 10
inplace: True
style: file
# exclude: './config '
- uses: EndBug/add-and-commit@v7
with:
author_name: github-actions
author_email: github-actions[bot]@users.noreply.github.com
message: 'Committing clang-format changes'
125 changes: 125 additions & 0 deletions .github/workflows/linux.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: linux

on:
pull_request:
branches: [ master ]

# Allows to run this workflow manually from the Actions tab
workflow_dispatch:

jobs:
h5bench:
runs-on: ubuntu-latest
timeout-minutes: 60

steps:
- uses: actions/checkout@v2

- name: Dependencies
run: |
sudo apt-get update
sudo apt-get install cmake
sudo apt install gcc
sudo apt-get install libtool
sudo apt-get install zlib1g-dev
sudo apt-get install python3
sudo apt-get install libopenmpi-dev
sudo apt-get install libhdf5-mpi-dev
# hdf5
git clone https://github.com/HDFGroup/hdf5.git
# vol-async
git clone --recursive https://github.com/hpc-io/vol-async.git
- name: Install VOL-Async
run: |
mydir="$PWD"
export HDF5_DIR=$mydir/hdf5/install
export ABT_DIR=$mydir/vol-async/argobots
export VOL_DIR=$mydir/vol-async
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
make && make install
# Compile Argobots
cd $ABT_DIR
./autogen.sh
./configure --prefix=$ABT_DIR
make && make install
# Compile Asynchronous VOL connector
cd $VOL_DIR
cd src
tail -n 48 Makefile.summit > Makefile
make
- name: Compile and Test VOL-Async
run: |
# Compile vol-async tests
mydir="$PWD"
cd $mydir/vol-async/test
# Set Environmental Variables
export H5_DIR=$mydir/hdf5
export VOL_DIR=$mydir/vol-async
export ABT_DIR=$mydir/vol-async/argobots
export ASYNC_DIR=$mydir/vol-async/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=$ABT_DIR/lib/libabt.so
make
# Run serial and parallel tests
make check
# Run serial tests only
make check_serial
- name: Build h5bench SYNC
run: |
mkdir build_sync
cd build_sync
cmake .. -DCMAKE_C_COMPILER=/usr/bin/h5pcc
make
- name: Build h5bench ASYNC
run: |
mydir="$PWD"
mkdir build_async
cd build_async
cmake .. -DWITH_ASYNC_VOL:BOOL=ON -DCMAKE_C_FLAGS="-I/$mydir/vol-async/src -L/$mydir/vol-async/src" -DCMAKE_C_COMPILER=$mydir/hdf5/install/bin/h5pcc
make
- name: Test h5bench SYNC Read & Write (NON)
run: |
cd build_sync
./h5bench_write /home/runner/work/h5bench/h5bench/h5bench_patterns/sample_config/sample_write_cc1d_small.cfg testwrite.h5
./h5bench_read /home/runner/work/h5bench/h5bench/h5bench_patterns/sample_config/sample_read_cc1d_small.cfg testwrite.h5
- name: Test h5bench ASYNC Read & Write (NON)
run: |
cd build_async
./h5bench_write /home/runner/work/h5bench/h5bench/h5bench_patterns/sample_config/sample_write_cc1d_small.cfg testwrite.h5
./h5bench_read /home/runner/work/h5bench/h5bench/h5bench_patterns/sample_config/sample_read_cc1d_small.cfg testwrite.h5
- name: Test h5bench ASYNC Read & Write (IMP)
run: |
cd build_async
./h5bench_write /home/runner/work/h5bench/h5bench/h5bench_patterns/sample_config/sample_write_cc1d_small_IMP.cfg testwrite_IMP.h5
./h5bench_read /home/runner/work/h5bench/h5bench/h5bench_patterns/sample_config/sample_read_cc1d_small_IMP.cfg testwrite_IMP.h5
- name: Test h5bench ASYNC Read & Write (EXP)
run: |
cd build_async
./h5bench_write /home/runner/work/h5bench/h5bench/h5bench_patterns/sample_config/sample_write_cc1d_small_EXP.cfg testwrite_EXP.h5
./h5bench_read /home/runner/work/h5bench/h5bench/h5bench_patterns/sample_config/sample_read_cc1d_small_EXP.cfg testwrite_EXP.h5
45 changes: 45 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
variables:
HDF5_DIR: "/global/cfs/cdirs/m2621/h5bench/hdf5/install"
H5BENCH_BUILD_PATH: "${CI_PROJECT_DIR}/build"
H5BENCH_INSTALL_PATH: "${CI_PROJECT_DIR}/install"

stages:
- build
- test

build:
stage: build
tags:
- cori
variables:
SCHEDULER_PARAMETERS: "-C haswell --qos=debug -N 1 -t 00:30:00 --gres=craynetwork:3"
script:
- echo "Build h5bench"
- module swap PrgEnv-intel PrgEnv-gnu
- module list
- mkdir ${H5BENCH_BUILD_PATH}
- cd ${H5BENCH_BUILD_PATH}
- cmake .. -DCMAKE_C_COMPILER=$HDF5_DIR/bin/h5pcc -DCMAKE_CXX_COMPILER=$HDF5_DIR/bin/h5pcc -DCMAKE_INSTALL_PREFIX=${H5BENCH_INSTALL_PATH}
- make
- make install
artifacts:
paths:
- ${H5BENCH_BUILD_PATH}
- ${H5BENCH_INSTALL_PATH}

test:
stage: test
tags:
- cori
variables:
SCHEDULER_PARAMETERS: "-C haswell --qos=debug -N 1 -t 00:30:00 --gres=craynetwork:3"
script:
- echo "Test h5bench SYNC"
- cd ${H5BENCH_BUILD_PATH}
- export LD_LIBRARY_PATH=$HDF5_DIR/lib:$LD_LIBRARY_PATH
- export MPICH_MAX_THREAD_SAFETY=multiple
- echo "Test h5bench SYNC write"
- srun -n 2 ./h5bench_write ../h5bench_patterns/sample_config/sample_write_cc1d_small.cfg file.h5
- echo "Test h5bench SYNC read"
- srun -n 2 ./h5bench_read ../h5bench_patterns/sample_config/sample_read_cc1d_small.cfg file.h5
- ls -larth file.h5
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ message("Detected hdf5 version: ${HDF5_VERSION}")
include_directories(${HDF5_HOME}/include)
link_directories(${HDF5_HOME}/lib)

#Dependency: Async
# Dependency: VOL Async
set(ASYNC_HOME $ENV{ASYNC_HOME})
option(WITH_ASYNC_VOL "" OFF)
if(WITH_ASYNC_VOL)
Expand Down
Loading

0 comments on commit 5acd327

Please sign in to comment.