Loading testing/adios2/engine/bp/TestBPWriteReadMultiblock.cpp +16 −9 Original line number Diff line number Diff line Loading @@ -2260,7 +2260,8 @@ TEST_F(BPWriteReadMultiblockTest, MultiblockNullBlocks) /* Write */ { adios2::IO io = adios.DeclareIO("TestIO"); adios2::Dims shape{static_cast<size_t>(mpiSize), static_cast<size_t>(Nx * (Nblocks - 1))}; adios2::Dims shape{static_cast<size_t>(mpiSize), static_cast<size_t>(Nx * (Nblocks - 1))}; adios2::Dims start{static_cast<size_t>(mpiRank), 0}; adios2::Dims count{1, Nx}; Loading Loading @@ -2289,17 +2290,19 @@ TEST_F(BPWriteReadMultiblockTest, MultiblockNullBlocks) if (b == 0) { std::array<int32_t, Nx> I32_empty; var_i32.SetSelection( adios2::Box<adios2::Dims>({(size_t)mpiRank, b * Nx}, {0, 0})); var_i32.SetSelection(adios2::Box<adios2::Dims>( {(size_t)mpiRank, b * Nx}, {0, 0})); bpWriter.Put(var_i32, I32_empty.data()); } else { ++nb; start = {static_cast<size_t>(mpiRank), static_cast<size_t>(Nx * (nb - 1))}; start = {static_cast<size_t>(mpiRank), static_cast<size_t>(Nx * (nb - 1))}; count = {1, Nx}; var_i32.SetSelection({start, count}); bpWriter.Put(var_i32, currentTestData.I32.data(), adios2::Mode::Sync); bpWriter.Put(var_i32, currentTestData.I32.data(), adios2::Mode::Sync); } bpWriter.PerformDataWrite(); Loading @@ -2317,7 +2320,8 @@ TEST_F(BPWriteReadMultiblockTest, MultiblockNullBlocks) io.SetEngine(engineName); } adios2::Engine bpReader = io.Open(fname, adios2::Mode::ReadRandomAccess); adios2::Engine bpReader = io.Open(fname, adios2::Mode::ReadRandomAccess); auto var_i32 = io.InquireVariable<int32_t>("i32"); EXPECT_TRUE(var_i32); Loading @@ -2337,21 +2341,24 @@ TEST_F(BPWriteReadMultiblockTest, MultiblockNullBlocks) var_i32.SetStepSelection({step, 1}); for (size_t b = 1; b < Nblocks; ++b) { std::cout << "Read step " << step << " block=" << b << std::endl; std::cout << "Read step " << step << " block=" << b << std::endl; // Generate test data for each process / block uniquely int t = static_cast<int>(step * Nblocks + b); SmallTestData currentTestData = generateNewSmallTestData(m_TestData, t, mpiRank, mpiSize); // Block 0 was not written so all blocks are shifted back const adios2::Box<adios2::Dims> sel({(size_t)mpiRank, (b - 1) * Nx}, {1, Nx}); const adios2::Box<adios2::Dims> sel( {(size_t)mpiRank, (b - 1) * Nx}, {1, Nx}); var_i32.SetSelection(sel); bpReader.Get(var_i32, I32.data(), adios2::Mode::Sync); for (size_t i = 0; i < Nx; ++i) { std::stringstream ss; ss << "step=" << step << " block=" << b << " i=" << i << " rank=" << mpiRank; ss << "step=" << step << " block=" << b << " i=" << i << " rank=" << mpiRank; std::string msg = ss.str(); EXPECT_EQ(I32[i], currentTestData.I32[i]) << msg; } Loading testing/adios2/engine/bp/operations/TestBPWriteReadBlosc2.cpp +14 −10 Original line number Diff line number Diff line Loading @@ -894,8 +894,8 @@ void Blosc2NullBlocks(const std::string accuracy, const std::string threshold, // Each process would write a 1x8 array and all processes would // form a mpiSize * Nx 1D array const std::string fname("BPWRBlosc2NullBlock_" + accuracy + "_" + threshold + threshold + "_" + doshuffle + ".bp"); const std::string fname("BPWRBlosc2NullBlock_" + accuracy + "_" + threshold + threshold + "_" + doshuffle + ".bp"); int mpiRank = 0, mpiSize = 1; // Number of rows Loading Loading @@ -932,10 +932,11 @@ void Blosc2NullBlocks(const std::string accuracy, const std::string threshold, auto var_r32 = io.DefineVariable<float>("r32", shape, start, count); // add operations adios2::Operator Blosc2Op = adios.DefineOperator("Blosc2Compressor", adios2::ops::LosslessBlosc); adios2::Operator Blosc2Op = adios.DefineOperator( "Blosc2Compressor", adios2::ops::LosslessBlosc); var_r32.AddOperation(Blosc2Op, {{adios2::ops::blosc::key::clevel, accuracy}, var_r32.AddOperation(Blosc2Op, {{adios2::ops::blosc::key::clevel, accuracy}, {adios2::ops::blosc::key::threshold, threshold}, {adios2::ops::blosc::key::doshuffle, doshuffle}}); adios2::Engine bpWriter = io.Open(fname, adios2::Mode::Write); Loading @@ -943,9 +944,11 @@ void Blosc2NullBlocks(const std::string accuracy, const std::string threshold, for (size_t step = 0; step < NSteps; ++step) { bpWriter.BeginStep(); var_r32.SetSelection(adios2::Box<adios2::Dims>({mpiRank * Nx}, {Nx})); var_r32.SetSelection( adios2::Box<adios2::Dims>({mpiRank * Nx}, {Nx})); bpWriter.Put<float>("r32", r32s.data()); var_r32.SetSelection(adios2::Box<adios2::Dims>({mpiRank * Nx}, {0})); var_r32.SetSelection( adios2::Box<adios2::Dims>({mpiRank * Nx}, {0})); std::vector<float> r32_empty; bpWriter.Put<float>("r32", r32_empty.data()); bpWriter.EndStep(); Loading Loading @@ -1040,7 +1043,8 @@ TEST_P(BPWriteReadBlosc2, ADIOS2BPWriteReadBlosc23DSel) } TEST_P(BPWriteReadBlosc2, ADIOS2BPWriteReadBlosc2Null) { Blosc2NullBlocks(std::get<0>(GetParam()), std::get<1>(GetParam()), std::get<2>(GetParam())); Blosc2NullBlocks(std::get<0>(GetParam()), std::get<1>(GetParam()), std::get<2>(GetParam())); } INSTANTIATE_TEST_SUITE_P( Loading testing/adios2/engine/bp/operations/TestBPWriteReadMGARD.cpp +13 −7 Original line number Diff line number Diff line Loading @@ -977,8 +977,10 @@ void MGARDNullBlocks(const std::string tolerance) auto var_r32 = io.DefineVariable<float>("r32", shape, start, count); // add operations adios2::Operator mgardOp = adios.DefineOperator("mgardCompressor", adios2::ops::LossyMGARD); var_r32.AddOperation(mgardOp, {{adios2::ops::mgard::key::tolerance, tolerance}, adios2::Operator mgardOp = adios.DefineOperator("mgardCompressor", adios2::ops::LossyMGARD); var_r32.AddOperation(mgardOp, {{adios2::ops::mgard::key::tolerance, tolerance}, {adios2::ops::mgard::key::s, "inf"}}); adios2::Engine bpWriter = io.Open(fname, adios2::Mode::Write); Loading @@ -986,9 +988,11 @@ void MGARDNullBlocks(const std::string tolerance) for (size_t step = 0; step < NSteps; ++step) { bpWriter.BeginStep(); var_r32.SetSelection(adios2::Box<adios2::Dims>({Nx * mpiRank, 0}, {Nx, Ny})); var_r32.SetSelection( adios2::Box<adios2::Dims>({Nx * mpiRank, 0}, {Nx, Ny})); bpWriter.Put<float>("r32", r32s.data()); var_r32.SetSelection(adios2::Box<adios2::Dims>({Nx * mpiRank, 0}, {0, 0})); var_r32.SetSelection( adios2::Box<adios2::Dims>({Nx * mpiRank, 0}, {0, 0})); std::vector<float> r32_empty; bpWriter.Put<float>("r32", r32_empty.data()); bpWriter.EndStep(); Loading Loading @@ -1032,7 +1036,9 @@ void MGARDNullBlocks(const std::string tolerance) ss << "t=" << t << " i=" << i << " rank=" << mpiRank; std::string msg = ss.str(); ASSERT_LT(std::abs(decompressedR32s[i] - r32s[Nx / 2 * Ny + i]) / *r32s_Max, ASSERT_LT( std::abs(decompressedR32s[i] - r32s[Nx / 2 * Ny + i]) / *r32s_Max, std::stod(tolerance)) << msg; } Loading Loading
testing/adios2/engine/bp/TestBPWriteReadMultiblock.cpp +16 −9 Original line number Diff line number Diff line Loading @@ -2260,7 +2260,8 @@ TEST_F(BPWriteReadMultiblockTest, MultiblockNullBlocks) /* Write */ { adios2::IO io = adios.DeclareIO("TestIO"); adios2::Dims shape{static_cast<size_t>(mpiSize), static_cast<size_t>(Nx * (Nblocks - 1))}; adios2::Dims shape{static_cast<size_t>(mpiSize), static_cast<size_t>(Nx * (Nblocks - 1))}; adios2::Dims start{static_cast<size_t>(mpiRank), 0}; adios2::Dims count{1, Nx}; Loading Loading @@ -2289,17 +2290,19 @@ TEST_F(BPWriteReadMultiblockTest, MultiblockNullBlocks) if (b == 0) { std::array<int32_t, Nx> I32_empty; var_i32.SetSelection( adios2::Box<adios2::Dims>({(size_t)mpiRank, b * Nx}, {0, 0})); var_i32.SetSelection(adios2::Box<adios2::Dims>( {(size_t)mpiRank, b * Nx}, {0, 0})); bpWriter.Put(var_i32, I32_empty.data()); } else { ++nb; start = {static_cast<size_t>(mpiRank), static_cast<size_t>(Nx * (nb - 1))}; start = {static_cast<size_t>(mpiRank), static_cast<size_t>(Nx * (nb - 1))}; count = {1, Nx}; var_i32.SetSelection({start, count}); bpWriter.Put(var_i32, currentTestData.I32.data(), adios2::Mode::Sync); bpWriter.Put(var_i32, currentTestData.I32.data(), adios2::Mode::Sync); } bpWriter.PerformDataWrite(); Loading @@ -2317,7 +2320,8 @@ TEST_F(BPWriteReadMultiblockTest, MultiblockNullBlocks) io.SetEngine(engineName); } adios2::Engine bpReader = io.Open(fname, adios2::Mode::ReadRandomAccess); adios2::Engine bpReader = io.Open(fname, adios2::Mode::ReadRandomAccess); auto var_i32 = io.InquireVariable<int32_t>("i32"); EXPECT_TRUE(var_i32); Loading @@ -2337,21 +2341,24 @@ TEST_F(BPWriteReadMultiblockTest, MultiblockNullBlocks) var_i32.SetStepSelection({step, 1}); for (size_t b = 1; b < Nblocks; ++b) { std::cout << "Read step " << step << " block=" << b << std::endl; std::cout << "Read step " << step << " block=" << b << std::endl; // Generate test data for each process / block uniquely int t = static_cast<int>(step * Nblocks + b); SmallTestData currentTestData = generateNewSmallTestData(m_TestData, t, mpiRank, mpiSize); // Block 0 was not written so all blocks are shifted back const adios2::Box<adios2::Dims> sel({(size_t)mpiRank, (b - 1) * Nx}, {1, Nx}); const adios2::Box<adios2::Dims> sel( {(size_t)mpiRank, (b - 1) * Nx}, {1, Nx}); var_i32.SetSelection(sel); bpReader.Get(var_i32, I32.data(), adios2::Mode::Sync); for (size_t i = 0; i < Nx; ++i) { std::stringstream ss; ss << "step=" << step << " block=" << b << " i=" << i << " rank=" << mpiRank; ss << "step=" << step << " block=" << b << " i=" << i << " rank=" << mpiRank; std::string msg = ss.str(); EXPECT_EQ(I32[i], currentTestData.I32[i]) << msg; } Loading
testing/adios2/engine/bp/operations/TestBPWriteReadBlosc2.cpp +14 −10 Original line number Diff line number Diff line Loading @@ -894,8 +894,8 @@ void Blosc2NullBlocks(const std::string accuracy, const std::string threshold, // Each process would write a 1x8 array and all processes would // form a mpiSize * Nx 1D array const std::string fname("BPWRBlosc2NullBlock_" + accuracy + "_" + threshold + threshold + "_" + doshuffle + ".bp"); const std::string fname("BPWRBlosc2NullBlock_" + accuracy + "_" + threshold + threshold + "_" + doshuffle + ".bp"); int mpiRank = 0, mpiSize = 1; // Number of rows Loading Loading @@ -932,10 +932,11 @@ void Blosc2NullBlocks(const std::string accuracy, const std::string threshold, auto var_r32 = io.DefineVariable<float>("r32", shape, start, count); // add operations adios2::Operator Blosc2Op = adios.DefineOperator("Blosc2Compressor", adios2::ops::LosslessBlosc); adios2::Operator Blosc2Op = adios.DefineOperator( "Blosc2Compressor", adios2::ops::LosslessBlosc); var_r32.AddOperation(Blosc2Op, {{adios2::ops::blosc::key::clevel, accuracy}, var_r32.AddOperation(Blosc2Op, {{adios2::ops::blosc::key::clevel, accuracy}, {adios2::ops::blosc::key::threshold, threshold}, {adios2::ops::blosc::key::doshuffle, doshuffle}}); adios2::Engine bpWriter = io.Open(fname, adios2::Mode::Write); Loading @@ -943,9 +944,11 @@ void Blosc2NullBlocks(const std::string accuracy, const std::string threshold, for (size_t step = 0; step < NSteps; ++step) { bpWriter.BeginStep(); var_r32.SetSelection(adios2::Box<adios2::Dims>({mpiRank * Nx}, {Nx})); var_r32.SetSelection( adios2::Box<adios2::Dims>({mpiRank * Nx}, {Nx})); bpWriter.Put<float>("r32", r32s.data()); var_r32.SetSelection(adios2::Box<adios2::Dims>({mpiRank * Nx}, {0})); var_r32.SetSelection( adios2::Box<adios2::Dims>({mpiRank * Nx}, {0})); std::vector<float> r32_empty; bpWriter.Put<float>("r32", r32_empty.data()); bpWriter.EndStep(); Loading Loading @@ -1040,7 +1043,8 @@ TEST_P(BPWriteReadBlosc2, ADIOS2BPWriteReadBlosc23DSel) } TEST_P(BPWriteReadBlosc2, ADIOS2BPWriteReadBlosc2Null) { Blosc2NullBlocks(std::get<0>(GetParam()), std::get<1>(GetParam()), std::get<2>(GetParam())); Blosc2NullBlocks(std::get<0>(GetParam()), std::get<1>(GetParam()), std::get<2>(GetParam())); } INSTANTIATE_TEST_SUITE_P( Loading
testing/adios2/engine/bp/operations/TestBPWriteReadMGARD.cpp +13 −7 Original line number Diff line number Diff line Loading @@ -977,8 +977,10 @@ void MGARDNullBlocks(const std::string tolerance) auto var_r32 = io.DefineVariable<float>("r32", shape, start, count); // add operations adios2::Operator mgardOp = adios.DefineOperator("mgardCompressor", adios2::ops::LossyMGARD); var_r32.AddOperation(mgardOp, {{adios2::ops::mgard::key::tolerance, tolerance}, adios2::Operator mgardOp = adios.DefineOperator("mgardCompressor", adios2::ops::LossyMGARD); var_r32.AddOperation(mgardOp, {{adios2::ops::mgard::key::tolerance, tolerance}, {adios2::ops::mgard::key::s, "inf"}}); adios2::Engine bpWriter = io.Open(fname, adios2::Mode::Write); Loading @@ -986,9 +988,11 @@ void MGARDNullBlocks(const std::string tolerance) for (size_t step = 0; step < NSteps; ++step) { bpWriter.BeginStep(); var_r32.SetSelection(adios2::Box<adios2::Dims>({Nx * mpiRank, 0}, {Nx, Ny})); var_r32.SetSelection( adios2::Box<adios2::Dims>({Nx * mpiRank, 0}, {Nx, Ny})); bpWriter.Put<float>("r32", r32s.data()); var_r32.SetSelection(adios2::Box<adios2::Dims>({Nx * mpiRank, 0}, {0, 0})); var_r32.SetSelection( adios2::Box<adios2::Dims>({Nx * mpiRank, 0}, {0, 0})); std::vector<float> r32_empty; bpWriter.Put<float>("r32", r32_empty.data()); bpWriter.EndStep(); Loading Loading @@ -1032,7 +1036,9 @@ void MGARDNullBlocks(const std::string tolerance) ss << "t=" << t << " i=" << i << " rank=" << mpiRank; std::string msg = ss.str(); ASSERT_LT(std::abs(decompressedR32s[i] - r32s[Nx / 2 * Ny + i]) / *r32s_Max, ASSERT_LT( std::abs(decompressedR32s[i] - r32s[Nx / 2 * Ny + i]) / *r32s_Max, std::stod(tolerance)) << msg; } Loading