Loading source/adios2/ADIOSMacros.h +2 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,8 @@ MACRO(float) \ MACRO(double) #define ADIOS2_FOREACH_MGARD_TYPE_1ARG(MACRO) MACRO(double) #define ADIOS2_FOREACH_ATTRIBUTE_TYPE_1ARG(MACRO) \ MACRO(std::string) \ MACRO(char) \ Loading source/adios2/CMakeLists.txt +2 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ add_library(adios2 toolkit/format/bp3/operation/BP3Zfp.tcc toolkit/format/bp3/operation/BP3SZ.cpp toolkit/format/bp3/operation/BP3SZ.tcc toolkit/format/bp3/operation/BP3MGARD.cpp toolkit/format/bp3/operation/BP3MGARD.tcc toolkit/profiling/iochrono/Timer.cpp Loading source/adios2/core/ADIOS.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,10 @@ #include "adios2/operator/compress/CompressSZ.h" #endif #ifdef ADIOS2_HAVE_MGARD #include "adios2/operator/compress/CompressMGARD.h" #endif // callbacks #include "adios2/operator/callback/Signature1.h" #include "adios2/operator/callback/Signature2.h" Loading Loading @@ -187,6 +191,19 @@ Operator &ADIOS::DefineOperator(const std::string name, const std::string type, throw std::invalid_argument( "ERROR: this version of ADIOS2 didn't compile with the " "SZ library (minimum v2.0.2.0), in call to DefineOperator\n"); #endif } else if (typeLowerCase == "mgard") { #ifdef ADIOS2_HAVE_MGARD auto itPair = m_Operators.emplace( name, std::make_shared<compress::CompressMGARD>(parameters, m_DebugMode)); operatorPtr = itPair.first->second; #else throw std::invalid_argument( "ERROR: this version of ADIOS2 didn't compile with the " "MGARD library (minimum v0.0.0.1), in call to DefineOperator\n"); #endif } else Loading source/adios2/operator/compress/CompressMGARD.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -83,10 +83,14 @@ size_t CompressMGARD::Compress(const void *dataIn, const Dims &dimensions, double tolerance = std::stod(itTolerance->second); int sizeOut = 0; mgard_compress(mgardType, const_cast<void *>(dataIn), &sizeOut, r[0], r[1], &tolerance); unsigned char *dataOutPtr = mgard_compress(mgardType, const_cast<void *>(dataIn), &sizeOut, r[0], r[1], &tolerance); return static_cast<size_t>(sizeOut); const size_t sizeOutT = static_cast<size_t>(sizeOut); std::memcpy(bufferOut, dataOutPtr, sizeOutT); return sizeOutT; } size_t CompressMGARD::Decompress(const void *bufferIn, const size_t sizeIn, Loading source/adios2/toolkit/format/bp3/BP3Base.cpp +6 −8 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include "adios2/ADIOSTypes.h" //PathSeparator #include "adios2/helper/adiosFunctions.h" //CreateDirectory, StringToTimeUnit, #include "adios2/toolkit/format/bp3/operation/BP3MGARD.h" #include "adios2/toolkit/format/bp3/operation/BP3SZ.h" #include "adios2/toolkit/format/bp3/operation/BP3Zfp.h" Loading @@ -25,15 +26,12 @@ namespace format { const std::set<std::string> BP3Base::m_TransformTypes = { {"unknown", "none", "identity", "sz", "zfp"}}; {"unknown", "none", "identity", "sz", "zfp", "mgard"}}; const std::map<int, std::string> BP3Base::m_TransformTypesToNames = { {transform_unknown, "unknown"}, {transform_none, "none"}, {transform_identity, "identity"}, {transform_sz, "sz"}, {transform_zfp, "zfp"} //{transform_mgard, "mgard"}, {transform_unknown, "unknown"}, {transform_none, "none"}, {transform_identity, "identity"}, {transform_sz, "sz"}, {transform_zfp, "zfp"}, {transform_mgard, "mgard"}, // {transform_zlib, "zlib"}, // {transform_bzip2, "bzip2"}, // {transform_szip, "szip"}, Loading Loading @@ -813,7 +811,7 @@ BP3Base::SetBP3Operation(const std::string type) const noexcept } else if (type == "mgard") { // TODO bp3Op = std::make_shared<BP3MGARD>(); } else if (type == "bzip2") { Loading Loading
source/adios2/ADIOSMacros.h +2 −0 Original line number Diff line number Diff line Loading @@ -103,6 +103,8 @@ MACRO(float) \ MACRO(double) #define ADIOS2_FOREACH_MGARD_TYPE_1ARG(MACRO) MACRO(double) #define ADIOS2_FOREACH_ATTRIBUTE_TYPE_1ARG(MACRO) \ MACRO(std::string) \ MACRO(char) \ Loading
source/adios2/CMakeLists.txt +2 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ add_library(adios2 toolkit/format/bp3/operation/BP3Zfp.tcc toolkit/format/bp3/operation/BP3SZ.cpp toolkit/format/bp3/operation/BP3SZ.tcc toolkit/format/bp3/operation/BP3MGARD.cpp toolkit/format/bp3/operation/BP3MGARD.tcc toolkit/profiling/iochrono/Timer.cpp Loading
source/adios2/core/ADIOS.cpp +17 −0 Original line number Diff line number Diff line Loading @@ -32,6 +32,10 @@ #include "adios2/operator/compress/CompressSZ.h" #endif #ifdef ADIOS2_HAVE_MGARD #include "adios2/operator/compress/CompressMGARD.h" #endif // callbacks #include "adios2/operator/callback/Signature1.h" #include "adios2/operator/callback/Signature2.h" Loading Loading @@ -187,6 +191,19 @@ Operator &ADIOS::DefineOperator(const std::string name, const std::string type, throw std::invalid_argument( "ERROR: this version of ADIOS2 didn't compile with the " "SZ library (minimum v2.0.2.0), in call to DefineOperator\n"); #endif } else if (typeLowerCase == "mgard") { #ifdef ADIOS2_HAVE_MGARD auto itPair = m_Operators.emplace( name, std::make_shared<compress::CompressMGARD>(parameters, m_DebugMode)); operatorPtr = itPair.first->second; #else throw std::invalid_argument( "ERROR: this version of ADIOS2 didn't compile with the " "MGARD library (minimum v0.0.0.1), in call to DefineOperator\n"); #endif } else Loading
source/adios2/operator/compress/CompressMGARD.cpp +7 −3 Original line number Diff line number Diff line Loading @@ -83,10 +83,14 @@ size_t CompressMGARD::Compress(const void *dataIn, const Dims &dimensions, double tolerance = std::stod(itTolerance->second); int sizeOut = 0; mgard_compress(mgardType, const_cast<void *>(dataIn), &sizeOut, r[0], r[1], &tolerance); unsigned char *dataOutPtr = mgard_compress(mgardType, const_cast<void *>(dataIn), &sizeOut, r[0], r[1], &tolerance); return static_cast<size_t>(sizeOut); const size_t sizeOutT = static_cast<size_t>(sizeOut); std::memcpy(bufferOut, dataOutPtr, sizeOutT); return sizeOutT; } size_t CompressMGARD::Decompress(const void *bufferIn, const size_t sizeIn, Loading
source/adios2/toolkit/format/bp3/BP3Base.cpp +6 −8 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ #include "adios2/ADIOSTypes.h" //PathSeparator #include "adios2/helper/adiosFunctions.h" //CreateDirectory, StringToTimeUnit, #include "adios2/toolkit/format/bp3/operation/BP3MGARD.h" #include "adios2/toolkit/format/bp3/operation/BP3SZ.h" #include "adios2/toolkit/format/bp3/operation/BP3Zfp.h" Loading @@ -25,15 +26,12 @@ namespace format { const std::set<std::string> BP3Base::m_TransformTypes = { {"unknown", "none", "identity", "sz", "zfp"}}; {"unknown", "none", "identity", "sz", "zfp", "mgard"}}; const std::map<int, std::string> BP3Base::m_TransformTypesToNames = { {transform_unknown, "unknown"}, {transform_none, "none"}, {transform_identity, "identity"}, {transform_sz, "sz"}, {transform_zfp, "zfp"} //{transform_mgard, "mgard"}, {transform_unknown, "unknown"}, {transform_none, "none"}, {transform_identity, "identity"}, {transform_sz, "sz"}, {transform_zfp, "zfp"}, {transform_mgard, "mgard"}, // {transform_zlib, "zlib"}, // {transform_bzip2, "bzip2"}, // {transform_szip, "szip"}, Loading Loading @@ -813,7 +811,7 @@ BP3Base::SetBP3Operation(const std::string type) const noexcept } else if (type == "mgard") { // TODO bp3Op = std::make_shared<BP3MGARD>(); } else if (type == "bzip2") { Loading