Loading .github/workflows/everything.yml +1 −1 Original line number Diff line number Diff line Loading @@ -188,7 +188,7 @@ jobs: - name: Build run: gha/scripts/ci/gh-actions/run.sh build - name: Print ccache statistics run: ccache -s run: ccache -s | tee $GITHUB_STEP_SUMMARY - name: Save cache uses: actions/cache/save@v3 if: ${{ github.ref_name == 'master' && steps.restore-cache.outputs.cache-hit != 'true' }} Loading CMakeLists.txt +16 −4 Original line number Diff line number Diff line Loading @@ -183,7 +183,7 @@ adios_option(Profiling "Enable support for profiling" AUTO) adios_option(Endian_Reverse "Enable support for Little/Big Endian Interoperability" AUTO) adios_option(Sodium "Enable support for Sodium for encryption" AUTO) adios_option(Catalyst "Enable support for in situ visualization plugin using ParaView Catalyst" AUTO) adios_option(Campaign "Enable support for Campaigns (requires SQLite3 and ZLIB)" OFF) adios_option(Campaign "Enable support for Campaigns (requires SQLite3 and ZLIB)" AUTO) adios_option(AWSSDK "Enable support for S3 compatible storage using AWS SDK's S3 module" OFF) adios_option(Derived_Variable "Enable support for derived variables" OFF) adios_option(PIP "Enable support for pip packaging" OFF) Loading Loading @@ -443,9 +443,21 @@ foreach(opt IN LISTS ADIOS2_CONFIG_OPTS) endif() endforeach() if (ADIOS2_HAVE_SST AND (ADIOS2_SST_HAVE_LIBFABRIC OR ADIOS2_SST_HAVE_UCX)) message(" RDMA Transport for Staging: Available") set (HPCDataPlaneList "") if (ADIOS2_HAVE_SST) if (ADIOS2_SST_HAVE_LIBFABRIC) set (HPCDataPlaneList "${HPCDataPlaneList} fabric") endif() if (ADIOS2_SST_HAVE_UCX) set (HPCDataPlaneList "${HPCDataPlaneList} UCX") endif() if (ADIOS2_SST_HAVE_MPI_DP) set (HPCDataPlaneList "${HPCDataPlaneList} MPI") endif() endif() if ({HPCDataPlaneList} STREQUAL "") message(" Possible RDMA DataPlanes for SST: <none>") else() message(" RDMA Transport for Staging: Unconfigured") message(" Possible RDMA DataPlanes for SST: ${HPCDataPlaneList}") endif() bindings/C/adios2/c/adios2_c_io.cpp +37 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,43 @@ adios2_error adios2_set_transport_parameter(adios2_io *io, const size_t transpor } } #ifdef ADIOS2_HAVE_DERIVED_VARIABLE adios2_derived_variable *adios2_define_derived_variable(adios2_io *io, const char *name, const char *expression, const adios2_derived_var_type type) { adios2_derived_variable *variable = nullptr; try { adios2::helper::CheckForNullptr(io, "for adios2_io, in call to adios2_define_variable"); adios2::core::IO &ioCpp = *reinterpret_cast<adios2::core::IO *>(io); adios2::DerivedVarType typeCpp = adios2::DerivedVarType::MetadataOnly; switch (type) { case adios2_derived_var_type_metadata_only: typeCpp = adios2::DerivedVarType::MetadataOnly; break; case adios2_derived_var_type_expression_string: typeCpp = adios2::DerivedVarType::ExpressionString; break; case adios2_derived_var_type_store_data: typeCpp = adios2::DerivedVarType::StoreData; break; } adios2::core::VariableDerived *variableCpp = nullptr; variableCpp = &ioCpp.DefineDerivedVariable(name, expression, typeCpp); variable = reinterpret_cast<adios2_derived_variable *>(variableCpp); } catch (...) { adios2::helper::ExceptionToError("adios2_define_variable"); } return variable; } #endif adios2_variable *adios2_define_variable(adios2_io *io, const char *name, const adios2_type type, const size_t ndims, const size_t *shape, const size_t *start, const size_t *count, Loading bindings/C/adios2/c/adios2_c_io.h +20 −0 Original line number Diff line number Diff line Loading @@ -122,6 +122,26 @@ adios2_variable *adios2_define_variable(adios2_io *io, const char *name, const a const size_t *start, const size_t *count, const adios2_constant_dims constant_dims); #ifdef ADIOS2_HAVE_DERIVED_VARIABLE /** * @brief Define a derived variable within io * @param io handler that owns the variable * @param name unique variable identifier * @param type primitive type from enum adios2_type in adios2_c_types.h * @param ndims number of dimensions * @param shape global dimension * @param start local offset * @param count local dimension * @param constant_dims adios2_constant_dims_true:: shape, start, count * won't change; adios2_constant_dims_false: shape, start, count will change * after definition * @return success: handler, failure: NULL */ adios2_derived_variable *adios2_define_derived_variable(adios2_io *io, const char *name, const char *expression, const adios2_derived_var_type type); #endif /** * @brief Retrieve a variable handler within current io handler * @param io handler to variable io owner Loading bindings/C/adios2/c/adios2_c_types.h +20 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ extern "C" { typedef struct adios2_adios adios2_adios; typedef struct adios2_io adios2_io; typedef struct adios2_variable adios2_variable; typedef struct adios2_derived_variable adios2_derived_variable; typedef struct adios2_attribute adios2_attribute; typedef struct adios2_engine adios2_engine; typedef struct adios2_operator adios2_operator; Loading Loading @@ -139,6 +140,16 @@ typedef enum adios2_arrayordering_auto } adios2_arrayordering; #ifdef ADIOS2_HAVE_DERIVED_VARIABLE /** Type of derived variables */ typedef enum { adios2_derived_var_type_metadata_only = 0, adios2_derived_var_type_expression_string = 1, adios2_derived_var_type_store_data = 2 } adios2_derived_var_type; #endif static const size_t adios2_string_array_element_max_size = 4096; static const size_t adios2_local_value_dim = SIZE_MAX - 2; Loading @@ -159,6 +170,15 @@ union adios2_PrimitiveStdtypeUnion char *str; }; typedef enum { adios2_memory_space_detect = 0, adios2_memory_space_host = 1, #ifdef ADIOS2_HAVE_GPU_SUPPORT adios2_memory_space_gpu = 2, #endif } adios2_memory_space; typedef struct { int WriterID; Loading Loading
.github/workflows/everything.yml +1 −1 Original line number Diff line number Diff line Loading @@ -188,7 +188,7 @@ jobs: - name: Build run: gha/scripts/ci/gh-actions/run.sh build - name: Print ccache statistics run: ccache -s run: ccache -s | tee $GITHUB_STEP_SUMMARY - name: Save cache uses: actions/cache/save@v3 if: ${{ github.ref_name == 'master' && steps.restore-cache.outputs.cache-hit != 'true' }} Loading
CMakeLists.txt +16 −4 Original line number Diff line number Diff line Loading @@ -183,7 +183,7 @@ adios_option(Profiling "Enable support for profiling" AUTO) adios_option(Endian_Reverse "Enable support for Little/Big Endian Interoperability" AUTO) adios_option(Sodium "Enable support for Sodium for encryption" AUTO) adios_option(Catalyst "Enable support for in situ visualization plugin using ParaView Catalyst" AUTO) adios_option(Campaign "Enable support for Campaigns (requires SQLite3 and ZLIB)" OFF) adios_option(Campaign "Enable support for Campaigns (requires SQLite3 and ZLIB)" AUTO) adios_option(AWSSDK "Enable support for S3 compatible storage using AWS SDK's S3 module" OFF) adios_option(Derived_Variable "Enable support for derived variables" OFF) adios_option(PIP "Enable support for pip packaging" OFF) Loading Loading @@ -443,9 +443,21 @@ foreach(opt IN LISTS ADIOS2_CONFIG_OPTS) endif() endforeach() if (ADIOS2_HAVE_SST AND (ADIOS2_SST_HAVE_LIBFABRIC OR ADIOS2_SST_HAVE_UCX)) message(" RDMA Transport for Staging: Available") set (HPCDataPlaneList "") if (ADIOS2_HAVE_SST) if (ADIOS2_SST_HAVE_LIBFABRIC) set (HPCDataPlaneList "${HPCDataPlaneList} fabric") endif() if (ADIOS2_SST_HAVE_UCX) set (HPCDataPlaneList "${HPCDataPlaneList} UCX") endif() if (ADIOS2_SST_HAVE_MPI_DP) set (HPCDataPlaneList "${HPCDataPlaneList} MPI") endif() endif() if ({HPCDataPlaneList} STREQUAL "") message(" Possible RDMA DataPlanes for SST: <none>") else() message(" RDMA Transport for Staging: Unconfigured") message(" Possible RDMA DataPlanes for SST: ${HPCDataPlaneList}") endif()
bindings/C/adios2/c/adios2_c_io.cpp +37 −0 Original line number Diff line number Diff line Loading @@ -150,6 +150,43 @@ adios2_error adios2_set_transport_parameter(adios2_io *io, const size_t transpor } } #ifdef ADIOS2_HAVE_DERIVED_VARIABLE adios2_derived_variable *adios2_define_derived_variable(adios2_io *io, const char *name, const char *expression, const adios2_derived_var_type type) { adios2_derived_variable *variable = nullptr; try { adios2::helper::CheckForNullptr(io, "for adios2_io, in call to adios2_define_variable"); adios2::core::IO &ioCpp = *reinterpret_cast<adios2::core::IO *>(io); adios2::DerivedVarType typeCpp = adios2::DerivedVarType::MetadataOnly; switch (type) { case adios2_derived_var_type_metadata_only: typeCpp = adios2::DerivedVarType::MetadataOnly; break; case adios2_derived_var_type_expression_string: typeCpp = adios2::DerivedVarType::ExpressionString; break; case adios2_derived_var_type_store_data: typeCpp = adios2::DerivedVarType::StoreData; break; } adios2::core::VariableDerived *variableCpp = nullptr; variableCpp = &ioCpp.DefineDerivedVariable(name, expression, typeCpp); variable = reinterpret_cast<adios2_derived_variable *>(variableCpp); } catch (...) { adios2::helper::ExceptionToError("adios2_define_variable"); } return variable; } #endif adios2_variable *adios2_define_variable(adios2_io *io, const char *name, const adios2_type type, const size_t ndims, const size_t *shape, const size_t *start, const size_t *count, Loading
bindings/C/adios2/c/adios2_c_io.h +20 −0 Original line number Diff line number Diff line Loading @@ -122,6 +122,26 @@ adios2_variable *adios2_define_variable(adios2_io *io, const char *name, const a const size_t *start, const size_t *count, const adios2_constant_dims constant_dims); #ifdef ADIOS2_HAVE_DERIVED_VARIABLE /** * @brief Define a derived variable within io * @param io handler that owns the variable * @param name unique variable identifier * @param type primitive type from enum adios2_type in adios2_c_types.h * @param ndims number of dimensions * @param shape global dimension * @param start local offset * @param count local dimension * @param constant_dims adios2_constant_dims_true:: shape, start, count * won't change; adios2_constant_dims_false: shape, start, count will change * after definition * @return success: handler, failure: NULL */ adios2_derived_variable *adios2_define_derived_variable(adios2_io *io, const char *name, const char *expression, const adios2_derived_var_type type); #endif /** * @brief Retrieve a variable handler within current io handler * @param io handler to variable io owner Loading
bindings/C/adios2/c/adios2_c_types.h +20 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ extern "C" { typedef struct adios2_adios adios2_adios; typedef struct adios2_io adios2_io; typedef struct adios2_variable adios2_variable; typedef struct adios2_derived_variable adios2_derived_variable; typedef struct adios2_attribute adios2_attribute; typedef struct adios2_engine adios2_engine; typedef struct adios2_operator adios2_operator; Loading Loading @@ -139,6 +140,16 @@ typedef enum adios2_arrayordering_auto } adios2_arrayordering; #ifdef ADIOS2_HAVE_DERIVED_VARIABLE /** Type of derived variables */ typedef enum { adios2_derived_var_type_metadata_only = 0, adios2_derived_var_type_expression_string = 1, adios2_derived_var_type_store_data = 2 } adios2_derived_var_type; #endif static const size_t adios2_string_array_element_max_size = 4096; static const size_t adios2_local_value_dim = SIZE_MAX - 2; Loading @@ -159,6 +170,15 @@ union adios2_PrimitiveStdtypeUnion char *str; }; typedef enum { adios2_memory_space_detect = 0, adios2_memory_space_host = 1, #ifdef ADIOS2_HAVE_GPU_SUPPORT adios2_memory_space_gpu = 2, #endif } adios2_memory_space; typedef struct { int WriterID; Loading