Enhance subfiling environment checking and update usage notes#654
Conversation
jbigot
left a comment
There was a problem hiding this comment.
Looks great.
Side question, but do you check the level of thread support with MPI_Query_thread to give the user a clean error if the required level is not available.
OK. The |
|
I feel in general, going on when the user request can not be fulfilled is indeed less "user friendly" in the short run. But in the long run, if you launch lots of simulations, they behave differently on different machines, you don't understand why, and you have to dig in the log to understand, it can be dangerous. I would be in favor of sending an error by default (errors can be ignored BTW) and maybe adding an additional option in the yaml. Something like |
Sure! You have a point. We shall not waste computing hours without generating the desired output. Let me patch it! |
|
The shorthand configuration: subfiling:2is not tested in the CI. Is it a choice? |
Well, I think I can add a test for the short version. |
benoitmartin88
left a comment
There was a problem hiding this comment.
I just have a little question concerning the expected result if subfiling_stripe_count is <0
jbigot
left a comment
There was a problem hiding this comment.
I believe this is nearly done, just a few minor comments
|
@jbigot @benoitmartin88 PR is ready for the final review. Thanks |
3339dab to
98c19f9
Compare
|
PR rebased. one more review to go! @benoitmartin88 @jbigot |
* Datasets as regex (pdidev#583) * First version with regex * fix pdidev#582, update authors README and indent * update changelog * adding class for test * fix indent * fix indent * fix spdlog * adding test in parallel * fix error on file * Update plugins/decl_hdf5/README.md Co-authored-by: Benoit Martin <benoitmartin88.pro@gmail.com> * Update plugins/decl_hdf5/README.md Co-authored-by: Benoit Martin <benoitmartin88.pro@gmail.com> * fix pdidev#582, fix request change --------- Co-authored-by: Benoit Martin <benoitmartin88.pro@gmail.com> * Add macOS CI (pdidev#576) * Add macOS CI * Remove chunking check on a non-chunked dataset * Use MPI oversubscription * Disable unqualified std cast call * Use float type instead of integer * Use storage instead of computation * Disable zsh test * use `H5Pget_layout` to check if dataset is chunked * remove warning : cast hsize_t to int before `printf` * Re-enable zsh test with a new env.bash path * add call to `build_and_run_all_tests` and add workaround for macos * add netcdf * initialize CMAKE_FLAGS * disable PYTHON for macos * install hdf5-mpi on macos 14 and 15 * build hdf5 from source + add -j4 * Update copyright headers * Update AUTHORS * Update CHANGELOG.md fixes pdidev#556, fixes pdidev#565, fixes pdidev#587, fixes pdidev#588 --------- Co-authored-by: Julien Bigot <jbigot@users.noreply.github.com> Co-authored-by: yushan wang <yushan.wang@cea.fr> Co-authored-by: Benoit Martin <bmartin@cea.fr> Co-authored-by: Julien Bigot <julien.bigot@cea.fr> * Fix libyaml cmake policy version (pdidev#594) * add CMAKE_POLICY_VERSION_MINIMUM to 3.5 when building libyaml * fix pdidev#593 * update changelog and add comment * Fix github action (CI) access issue of tests.xml (pdidev#584) * Fix github action (CI) access issue of tests.xml * Fix pdidev#585 github action (CI) access issue of tests.xml, and go through PR checklist * Fix pdidev#585 github action (CI) access issue of tests.xml, using an other folder 'tmp_dir_test' containing the tests output, rather than docker's tmpfs * Update AUTHORS --------- Co-authored-by: Benoit Martin <bmartin@cea.fr> * Add CODEOWNERS (pdidev#591) * Add CODEOWNERS --------- Co-authored-by: Benoit Martin <bmartin@cea.fr> Co-authored-by: yushan wang <yushan.wang@cea.fr> * Check of the HDF5 API version to use in error handler (pdidev#600) * Ensuring the use of a compatible HDF5 API versions during errors handling Fix pdidev#567 --------- Co-authored-by: Anida Khizar <anida.khizar@cea.fr> Co-authored-by: Julien Bigot <julien.bigot@cea.fr> Co-authored-by: yushan wang <yushan.wang@cea.fr> * 592 improvement hdf5 dataset as regex (pdidev#597) * fix#592, comment about dataset as regex * Fix pdidev#592, reduce the interior loop * fix copyright * add fmt/range * fix indent * sort name of dataset in case of multiple regex found * fix indent * Fix pdidev#592, dsets as vector, introduce struct for explicit dataset * change Dataset_explicit_type to class * Apply suggestion from @jbigot * Update plugins/decl_hdf5/dataset_explicit_type.h * Update plugins/decl_hdf5/dataset_explicit_type.h * Update plugins/decl_hdf5/dataset_explicit_type.h * Update plugins/decl_hdf5/dataset_explicit_type.h * add std:optional and remove unnecessary comment --------- Co-authored-by: Julien Bigot <jbigot@users.noreply.github.com> * Add workflow_dispatch in pages * Fix pdidev#598, add workflow_dispatch in pages * fix in PC parser * fix in PC parser * add test for catching possible error * catch config error in google test * Use GTest's 'ASSERT_NO_FATAL_FAILURE' to catch a write failure Co-authored-by: Julien Bigot <jbigot@users.noreply.github.com> * code cleaning * Using PDI_NULL_Handler for error catching. Co-authored-by: Benoit Martin <bmartin@cea.fr> * add rwx right to tmp_dir_test --------- Co-authored-by: Julien Bigot <jbigot@users.noreply.github.com> Co-authored-by: Benoit Martin <benoitmartin88.pro@gmail.com> * PDI Release 1.9.3 Update the embedded versions of paraconf, pybind11 & zpp to fix a build issue with recent cmake. (pdidev#632) Sort Doxyfile for easier update Update to be compatible with latest Doxygen (pdidev#629) * Make all pages subpages of the About page * Remove the hand-crafted module page and use the generated topics page instead * Update the layout file * Add missing options in the Doxyfile * Set MARKDOWN_STRICT=NO to prevent backquote errors * Set PAGE_OUTLINE_PANEL=NO to prevent generation of a useless index * Minor CSS update to handle the additional level in the generated HTML * Fix two minor doc bugs Fix pdidev#631 Fix pdidev#629 * Cleanup changelogs before release * Fix HDF5 compression test for MacOS 26 Fix pdidev#627 Co-authored-by: Julian Auriac <julian.auriac@cea.fr> * Indent * Remove Deisa plugin (pdidev#639) * Update the version of dependencies Update the version of dependencies according to our policy: oldest supported Debian, Fedora & Ubuntu, as well as spack 0.19. The new requirements are: CMake 3.22, Doxygen 1.9.1, HDF5 1.10.7, mpi4py 3.1.3, NetCDF 4.8.1, numpy 1.21.5, pyyaml 5.4.1 pybind11 2.9.1, Python 3.10.6, spdlog 1.9.2 * Rely on standard Find* from cmake as much as possible * Add policy(PUSH) in cmake to prevent leaks * Include FindHDF5 from CMake 4.1 and backport it to 3.22 to use its fix for HL Fix pdidev#613 * Fix default CMAKE_BUILD_TYPE value (pdidev#619) * Fix default CMAKE_BUILD_TYPE value * Mock PDI Fix pdidev#438 Co-authored-by: Julian Auriac <julian.auriac@cea.fr> Co-authored-by: Benoit Martin <benoit.martin2@cea.fr> * Update dependencies on googletest & benchmark * PDI Release 1.10.0 * Changelog minor fix * Adding missing LICENSE files and fix some minor indent * Support multiple consecutive calls to `find_package(PDI)` Fix pdidev#526 Co-authored-by: Benoit Martin <benoit.martin2@cea.fr> * add-compression-in-decl_netcdf (pdidev#604) Add deflate and chunking to Decl'NetCDF * Enable hdf5 subfiling2 (pdidev#650) enable HDF5 subfiling support, add test. note: to set the subfiling stripe size (64Mo for example), use `export H5FD_SUBFILING_STRIPE_SIZE= 67108864`. * add type check for reading data from netCDF file (pdidev#646) * add type and sign check for integer read * add size check for float and double variable read * Disable unit tests for JSON dependency (pdidev#651) * Update versions of the langagues standard we use (pdidev#659) Update the versions of the languages standard we use * We require versions of compilers that support more recent versions of the standard already. This is not a user facing change. * Fix for C++ 20 - some incorrect use of fmt:: are only detected now with the use of C++ 20 - C++ 20 introduced mirror operator == that lead to some abiguous calls - Bump embedded spdlog to 1.15 because 1.14 had issues with C++ 20 Fix pdidev#660 * fix pybind11 on macos (pdidev#655) * fix pybind11 linking error on macos and enable Python based plugins for macOS CI * enable netcdf in macos CI (pdidev#667) * enable netcdf in macos CI * Update clang-format to version 18 (pdidev#673) Match the version in test_env:v4 * Renamed some error codes and deprecated the old ones (pdidev#671) Fix pdidev#670 * Finish moving to clang-format 18 * Fully qualify `std::move` calls (pdidev#676) Prevent a compilation warning and incorrect usages Fix pdidev#675 Co-authored-by: yushan wang <yushan.wang@cea.fr> * Enhance subfiling environment checking and update usage notes (pdidev#654) * Enhance README with subfiling usage notes Added important notes for using subfiling correctly. * add MPI thread level check * update readme * fix * fix * update test for subfiling counting * add subfiling stripe size in test * make subfiling_stripe_size configurable in yaml * update readme * make subfiling a new class and add stripe size configuration * update readme * indent * Add subfiling.cxx to decl_hdf5 plugin sources * update upon review notes * enable subfiling check test only if supported * remove subfiling check count test * pass subfiling test from c to cxx * indent * update readme [skip ci] * remove unnecessary headers fropm test * add header in test * throw an error if stripe_size is negative * fix indent [skip ci] * use warning when stripe_size is 0 * Replace Config_error with Spectree_error * Move Spectree_error usage to a consistent location * Improved testing framework (pdidev#669) * Added `pdi/testing.h` that should be used t test plugins. * Ported `plugins/decl_hdf5/tests/decl_hdf5_tests.cxx` as an example. * Fixed a minor bug discovered along the way in Decl'HDF5 Fix pdidev#668 * Do some tests in sequential to not use all CI if everything fails (pdidev#674) * Do some tests in sequential to not use all CI if everything fails * Do not run benchmarks by default Fix pdidev#679 * Fix a bug that was introduced in mock PDI with the (unreleased) move to C++ 20 mock PDI now relies on C++ 20 features when compiling in C++ but did not advertize it * Fix target_compile_features syntax for PDI_C --------- Co-authored-by: jmorice91 <jacques.morice@cea.fr> Co-authored-by: Benoit Martin <benoitmartin88.pro@gmail.com> Co-authored-by: Thomas Padioleau <thomas.padioleau@cea.fr> Co-authored-by: Julien Bigot <jbigot@users.noreply.github.com> Co-authored-by: Benoit Martin <bmartin@cea.fr> Co-authored-by: Julien Bigot <julien.bigot@cea.fr> Co-authored-by: JAuriac <56091659+JAuriac@users.noreply.github.com> Co-authored-by: AnidaKhizar <anida-khizar@hotmail.fr> Co-authored-by: Anida Khizar <anida.khizar@cea.fr> Co-authored-by: Julian Auriac <julian.auriac@cea.fr> Co-authored-by: Benoit Martin <benoit.martin2@cea.fr>
Added important notes for using subfiling correctly.
List of things to check before making a PR
Before merging your code, please check the following:
.clang-format;Fix #issuekeyword to autoclose the issue when merged.