Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compression feature #126

Open
wants to merge 63 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 57 commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
6cdfd84
reinit and reclone the submodules, added compression_filter enum, jso…
Jun 16, 2024
56abacc
Fixed filter unregistered error. SZ compression successfully applied.
skyFzz Jun 18, 2024
b4f4145
Changed H5Z_FLAG_OPTIONAL back to MANDATORY
skyFzz Jun 18, 2024
d81e665
Update .gitignore and remove build directories from tracking. Add shu…
skyFzz Jun 28, 2024
7d40570
Merge remote-tracking branch 'upstream/master' into compression-feature
skyFzz Jun 28, 2024
8282777
add misdeleted 4 lines of code back
skyFzz Jun 28, 2024
e213532
Added output compressed size and compression ratio
skyFzz Jul 15, 2024
fc090f8
Add benchmark parameter--plugin_path and checks to set up HDF5_PLUGIN…
skyFzz Jul 22, 2024
dc0067d
Fix segmentation fault due to usage of strcpy() instead of strdup() f…
skyFzz Jul 22, 2024
07d7293
Add retrieving filter info functionality to read.c. Add output to std…
skyFzz Aug 2, 2024
24b6924
Free filter_info struct, correct csv output format, modify filter_inf…
skyFzz Aug 5, 2024
45036fd
Add a check for invalid operation input from JSON
skyFzz Aug 5, 2024
be8adea
Fix python indentation error. Test h5bench_read with Rank=5 and ASYNC.
skyFzz Aug 5, 2024
5587ba3
Add cd_nelmts and cd_values data structure and parsing as options for…
skyFzz Aug 7, 2024
05a0286
Add output of cd_nelmts and cd_values in Benchmark Configuration
skyFzz Aug 7, 2024
b09c584
Add Snappy-CUDA compression enum to the compression filter set and en…
skyFzz Aug 8, 2024
93c07fc
Fix some error and warnings
skyFzz Aug 8, 2024
389ce32
Add documentation to Read/Write page
skyFzz Aug 9, 2024
c6caa71
Add documentation to a new "Build and Run Plugin" page
skyFzz Aug 9, 2024
053b683
Fix rst syntax error
skyFzz Aug 9, 2024
c65397e
Fix bug to deference cd_values for output. Increase the number of all…
skyFzz Aug 9, 2024
74881be
update CI
jeanbez Aug 12, 2024
59fbabf
Fix multiple definitions error. Update documentation.
skyFzz Aug 12, 2024
2e09379
Skip calling H5Pget_filter() when H5Pget_nfilters() returns 0, indica…
skyFzz Aug 13, 2024
a5a9e5e
fix clang formatter
jeanbez Aug 13, 2024
73b0930
remove
jeanbez Aug 13, 2024
2ad8e79
add stage
jeanbez Aug 13, 2024
6546615
remove trigger
jeanbez Aug 13, 2024
2a81809
committing clang-format changes
github-actions[bot] Aug 13, 2024
4d5385d
update trigger
jeanbez Aug 13, 2024
60b2794
Add docker image for compression libs, CI jobs testing, and sampel js…
skyFzz Aug 15, 2024
70aecb2
Merge branch 'compression-feature' of github.com:skyFzz/h5bench into …
skyFzz Aug 15, 2024
3ae9dd0
Update Dockerfile. Create a new yml just for compression.
skyFzz Aug 15, 2024
9b17ba6
update name
jeanbez Aug 15, 2024
b018002
move file to correct location, use final image name
jeanbez Aug 15, 2024
48508da
fix typo in new samples
jeanbez Aug 15, 2024
c0453cf
update name
jeanbez Aug 15, 2024
451b674
fix path and compile only baseline kernels
jeanbez Aug 15, 2024
f152731
update path according to docker installation
jeanbez Aug 15, 2024
b2a80c4
temporarily continue on error
jeanbez Aug 15, 2024
7c9bc87
temporarily continue on error
jeanbez Aug 15, 2024
da2c912
correct path for CI
jeanbez Aug 15, 2024
0244e3f
reduce test size and include path
jeanbez Aug 22, 2024
1044efc
fix issues
jeanbez Aug 22, 2024
9861e1c
committing clang-format changes
github-actions[bot] Aug 22, 2024
6147b12
update Docker
jeanbez Aug 22, 2024
baa9b14
update action and fix typo
jeanbez Aug 22, 2024
752ac54
remove parameters
jeanbez Aug 22, 2024
bd67248
committing clang-format changes
github-actions[bot] Aug 22, 2024
6668391
remove parameters
jeanbez Aug 22, 2024
ab7b7da
pin SZ3 version to 3.1.8
jeanbez Aug 23, 2024
278ee3c
fix path
jeanbez Aug 23, 2024
ce43d90
update CI
jeanbez Aug 23, 2024
1bad0e8
refine tests
jeanbez Aug 23, 2024
65ac231
bump version
jeanbez Aug 23, 2024
673c928
bump version
jeanbez Aug 23, 2024
e3c54e5
update Ubuntu baseline CI image
jeanbez Aug 23, 2024
762a7cb
Add check to total_compressed_size to avoid divide by 0
skyFzz Aug 23, 2024
08db82e
committing clang-format changes
github-actions[bot] Aug 23, 2024
7f1750e
update CI images
jeanbez Aug 26, 2024
f8df39f
delete deprecated file
jeanbez Aug 26, 2024
b3ce058
remove files
jeanbez Aug 26, 2024
5b048f1
small correction
jeanbez Aug 26, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/clang-format-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ jobs:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'skip-ci')"
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Run clang-format style check for C programs.
uses: DoozyX/[email protected]
with:
Expand Down
16 changes: 9 additions & 7 deletions .github/workflows/clang-format-fix.yml
Original file line number Diff line number Diff line change
@@ -1,25 +1,27 @@
name: clang-format Check
name: clang-format Fix Format
on:
workflow_dispatch:
push:
jobs:
formatting-check:
name: Formatting Check
name: Commit Format Changes
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'skip-ci')"
permissions:
contents: write
steps:
- uses: actions/checkout@v2
- name: Run clang-format style check for C programs.
uses: DoozyX/clang-format-lint-action@v0.11
- uses: actions/checkout@v3
- name: Fix C formatting issues detected by clang-format
uses: DoozyX/clang-format-lint-action@v0.13
with:
source: '.'
extensions: 'c,h,cpp,hpp'
clangFormatVersion: 10
inplace: True
style: file
# exclude: './config '
- uses: EndBug/add-and-commit@v7
- uses: EndBug/add-and-commit@v9
with:
author_name: github-actions
author_email: github-actions[bot]@users.noreply.github.com
message: 'Committing clang-format changes'
message: 'committing clang-format changes'
9 changes: 6 additions & 3 deletions .github/workflows/h5bench-hdf5-1.10.4.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: h5bench (HDF5 1.10.4)

env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

on:
pull_request:

Expand All @@ -13,14 +16,14 @@ jobs:
h5bench:
runs-on: ubuntu-20.04
container:
image: hpcio/hdf5-1.10.4
image: hpcio/hdf5-1.10.4:test
timeout-minutes: 60
env:
OMPI_ALLOW_RUN_AS_ROOT: 1
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
submodules: true

Expand Down Expand Up @@ -223,7 +226,7 @@ jobs:

- name: Upload artifact
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: test
path: build/storage/**/std*
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/h5bench-hdf5-1.10.7.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: h5bench (HDF5 1.10.7)

env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

on:
pull_request:

Expand All @@ -20,7 +23,7 @@ jobs:
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
submodules: true

Expand Down Expand Up @@ -223,7 +226,7 @@ jobs:

- name: Upload artifact
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: test
path: build/h5bench_e3sm-prefix/src/h5bench_e3sm-stamp/*
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/h5bench-hdf5-1.10.8.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
name: h5bench (HDF5 1.10.8)

env:
ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true

on:
pull_request:

Expand All @@ -20,7 +23,7 @@ jobs:
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
submodules: true

Expand Down Expand Up @@ -223,7 +226,7 @@ jobs:

- name: Upload artifact
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: test
path: build/storage/**/std*
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/h5bench-hdf5-1.12.0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v4
with:
submodules: true

Expand Down Expand Up @@ -258,7 +258,7 @@ jobs:

- name: Upload artifact
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: test
path: build/storage/**/std*
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/h5bench-hdf5-1.14.0.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true

Expand Down Expand Up @@ -513,7 +513,7 @@ jobs:

- name: Upload artifact
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: test
path: build*/storage/**/std*
Expand Down
125 changes: 125 additions & 0 deletions .github/workflows/h5bench-hdf5-1.14.1-compress.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,125 @@
name: h5bench (HDF5 1.14.1 + compression)

on:
pull_request:

workflow_dispatch:

jobs:
h5bench:
runs-on: ubuntu-20.04
container:
image: hpcio/hdf5-1.14.1-compression
timeout-minutes: 60

steps:
- uses: actions/checkout@v4
with:
submodules: true

- name: Build h5bench SYNC
run: |
current="$PWD"

export HDF5_HOME=/opt/hdf5

mkdir build-sync
cd build-sync

cmake .. \
-DCMAKE_C_COMPILER=$HDF5_HOME/bin/h5pcc
make

- name: Test h5bench SYNC write/read
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-contig-1d-small.json

- name: Test h5bench SYNC write/read 1D N_BIT filter
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-1d-N_BIT.json

- name: Test h5bench SYNC write/read 1D SZIP filter
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-1d-SZIP.json

- name: Test h5bench SYNC write/read 1D GZIP filter
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-1d-GZIP.json

- name: Test h5bench SYNC write/read 1D SZ3 filter
run: |
export LD_LIBRARY_PATH=/opt/SZ3/lib:$LD_LIBRARY_PATH
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-1d-SZ3.json

- name: Test h5bench SYNC write/read 1D ZFP filter
run: |
export LD_LIBRARY_PATH=/opt/zfp/lib:$LD_LIBRARY_PATH
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-1d-ZFP.json

- name: Test h5bench SYNC write/read 2D N_BIT filter
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-2d-N_BIT.json

- name: Test h5bench SYNC write/read 2D SZIP filter
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-2d-SZIP.json

- name: Test h5bench SYNC write/read 2D GZIP filter
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-2d-GZIP.json

- name: Test h5bench SYNC write/read 2D SZ3 filter
run: |
export LD_LIBRARY_PATH=/opt/SZ3/lib:$LD_LIBRARY_PATH
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-2d-SZ3.json

- name: Test h5bench SYNC write/read 2D ZFP filter
run: |
export LD_LIBRARY_PATH=/opt/zfp/lib:$LD_LIBRARY_PATH
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-2d-ZFP.json

- name: Test h5bench SYNC write/read 3D N_BIT filter
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-3d-N_BIT.json

- name: Test h5bench SYNC write/read 3D SZIP filter
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-3d-SZIP.json

- name: Test h5bench SYNC write/read 3D GZIP filter
run: |
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-3d-GZIP.json

- name: Test h5bench SYNC write/read 3D SZ3 filter
run: |
export LD_LIBRARY_PATH=/opt/SZ3/lib:$LD_LIBRARY_PATH
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-3d-SZ3.json

- name: Test h5bench SYNC write/read 3D ZFP filter
run: |
export LD_LIBRARY_PATH=/opt/zfp/lib:$LD_LIBRARY_PATH
cd build-sync
./h5bench --debug --abort-on-failure --validate-mode ../samples/sync-write-read-chunked-3d-ZFP.json

- name: Upload artifact
if: always()
uses: actions/upload-artifact@v4
with:
name: test
path: build*/storage/**/std*
retention-days: 1
4 changes: 2 additions & 2 deletions .github/workflows/h5bench-hdf5-1.14.1.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ jobs:
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true

Expand Down Expand Up @@ -513,7 +513,7 @@ jobs:

- name: Upload artifact
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: test
path: build*/storage/**/std*
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/h5bench-hdf5-develop-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
OMPI_MCA_rmaps_base_oversubscribe: "yes"

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true

Expand Down Expand Up @@ -131,6 +131,9 @@ jobs:
export ABT_DIR=/opt/argobots
export ASYNC_DIR=/opt/vol-async

export LD_LIBRARY_PATH=/opt/SZ3/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/opt/zfp/lib:$LD_LIBRARY_PATH

cd build-sync

ctest --verbose .
Expand All @@ -152,7 +155,7 @@ jobs:

- name: Upload artifact
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: test
path: build*/storage/**/std*
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/h5bench-hdf5-develop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ jobs:
OMPI_MCA_rmaps_base_oversubscribe: "yes"

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
with:
submodules: true

Expand Down Expand Up @@ -645,7 +645,7 @@ jobs:

- name: Upload artifact
if: always()
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v4
with:
name: test
path: build*/storage/**/std*
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,7 @@ Temporary Items
# iCloud generated files
*.icloud

# Build and installer directories
/build
/installer
# End of https://www.toptal.com/developers/gitignore/api/macos,c++,cmake,linux
8 changes: 4 additions & 4 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
[submodule "amrex"]
path = amrex
url = https://github.com/AMReX-Codes/amrex
url = https://github.com/AMReX-Codes/amrex.git

[submodule "openpmd"]
path = openpmd
url = https://github.com/openPMD/openPMD-api
url = https://github.com/openPMD/openPMD-api.git

[submodule "e3sm"]
path = e3sm
url = https://github.com/Parallel-NetCDF/E3SM-IO
url = https://github.com/Parallel-NetCDF/E3SM-IO.git
[submodule "macsio"]
path = macsio
url = https://github.com/LLNL/MACSio
url = https://github.com/LLNL/MACSio.git
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@ if(H5BENCH_E3SM)
ExternalProject_Add(h5bench_e3sm
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/e3sm
CONFIGURE_COMMAND autoreconf -i COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/e3sm/configure --prefix=${CMAKE_BINARY_DIR} --with-hdf5=${HDF5_HOME}
BUILD_COMMAND make -j 1
BUILD_COMMAND make
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy src/e3sm_io ${CMAKE_BINARY_DIR}/h5bench_e3sm
BUILD_IN_SOURCE 1
LOG_CONFIGURE 1
Expand Down
Loading