From 6583cb5b5406e0aaa0d1b5688b656f2a2c5e9175 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 26 Nov 2023 13:58:32 +0100 Subject: [PATCH 1/5] Add patch to introduce busy_sleep separately from regressions --- HyTeg/add_busy_sleep.info | 18 ++++++++++++++++++ HyTeg/add_busy_sleep.patch | 28 ++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+) create mode 100644 HyTeg/add_busy_sleep.info create mode 100644 HyTeg/add_busy_sleep.patch diff --git a/HyTeg/add_busy_sleep.info b/HyTeg/add_busy_sleep.info new file mode 100644 index 0000000..3bde04e --- /dev/null +++ b/HyTeg/add_busy_sleep.info @@ -0,0 +1,18 @@ +description: Introduce the busy_sleep function to the HyTeg Codebase +include_revisions: + revision_range: + start: f4711dadc3f61386e6ccdc704baa783253332db2 +path: add_busy_sleep.patch +project_name: HyTeg +shortname: add_busy_sleep +tags: +- compile-time +- synthetic +- CGSolver +- GMRESSolver +- MinResSolver +- SORSmoother +- SymmetricSORSmoother +- HyTeg +- P1 +- P2 diff --git a/HyTeg/add_busy_sleep.patch b/HyTeg/add_busy_sleep.patch new file mode 100644 index 0000000..967d628 --- /dev/null +++ b/HyTeg/add_busy_sleep.patch @@ -0,0 +1,28 @@ +diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp +index 6d9ebb542..a9354816d 100644 +--- a/src/hyteg/solvers/Solver.hpp ++++ b/src/hyteg/solvers/Solver.hpp +@@ -21,6 +21,23 @@ + + #include "core/DataTypes.h" + ++namespace fp_util { ++ inline void busy_sleep_for_millisecs(unsigned Millisecs) { ++ auto start_us = std::chrono::duration_cast( ++ std::chrono::high_resolution_clock::now().time_since_epoch()); ++ auto end_us = start_us + std::chrono::milliseconds(Millisecs); ++ auto current_us = start_us; ++ ++ while (current_us < end_us) { ++ for (long counter = 0; counter < 100'000; ++counter) { ++ asm volatile("" : "+g"(counter) : :); // prevent optimization ++ } ++ current_us = std::chrono::duration_cast( ++ std::chrono::high_resolution_clock::now().time_since_epoch()); ++ } ++ } ++} ++ + namespace hyteg { + template < class OperatorType > + class Solver From 5c2fa13b67c2cd1586dc799a94aad854bc960b75 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 26 Nov 2023 14:01:38 +0100 Subject: [PATCH 2/5] Removed busy_sleep function definition from HyTeg regression patches --- HyTeg/cg_solve_10000ms.patch | 28 ---------------------------- HyTeg/cg_solve_1000ms.patch | 28 ---------------------------- HyTeg/cg_solve_100ms.patch | 28 ---------------------------- HyTeg/cg_solve_10ms.patch | 28 ---------------------------- HyTeg/cg_solve_1ms.patch | 28 ---------------------------- HyTeg/gmres_solve_10000ms.patch | 28 ---------------------------- HyTeg/gmres_solve_1000ms.patch | 28 ---------------------------- HyTeg/gmres_solve_100ms.patch | 28 ---------------------------- HyTeg/gmres_solve_10ms.patch | 28 ---------------------------- HyTeg/gmres_solve_1ms.patch | 28 ---------------------------- HyTeg/minres_solve_10000ms.patch | 28 ---------------------------- HyTeg/minres_solve_1000ms.patch | 28 ---------------------------- HyTeg/minres_solve_100ms.patch | 28 ---------------------------- HyTeg/minres_solve_10ms.patch | 28 ---------------------------- HyTeg/minres_solve_1ms.patch | 28 ---------------------------- HyTeg/sor_solve_10000ms.patch | 28 ---------------------------- HyTeg/sor_solve_1000ms.patch | 28 ---------------------------- HyTeg/sor_solve_100ms.patch | 28 ---------------------------- HyTeg/sor_solve_10ms.patch | 28 ---------------------------- HyTeg/sor_solve_1ms.patch | 28 ---------------------------- HyTeg/symmetric_solve_10000ms.patch | 28 ---------------------------- HyTeg/symmetric_solve_1000ms.patch | 28 ---------------------------- HyTeg/symmetric_solve_100ms.patch | 28 ---------------------------- HyTeg/symmetric_solve_10ms.patch | 28 ---------------------------- HyTeg/symmetric_solve_1ms.patch | 28 ---------------------------- 25 files changed, 700 deletions(-) diff --git a/HyTeg/cg_solve_10000ms.patch b/HyTeg/cg_solve_10000ms.patch index 457287c..ff417d6 100644 --- a/HyTeg/cg_solve_10000ms.patch +++ b/HyTeg/cg_solve_10000ms.patch @@ -10,31 +10,3 @@ index 4696554c9..5a0790613 100644 if ( maxIter_ == 0 ) return; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/cg_solve_1000ms.patch b/HyTeg/cg_solve_1000ms.patch index 3912705..617f748 100644 --- a/HyTeg/cg_solve_1000ms.patch +++ b/HyTeg/cg_solve_1000ms.patch @@ -10,31 +10,3 @@ index 4696554c9..5a0790613 100644 if ( maxIter_ == 0 ) return; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/cg_solve_100ms.patch b/HyTeg/cg_solve_100ms.patch index f060f43..6fff02c 100644 --- a/HyTeg/cg_solve_100ms.patch +++ b/HyTeg/cg_solve_100ms.patch @@ -10,31 +10,3 @@ index 4696554c9..5a0790613 100644 if ( maxIter_ == 0 ) return; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/cg_solve_10ms.patch b/HyTeg/cg_solve_10ms.patch index 65658b5..343d9e4 100644 --- a/HyTeg/cg_solve_10ms.patch +++ b/HyTeg/cg_solve_10ms.patch @@ -10,31 +10,3 @@ index 4696554c9..5a0790613 100644 if ( maxIter_ == 0 ) return; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/cg_solve_1ms.patch b/HyTeg/cg_solve_1ms.patch index c546af6..a06df07 100644 --- a/HyTeg/cg_solve_1ms.patch +++ b/HyTeg/cg_solve_1ms.patch @@ -10,31 +10,3 @@ index 4696554c9..5a0790613 100644 if ( maxIter_ == 0 ) return; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/gmres_solve_10000ms.patch b/HyTeg/gmres_solve_10000ms.patch index c002012..a3568ec 100644 --- a/HyTeg/gmres_solve_10000ms.patch +++ b/HyTeg/gmres_solve_10000ms.patch @@ -10,31 +10,3 @@ index 3bb7cad99..40280d2a3 100644 timingTree_->start( "GMRES Solver" ); real_t approxERR = approxTOL_ + 1; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/gmres_solve_1000ms.patch b/HyTeg/gmres_solve_1000ms.patch index edda393..db04c27 100644 --- a/HyTeg/gmres_solve_1000ms.patch +++ b/HyTeg/gmres_solve_1000ms.patch @@ -10,31 +10,3 @@ index 3bb7cad99..40280d2a3 100644 timingTree_->start( "GMRES Solver" ); real_t approxERR = approxTOL_ + 1; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/gmres_solve_100ms.patch b/HyTeg/gmres_solve_100ms.patch index f977442..1316ebf 100644 --- a/HyTeg/gmres_solve_100ms.patch +++ b/HyTeg/gmres_solve_100ms.patch @@ -10,31 +10,3 @@ index 3bb7cad99..40280d2a3 100644 timingTree_->start( "GMRES Solver" ); real_t approxERR = approxTOL_ + 1; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/gmres_solve_10ms.patch b/HyTeg/gmres_solve_10ms.patch index 504df29..cb65fb0 100644 --- a/HyTeg/gmres_solve_10ms.patch +++ b/HyTeg/gmres_solve_10ms.patch @@ -10,31 +10,3 @@ index 3bb7cad99..40280d2a3 100644 timingTree_->start( "GMRES Solver" ); real_t approxERR = approxTOL_ + 1; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/gmres_solve_1ms.patch b/HyTeg/gmres_solve_1ms.patch index 5f84c08..d6c5491 100644 --- a/HyTeg/gmres_solve_1ms.patch +++ b/HyTeg/gmres_solve_1ms.patch @@ -10,31 +10,3 @@ index 3bb7cad99..40280d2a3 100644 timingTree_->start( "GMRES Solver" ); real_t approxERR = approxTOL_ + 1; -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/minres_solve_10000ms.patch b/HyTeg/minres_solve_10000ms.patch index fbb25a4..4a5b760 100644 --- a/HyTeg/minres_solve_10000ms.patch +++ b/HyTeg/minres_solve_10000ms.patch @@ -10,31 +10,3 @@ index ce1dd9f8f..28b7a10a6 100644 timingTree_->start("MinRes Solver"); p_vm.copyBoundaryConditionFromFunction(x); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/minres_solve_1000ms.patch b/HyTeg/minres_solve_1000ms.patch index d1edd2c..de889ab 100644 --- a/HyTeg/minres_solve_1000ms.patch +++ b/HyTeg/minres_solve_1000ms.patch @@ -10,31 +10,3 @@ index ce1dd9f8f..28b7a10a6 100644 timingTree_->start("MinRes Solver"); p_vm.copyBoundaryConditionFromFunction(x); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/minres_solve_100ms.patch b/HyTeg/minres_solve_100ms.patch index 87e2d02..0312ba8 100644 --- a/HyTeg/minres_solve_100ms.patch +++ b/HyTeg/minres_solve_100ms.patch @@ -10,31 +10,3 @@ index ce1dd9f8f..28b7a10a6 100644 timingTree_->start("MinRes Solver"); p_vm.copyBoundaryConditionFromFunction(x); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/minres_solve_10ms.patch b/HyTeg/minres_solve_10ms.patch index ac81cd2..9b0a92a 100644 --- a/HyTeg/minres_solve_10ms.patch +++ b/HyTeg/minres_solve_10ms.patch @@ -10,31 +10,3 @@ index ce1dd9f8f..28b7a10a6 100644 timingTree_->start("MinRes Solver"); p_vm.copyBoundaryConditionFromFunction(x); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/minres_solve_1ms.patch b/HyTeg/minres_solve_1ms.patch index 9dd72b9..6a97450 100644 --- a/HyTeg/minres_solve_1ms.patch +++ b/HyTeg/minres_solve_1ms.patch @@ -10,31 +10,3 @@ index ce1dd9f8f..28b7a10a6 100644 timingTree_->start("MinRes Solver"); p_vm.copyBoundaryConditionFromFunction(x); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/sor_solve_10000ms.patch b/HyTeg/sor_solve_10000ms.patch index 81eb32f..9ba11cf 100644 --- a/HyTeg/sor_solve_10000ms.patch +++ b/HyTeg/sor_solve_10000ms.patch @@ -10,31 +10,3 @@ index b7f592fab..966649dd5 100644 if ( const auto* A_sor = dynamic_cast< const SORSmoothable< typename OperatorType::srcType >* >( &A ) ) { A_sor->smooth_sor( x, b, relax_, level, flag_ ); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/sor_solve_1000ms.patch b/HyTeg/sor_solve_1000ms.patch index dc9bac6..373e29b 100644 --- a/HyTeg/sor_solve_1000ms.patch +++ b/HyTeg/sor_solve_1000ms.patch @@ -10,31 +10,3 @@ index b7f592fab..966649dd5 100644 if ( const auto* A_sor = dynamic_cast< const SORSmoothable< typename OperatorType::srcType >* >( &A ) ) { A_sor->smooth_sor( x, b, relax_, level, flag_ ); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/sor_solve_100ms.patch b/HyTeg/sor_solve_100ms.patch index 8bb6962..ce50644 100644 --- a/HyTeg/sor_solve_100ms.patch +++ b/HyTeg/sor_solve_100ms.patch @@ -10,31 +10,3 @@ index b7f592fab..966649dd5 100644 if ( const auto* A_sor = dynamic_cast< const SORSmoothable< typename OperatorType::srcType >* >( &A ) ) { A_sor->smooth_sor( x, b, relax_, level, flag_ ); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/sor_solve_10ms.patch b/HyTeg/sor_solve_10ms.patch index 4331c40..488759f 100644 --- a/HyTeg/sor_solve_10ms.patch +++ b/HyTeg/sor_solve_10ms.patch @@ -10,31 +10,3 @@ index b7f592fab..966649dd5 100644 if ( const auto* A_sor = dynamic_cast< const SORSmoothable< typename OperatorType::srcType >* >( &A ) ) { A_sor->smooth_sor( x, b, relax_, level, flag_ ); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/sor_solve_1ms.patch b/HyTeg/sor_solve_1ms.patch index c2989a9..b0718a3 100644 --- a/HyTeg/sor_solve_1ms.patch +++ b/HyTeg/sor_solve_1ms.patch @@ -10,31 +10,3 @@ index b7f592fab..966649dd5 100644 if ( const auto* A_sor = dynamic_cast< const SORSmoothable< typename OperatorType::srcType >* >( &A ) ) { A_sor->smooth_sor( x, b, relax_, level, flag_ ); -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/HyTeg/symmetric_solve_10000ms.patch b/HyTeg/symmetric_solve_10000ms.patch index c3d968c..1d270fd 100644 --- a/HyTeg/symmetric_solve_10000ms.patch +++ b/HyTeg/symmetric_solve_10000ms.patch @@ -1,31 +1,3 @@ -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/src/hyteg/solvers/SymmetricSORSmoother.hpp b/src/hyteg/solvers/SymmetricSORSmoother.hpp index d4693ee40..905c43060 100644 --- a/src/hyteg/solvers/SymmetricSORSmoother.hpp diff --git a/HyTeg/symmetric_solve_1000ms.patch b/HyTeg/symmetric_solve_1000ms.patch index 1e26d79..b42f5cb 100644 --- a/HyTeg/symmetric_solve_1000ms.patch +++ b/HyTeg/symmetric_solve_1000ms.patch @@ -1,31 +1,3 @@ -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/src/hyteg/solvers/SymmetricSORSmoother.hpp b/src/hyteg/solvers/SymmetricSORSmoother.hpp index d4693ee40..905c43060 100644 --- a/src/hyteg/solvers/SymmetricSORSmoother.hpp diff --git a/HyTeg/symmetric_solve_100ms.patch b/HyTeg/symmetric_solve_100ms.patch index 6ee4a50..a060fc2 100644 --- a/HyTeg/symmetric_solve_100ms.patch +++ b/HyTeg/symmetric_solve_100ms.patch @@ -1,31 +1,3 @@ -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/src/hyteg/solvers/SymmetricSORSmoother.hpp b/src/hyteg/solvers/SymmetricSORSmoother.hpp index d4693ee40..905c43060 100644 --- a/src/hyteg/solvers/SymmetricSORSmoother.hpp diff --git a/HyTeg/symmetric_solve_10ms.patch b/HyTeg/symmetric_solve_10ms.patch index 867380e..ec13dd3 100644 --- a/HyTeg/symmetric_solve_10ms.patch +++ b/HyTeg/symmetric_solve_10ms.patch @@ -1,31 +1,3 @@ -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/src/hyteg/solvers/SymmetricSORSmoother.hpp b/src/hyteg/solvers/SymmetricSORSmoother.hpp index d4693ee40..905c43060 100644 --- a/src/hyteg/solvers/SymmetricSORSmoother.hpp diff --git a/HyTeg/symmetric_solve_1ms.patch b/HyTeg/symmetric_solve_1ms.patch index 6a42195..7179a24 100644 --- a/HyTeg/symmetric_solve_1ms.patch +++ b/HyTeg/symmetric_solve_1ms.patch @@ -1,31 +1,3 @@ -diff --git a/src/hyteg/solvers/Solver.hpp b/src/hyteg/solvers/Solver.hpp -index 6d9ebb542..a9354816d 100644 ---- a/src/hyteg/solvers/Solver.hpp -+++ b/src/hyteg/solvers/Solver.hpp -@@ -21,6 +21,23 @@ - - #include "core/DataTypes.h" - -+namespace fp_util { -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - namespace hyteg { - template < class OperatorType > - class Solver diff --git a/src/hyteg/solvers/SymmetricSORSmoother.hpp b/src/hyteg/solvers/SymmetricSORSmoother.hpp index d4693ee40..905c43060 100644 --- a/src/hyteg/solvers/SymmetricSORSmoother.hpp From a24981bc4fa8041ecada321de7b7e7a0556abb26 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 26 Nov 2023 17:22:44 +0100 Subject: [PATCH 3/5] Added busy sleep patch for DunePerfRegression --- DunePerfRegression/add_busy_sleep.info | 27 ++++++++++++++++++++++ DunePerfRegression/add_busy_sleep.patch | 30 +++++++++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 DunePerfRegression/add_busy_sleep.info create mode 100644 DunePerfRegression/add_busy_sleep.patch diff --git a/DunePerfRegression/add_busy_sleep.info b/DunePerfRegression/add_busy_sleep.info new file mode 100644 index 0000000..586cb92 --- /dev/null +++ b/DunePerfRegression/add_busy_sleep.info @@ -0,0 +1,27 @@ +description: Adds a busy_sleep utility function to Dune (Required for all patches with "regression" tag) +include_revisions: + revision_range: + start: 559e763958113c8e6c31a3569127781cadb5a535 +path: add_busy_sleep.patch +project_name: DunePerfRegression +shortname: alu_grid_adapt_1ms +tags: +- dune +- compile-time +- template +- ALUGrid +- UGGrid +- YaspGrid +- BiCGSTABSolver +- CGSolver +- GradientSolver +- LoopSolver +- MINRESSolver +- KuhnUnitCubeMaker +- TriangulatedUnitCubeMaker +- TriangulatedUnitSquareMaker +- UnitTetrahedronMaker +- UnitTriangleMaker +- Richardson +- SeqILU +- SeqSSOR diff --git a/DunePerfRegression/add_busy_sleep.patch b/DunePerfRegression/add_busy_sleep.patch new file mode 100644 index 0000000..4b590aa --- /dev/null +++ b/DunePerfRegression/add_busy_sleep.patch @@ -0,0 +1,30 @@ +Submodule dune-common contains modified content +diff --git a/dune-common/dune/common/typetraits.hh b/dune-common/dune/common/typetraits.hh +index 2c77c3d12..a9da5d8b9 100644 +--- a/dune-common/dune/common/typetraits.hh ++++ b/dune-common/dune/common/typetraits.hh +@@ -9,6 +9,24 @@ + #include + #include + #include ++#include ++ ++namespace fp_util { ++ inline void busy_sleep_for_millisecs(unsigned Millisecs) { ++ auto start_us = std::chrono::duration_cast( ++ std::chrono::high_resolution_clock::now().time_since_epoch()); ++ auto end_us = start_us + std::chrono::milliseconds(Millisecs); ++ auto current_us = start_us; ++ ++ while (current_us < end_us) { ++ for (long counter = 0; counter < 100'000; ++counter) { ++ asm volatile("" : "+g"(counter) : :); // prevent optimization ++ } ++ current_us = std::chrono::duration_cast( ++ std::chrono::high_resolution_clock::now().time_since_epoch()); ++ } ++ } ++} + + namespace Dune + { From 1f904720ca65c2af2b2fff6bef234ae778695b17 Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 26 Nov 2023 17:33:46 +0100 Subject: [PATCH 4/5] Removed busy_sleep definitions from individual patches --- .../alu_grid_adapt_10000ms.patch | 22 --------------- .../alu_grid_adapt_1000ms.patch | 22 --------------- DunePerfRegression/alu_grid_adapt_100ms.patch | 22 --------------- DunePerfRegression/alu_grid_adapt_10ms.patch | 22 --------------- DunePerfRegression/alu_grid_adapt_1ms.patch | 22 --------------- .../bicgstab_solver_apply_10000ms.patch | 26 ----------------- .../bicgstab_solver_apply_1000ms.patch | 26 ----------------- .../bicgstab_solver_apply_100ms.patch | 26 ----------------- .../bicgstab_solver_apply_10ms.patch | 26 ----------------- .../bicgstab_solver_apply_1ms.patch | 26 ----------------- .../cg_solver_apply_10000ms.patch | 26 ----------------- .../cg_solver_apply_1000ms.patch | 26 ----------------- .../cg_solver_apply_100ms.patch | 26 ----------------- DunePerfRegression/cg_solver_apply_10ms.patch | 26 ----------------- DunePerfRegression/cg_solver_apply_1ms.patch | 26 ----------------- .../gradient_solver_apply_10000ms.patch | 26 ----------------- .../gradient_solver_apply_1000ms.patch | 26 ----------------- .../gradient_solver_apply_100ms.patch | 26 ----------------- .../gradient_solver_apply_10ms.patch | 26 ----------------- .../gradient_solver_apply_1ms.patch | 26 ----------------- .../kuhn_unit_cube_maker_create_10000ms.patch | 25 ----------------- .../kuhn_unit_cube_maker_create_1000ms.patch | 25 ----------------- .../kuhn_unit_cube_maker_create_100ms.patch | 25 ----------------- .../kuhn_unit_cube_maker_create_10ms.patch | 25 ----------------- .../kuhn_unit_cube_maker_create_1ms.patch | 25 ----------------- .../loop_solver_apply_10000ms.patch | 26 ----------------- .../loop_solver_apply_1000ms.patch | 26 ----------------- .../loop_solver_apply_100ms.patch | 26 ----------------- .../loop_solver_apply_10ms.patch | 26 ----------------- .../loop_solver_apply_1ms.patch | 26 ----------------- .../minres_solver_apply_10000ms.patch | 26 ----------------- .../minres_solver_apply_1000ms.patch | 26 ----------------- .../minres_solver_apply_100ms.patch | 26 ----------------- .../minres_solver_apply_10ms.patch | 26 ----------------- .../minres_solver_apply_1ms.patch | 26 ----------------- ...ardson_preconditioner_create_10000ms.patch | 22 --------------- ...hardson_preconditioner_create_1000ms.patch | 22 --------------- ...chardson_preconditioner_create_100ms.patch | 22 --------------- ...ichardson_preconditioner_create_10ms.patch | 22 --------------- ...richardson_preconditioner_create_1ms.patch | 22 --------------- ...seqilu_preconditioner_create_10000ms.patch | 22 --------------- .../seqilu_preconditioner_create_1000ms.patch | 22 --------------- .../seqilu_preconditioner_create_100ms.patch | 22 --------------- .../seqilu_preconditioner_create_10ms.patch | 22 --------------- .../seqilu_preconditioner_create_1ms.patch | 22 --------------- ...eqssor_preconditioner_create_10000ms.patch | 22 --------------- ...seqssor_preconditioner_create_1000ms.patch | 22 --------------- .../seqssor_preconditioner_create_100ms.patch | 22 --------------- .../seqssor_preconditioner_create_10ms.patch | 22 --------------- .../seqssor_preconditioner_create_1ms.patch | 22 --------------- .../tri_unit_cube_maker_create_10000ms.patch | 25 ----------------- .../tri_unit_cube_maker_create_1000ms.patch | 25 ----------------- .../tri_unit_cube_maker_create_100ms.patch | 25 ----------------- .../tri_unit_cube_maker_create_10ms.patch | 25 ----------------- .../tri_unit_cube_maker_create_1ms.patch | 25 ----------------- ...tri_unit_square_maker_create_10000ms.patch | 25 ----------------- .../tri_unit_square_maker_create_1000ms.patch | 25 ----------------- .../tri_unit_square_maker_create_100ms.patch | 25 ----------------- .../tri_unit_square_maker_create_10ms.patch | 25 ----------------- .../tri_unit_square_maker_create_1ms.patch | 25 ----------------- .../ug_grid_adapt_10000ms.patch | 28 ------------------- DunePerfRegression/ug_grid_adapt_1000ms.patch | 28 ------------------- DunePerfRegression/ug_grid_adapt_100ms.patch | 28 ------------------- DunePerfRegression/ug_grid_adapt_10ms.patch | 28 ------------------- DunePerfRegression/ug_grid_adapt_1ms.patch | 28 ------------------- .../unit_tetra_maker_create_10000ms.patch | 25 ----------------- .../unit_tetra_maker_create_1000ms.patch | 25 ----------------- .../unit_tetra_maker_create_100ms.patch | 25 ----------------- .../unit_tetra_maker_create_10ms.patch | 25 ----------------- .../unit_tetra_maker_create_1ms.patch | 25 ----------------- .../unit_tri_maker_create_10000ms.patch | 25 ----------------- .../unit_tri_maker_create_1000ms.patch | 25 ----------------- .../unit_tri_maker_create_100ms.patch | 25 ----------------- .../unit_tri_maker_create_10ms.patch | 25 ----------------- .../unit_tri_maker_create_1ms.patch | 25 ----------------- .../yasp_grid_adapt_10000ms.patch | 27 ------------------ .../yasp_grid_adapt_1000ms.patch | 27 ------------------ .../yasp_grid_adapt_100ms.patch | 27 ------------------ DunePerfRegression/yasp_grid_adapt_10ms.patch | 27 ------------------ DunePerfRegression/yasp_grid_adapt_1ms.patch | 27 ------------------ 80 files changed, 1990 deletions(-) diff --git a/DunePerfRegression/alu_grid_adapt_10000ms.patch b/DunePerfRegression/alu_grid_adapt_10000ms.patch index 8cebed8..ab35cdd 100644 --- a/DunePerfRegression/alu_grid_adapt_10000ms.patch +++ b/DunePerfRegression/alu_grid_adapt_10000ms.patch @@ -3,28 +3,6 @@ diff --git a/dune-alugrid/dune/alugrid/3d/grid_inline.hh b/dune-alugrid/dune/alu index f7e1b5d1..785c4bea 100644 --- a/dune-alugrid/dune/alugrid/3d/grid_inline.hh +++ b/dune-alugrid/dune/alugrid/3d/grid_inline.hh -@@ -13,6 +13,21 @@ - - #define alu_inline_tmp inline - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - @@ -515,6 +530,8 @@ namespace Dune alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () diff --git a/DunePerfRegression/alu_grid_adapt_1000ms.patch b/DunePerfRegression/alu_grid_adapt_1000ms.patch index 871fba4..8440e29 100644 --- a/DunePerfRegression/alu_grid_adapt_1000ms.patch +++ b/DunePerfRegression/alu_grid_adapt_1000ms.patch @@ -3,28 +3,6 @@ diff --git a/dune-alugrid/dune/alugrid/3d/grid_inline.hh b/dune-alugrid/dune/alu index f7e1b5d1..0d776882 100644 --- a/dune-alugrid/dune/alugrid/3d/grid_inline.hh +++ b/dune-alugrid/dune/alugrid/3d/grid_inline.hh -@@ -13,6 +13,21 @@ - - #define alu_inline_tmp inline - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - @@ -515,6 +530,8 @@ namespace Dune alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () diff --git a/DunePerfRegression/alu_grid_adapt_100ms.patch b/DunePerfRegression/alu_grid_adapt_100ms.patch index 0025144..0e65153 100644 --- a/DunePerfRegression/alu_grid_adapt_100ms.patch +++ b/DunePerfRegression/alu_grid_adapt_100ms.patch @@ -3,28 +3,6 @@ diff --git a/dune-alugrid/dune/alugrid/3d/grid_inline.hh b/dune-alugrid/dune/alu index f7e1b5d1..f890b952 100644 --- a/dune-alugrid/dune/alugrid/3d/grid_inline.hh +++ b/dune-alugrid/dune/alugrid/3d/grid_inline.hh -@@ -13,6 +13,21 @@ - - #define alu_inline_tmp inline - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - @@ -515,6 +530,8 @@ namespace Dune alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () diff --git a/DunePerfRegression/alu_grid_adapt_10ms.patch b/DunePerfRegression/alu_grid_adapt_10ms.patch index b5b0253..3b634e7 100644 --- a/DunePerfRegression/alu_grid_adapt_10ms.patch +++ b/DunePerfRegression/alu_grid_adapt_10ms.patch @@ -3,28 +3,6 @@ diff --git a/dune-alugrid/dune/alugrid/3d/grid_inline.hh b/dune-alugrid/dune/alu index f7e1b5d1..55955dc0 100644 --- a/dune-alugrid/dune/alugrid/3d/grid_inline.hh +++ b/dune-alugrid/dune/alugrid/3d/grid_inline.hh -@@ -13,6 +13,21 @@ - - #define alu_inline_tmp inline - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - @@ -515,6 +530,8 @@ namespace Dune alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () diff --git a/DunePerfRegression/alu_grid_adapt_1ms.patch b/DunePerfRegression/alu_grid_adapt_1ms.patch index 7d8f0d8..64eafc4 100644 --- a/DunePerfRegression/alu_grid_adapt_1ms.patch +++ b/DunePerfRegression/alu_grid_adapt_1ms.patch @@ -3,28 +3,6 @@ diff --git a/dune-alugrid/dune/alugrid/3d/grid_inline.hh b/dune-alugrid/dune/alu index f7e1b5d1..124dd058 100644 --- a/dune-alugrid/dune/alugrid/3d/grid_inline.hh +++ b/dune-alugrid/dune/alugrid/3d/grid_inline.hh -@@ -13,6 +13,21 @@ - - #define alu_inline_tmp inline - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - @@ -515,6 +530,8 @@ namespace Dune alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () diff --git a/DunePerfRegression/bicgstab_solver_apply_10000ms.patch b/DunePerfRegression/bicgstab_solver_apply_10000ms.patch index 6c5e5ff..bb5c9af 100644 --- a/DunePerfRegression/bicgstab_solver_apply_10000ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_10000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a8a37b31 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/bicgstab_solver_apply_1000ms.patch b/DunePerfRegression/bicgstab_solver_apply_1000ms.patch index 2703dea..d37f841 100644 --- a/DunePerfRegression/bicgstab_solver_apply_1000ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_1000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a8a37b31 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/bicgstab_solver_apply_100ms.patch b/DunePerfRegression/bicgstab_solver_apply_100ms.patch index 96d3da8..9bf8489 100644 --- a/DunePerfRegression/bicgstab_solver_apply_100ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_100ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a8a37b31 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/bicgstab_solver_apply_10ms.patch b/DunePerfRegression/bicgstab_solver_apply_10ms.patch index 6e79152..61b2b8b 100644 --- a/DunePerfRegression/bicgstab_solver_apply_10ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_10ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a8a37b31 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/bicgstab_solver_apply_1ms.patch b/DunePerfRegression/bicgstab_solver_apply_1ms.patch index adfa9c3..bfbf73f 100644 --- a/DunePerfRegression/bicgstab_solver_apply_1ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_1ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a8a37b31 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/cg_solver_apply_10000ms.patch b/DunePerfRegression/cg_solver_apply_10000ms.patch index 1408bb8..6ce0d94 100644 --- a/DunePerfRegression/cg_solver_apply_10000ms.patch +++ b/DunePerfRegression/cg_solver_apply_10000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..b4528c22 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/cg_solver_apply_1000ms.patch b/DunePerfRegression/cg_solver_apply_1000ms.patch index d45b5cf..e39d180 100644 --- a/DunePerfRegression/cg_solver_apply_1000ms.patch +++ b/DunePerfRegression/cg_solver_apply_1000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..b4528c22 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/cg_solver_apply_100ms.patch b/DunePerfRegression/cg_solver_apply_100ms.patch index decb8fb..4228011 100644 --- a/DunePerfRegression/cg_solver_apply_100ms.patch +++ b/DunePerfRegression/cg_solver_apply_100ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..b4528c22 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/cg_solver_apply_10ms.patch b/DunePerfRegression/cg_solver_apply_10ms.patch index 5caf6f1..e91e80c 100644 --- a/DunePerfRegression/cg_solver_apply_10ms.patch +++ b/DunePerfRegression/cg_solver_apply_10ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..b4528c22 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/cg_solver_apply_1ms.patch b/DunePerfRegression/cg_solver_apply_1ms.patch index 415d44e..a1781ae 100644 --- a/DunePerfRegression/cg_solver_apply_1ms.patch +++ b/DunePerfRegression/cg_solver_apply_1ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..b4528c22 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/gradient_solver_apply_10000ms.patch b/DunePerfRegression/gradient_solver_apply_10000ms.patch index 7e797c9..b1f944a 100644 --- a/DunePerfRegression/gradient_solver_apply_10000ms.patch +++ b/DunePerfRegression/gradient_solver_apply_10000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..e57b4dd0 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/gradient_solver_apply_1000ms.patch b/DunePerfRegression/gradient_solver_apply_1000ms.patch index 94c3677..cbe669c 100644 --- a/DunePerfRegression/gradient_solver_apply_1000ms.patch +++ b/DunePerfRegression/gradient_solver_apply_1000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..e57b4dd0 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/gradient_solver_apply_100ms.patch b/DunePerfRegression/gradient_solver_apply_100ms.patch index c8125b0..4f8f3a2 100644 --- a/DunePerfRegression/gradient_solver_apply_100ms.patch +++ b/DunePerfRegression/gradient_solver_apply_100ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..e57b4dd0 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/gradient_solver_apply_10ms.patch b/DunePerfRegression/gradient_solver_apply_10ms.patch index d6790cc..ef1ff3e 100644 --- a/DunePerfRegression/gradient_solver_apply_10ms.patch +++ b/DunePerfRegression/gradient_solver_apply_10ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..e57b4dd0 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/gradient_solver_apply_1ms.patch b/DunePerfRegression/gradient_solver_apply_1ms.patch index db7c34a..920ed15 100644 --- a/DunePerfRegression/gradient_solver_apply_1ms.patch +++ b/DunePerfRegression/gradient_solver_apply_1ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..e57b4dd0 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_10000ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_10000ms.patch index d7a6f3c..71d9271 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_10000ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_10000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..d595565 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_1000ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_1000ms.patch index 8f80868..bdfc185 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_1000ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_1000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..8653626 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_100ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_100ms.patch index 025d7d5..3a41208 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_100ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_100ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..4393a1f 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_10ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_10ms.patch index 1630dd5..a1c3275 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_10ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_10ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..d400286 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_1ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_1ms.patch index 025ab4a..57d6b27 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_1ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_1ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..077bf3f 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/loop_solver_apply_10000ms.patch b/DunePerfRegression/loop_solver_apply_10000ms.patch index cc4fc9b..ea6dd89 100644 --- a/DunePerfRegression/loop_solver_apply_10000ms.patch +++ b/DunePerfRegression/loop_solver_apply_10000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..2b29e5f1 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/loop_solver_apply_1000ms.patch b/DunePerfRegression/loop_solver_apply_1000ms.patch index 615660b..f5fe24f 100644 --- a/DunePerfRegression/loop_solver_apply_1000ms.patch +++ b/DunePerfRegression/loop_solver_apply_1000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..2b29e5f1 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/loop_solver_apply_100ms.patch b/DunePerfRegression/loop_solver_apply_100ms.patch index 329da61..641bdbb 100644 --- a/DunePerfRegression/loop_solver_apply_100ms.patch +++ b/DunePerfRegression/loop_solver_apply_100ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..2b29e5f1 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/loop_solver_apply_10ms.patch b/DunePerfRegression/loop_solver_apply_10ms.patch index 30c15fe..58a1ef5 100644 --- a/DunePerfRegression/loop_solver_apply_10ms.patch +++ b/DunePerfRegression/loop_solver_apply_10ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..2b29e5f1 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/loop_solver_apply_1ms.patch b/DunePerfRegression/loop_solver_apply_1ms.patch index 194ea13..46411c3 100644 --- a/DunePerfRegression/loop_solver_apply_1ms.patch +++ b/DunePerfRegression/loop_solver_apply_1ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..2b29e5f1 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/minres_solver_apply_10000ms.patch b/DunePerfRegression/minres_solver_apply_10000ms.patch index b37fcee..2de96cc 100644 --- a/DunePerfRegression/minres_solver_apply_10000ms.patch +++ b/DunePerfRegression/minres_solver_apply_10000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a23b36fc 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/minres_solver_apply_1000ms.patch b/DunePerfRegression/minres_solver_apply_1000ms.patch index bd33c2a..668676d 100644 --- a/DunePerfRegression/minres_solver_apply_1000ms.patch +++ b/DunePerfRegression/minres_solver_apply_1000ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a23b36fc 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/minres_solver_apply_100ms.patch b/DunePerfRegression/minres_solver_apply_100ms.patch index c606370..3d11a53 100644 --- a/DunePerfRegression/minres_solver_apply_100ms.patch +++ b/DunePerfRegression/minres_solver_apply_100ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a23b36fc 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/minres_solver_apply_10ms.patch b/DunePerfRegression/minres_solver_apply_10ms.patch index cf7d231..2dd33f1 100644 --- a/DunePerfRegression/minres_solver_apply_10ms.patch +++ b/DunePerfRegression/minres_solver_apply_10ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a23b36fc 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/minres_solver_apply_1ms.patch b/DunePerfRegression/minres_solver_apply_1ms.patch index e08103a..e07ba0b 100644 --- a/DunePerfRegression/minres_solver_apply_1ms.patch +++ b/DunePerfRegression/minres_solver_apply_1ms.patch @@ -1,30 +1,4 @@ Submodule dune-istl contains modified content -diff --git a/dune-istl/dune/istl/solver.hh b/dune-istl/dune/istl/solver.hh -index e25e9e08..857234d5 100644 ---- a/dune-istl/dune/istl/solver.hh -+++ b/dune-istl/dune/istl/solver.hh -@@ -23,6 +23,21 @@ - #include "operators.hh" - #include "scalarproducts.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - namespace Dune - { - /** diff --git a/dune-istl/dune/istl/solvers.hh b/dune-istl/dune/istl/solvers.hh index 5a7e901e..a23b36fc 100644 --- a/dune-istl/dune/istl/solvers.hh diff --git a/DunePerfRegression/richardson_preconditioner_create_10000ms.patch b/DunePerfRegression/richardson_preconditioner_create_10000ms.patch index dc7ae24..146fe35 100644 --- a/DunePerfRegression/richardson_preconditioner_create_10000ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_10000ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index b7c7d74..1fe0833 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -151,6 +166,7 @@ struct PreconditionerMaker { typename DomainContainerTy, typename RangeContainerTy> diff --git a/DunePerfRegression/richardson_preconditioner_create_1000ms.patch b/DunePerfRegression/richardson_preconditioner_create_1000ms.patch index 2d7afeb..a7bb587 100644 --- a/DunePerfRegression/richardson_preconditioner_create_1000ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_1000ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index b7c7d74..5e2d4df 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -151,6 +166,7 @@ struct PreconditionerMaker { typename DomainContainerTy, typename RangeContainerTy> diff --git a/DunePerfRegression/richardson_preconditioner_create_100ms.patch b/DunePerfRegression/richardson_preconditioner_create_100ms.patch index 9896006..50d5510 100644 --- a/DunePerfRegression/richardson_preconditioner_create_100ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_100ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index b7c7d74..c766fab 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -151,6 +166,7 @@ struct PreconditionerMaker { typename DomainContainerTy, typename RangeContainerTy> diff --git a/DunePerfRegression/richardson_preconditioner_create_10ms.patch b/DunePerfRegression/richardson_preconditioner_create_10ms.patch index 5152c7b..1912973 100644 --- a/DunePerfRegression/richardson_preconditioner_create_10ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_10ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index b7c7d74..cc3ef15 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -151,6 +166,7 @@ struct PreconditionerMaker { typename DomainContainerTy, typename RangeContainerTy> diff --git a/DunePerfRegression/richardson_preconditioner_create_1ms.patch b/DunePerfRegression/richardson_preconditioner_create_1ms.patch index 62cc998..0cddf0c 100644 --- a/DunePerfRegression/richardson_preconditioner_create_1ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_1ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index b7c7d74..af9bdf6 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -151,6 +166,7 @@ struct PreconditionerMaker { typename DomainContainerTy, typename RangeContainerTy> diff --git a/DunePerfRegression/seqilu_preconditioner_create_10000ms.patch b/DunePerfRegression/seqilu_preconditioner_create_10000ms.patch index 08c01a5..24a1ca5 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_10000ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_10000ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..75901e6 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -139,6 +154,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/seqilu_preconditioner_create_1000ms.patch b/DunePerfRegression/seqilu_preconditioner_create_1000ms.patch index d8153f4..3722372 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_1000ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_1000ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..18b73dc 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -139,6 +154,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/seqilu_preconditioner_create_100ms.patch b/DunePerfRegression/seqilu_preconditioner_create_100ms.patch index f57894e..a2754d7 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_100ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_100ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..1228788 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -139,6 +154,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/seqilu_preconditioner_create_10ms.patch b/DunePerfRegression/seqilu_preconditioner_create_10ms.patch index 1e5d3e1..33f08bc 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_10ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_10ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..57822e5 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -139,6 +154,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/seqilu_preconditioner_create_1ms.patch b/DunePerfRegression/seqilu_preconditioner_create_1ms.patch index 9d885a8..34ad4a1 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_1ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_1ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..d084320 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -139,6 +154,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/seqssor_preconditioner_create_10000ms.patch b/DunePerfRegression/seqssor_preconditioner_create_10000ms.patch index b282871..a6ec22e 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_10000ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_10000ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..c09c1b7 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -126,6 +141,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/seqssor_preconditioner_create_1000ms.patch b/DunePerfRegression/seqssor_preconditioner_create_1000ms.patch index 23b0f0a..c957873 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_1000ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_1000ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..b8646b9 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -126,6 +141,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/seqssor_preconditioner_create_100ms.patch b/DunePerfRegression/seqssor_preconditioner_create_100ms.patch index cd50003..253a767 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_100ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_100ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..6489f40 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -126,6 +141,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/seqssor_preconditioner_create_10ms.patch b/DunePerfRegression/seqssor_preconditioner_create_10ms.patch index eaecda7..aaffe81 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_10ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_10ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..5947703 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -126,6 +141,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/seqssor_preconditioner_create_1ms.patch b/DunePerfRegression/seqssor_preconditioner_create_1ms.patch index 7c9c220..e37696d 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_1ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_1ms.patch @@ -2,28 +2,6 @@ diff --git a/dune-performance-regressions/dune/performance-regressions/poisson-p index 5c17d2b..c244a02 100644 --- a/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh +++ b/dune-performance-regressions/dune/performance-regressions/poisson-problem.hh -@@ -26,6 +26,21 @@ - - #include "gridmakers.hh" - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - class YaspUnitSquare : public Dune::YaspGrid<2> - { - public: @@ -126,6 +141,7 @@ struct PreconditionerMaker { typename RangeContainerTy> static auto create(MatrixTy m) { diff --git a/DunePerfRegression/tri_unit_cube_maker_create_10000ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_10000ms.patch index d9a9734..f96f639 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_10000ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_10000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..1cabc84 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/tri_unit_cube_maker_create_1000ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_1000ms.patch index 0e99d2c..14662c2 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_1000ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_1000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..210a1cc 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/tri_unit_cube_maker_create_100ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_100ms.patch index e541079..c760f35 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_100ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_100ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..2576709 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/tri_unit_cube_maker_create_10ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_10ms.patch index 730361e..3ec70ad 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_10ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_10ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..c92e57e 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/tri_unit_cube_maker_create_1ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_1ms.patch index 062bdb3..1d672d3 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_1ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_1ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..88d398c 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/tri_unit_square_maker_create_10000ms.patch b/DunePerfRegression/tri_unit_square_maker_create_10000ms.patch index a0e379a..1d516b5 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_10000ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_10000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..e8be103 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/tri_unit_square_maker_create_1000ms.patch b/DunePerfRegression/tri_unit_square_maker_create_1000ms.patch index 840f000..c84d280 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_1000ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_1000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..2a4d738 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/tri_unit_square_maker_create_100ms.patch b/DunePerfRegression/tri_unit_square_maker_create_100ms.patch index 4bc68a0..ee430cc 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_100ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_100ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..7f2af61 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/tri_unit_square_maker_create_10ms.patch b/DunePerfRegression/tri_unit_square_maker_create_10ms.patch index da3b238..8c103bd 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_10ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_10ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..ad1209b 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/tri_unit_square_maker_create_1ms.patch b/DunePerfRegression/tri_unit_square_maker_create_1ms.patch index fc436b7..11b19c0 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_1ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_1ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..89930cc 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/ug_grid_adapt_10000ms.patch b/DunePerfRegression/ug_grid_adapt_10000ms.patch index 2e0d409..42d491d 100644 --- a/DunePerfRegression/ug_grid_adapt_10000ms.patch +++ b/DunePerfRegression/ug_grid_adapt_10000ms.patch @@ -1,32 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/uggrid.hh b/dune-grid/dune/grid/uggrid.hh -index b97686180..10b6d14e2 100644 ---- a/dune-grid/dune/grid/uggrid.hh -+++ b/dune-grid/dune/grid/uggrid.hh -@@ -813,5 +813,23 @@ namespace Dune { - - } // namespace Dune - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // HAVE_DUNE_UGGRID || DOXYGEN - #endif // DUNE_UGGRID_HH diff --git a/dune-grid/dune/grid/uggrid/uggrid.cc b/dune-grid/dune/grid/uggrid/uggrid.cc index 9a49416eb..3ee6a4a42 100644 --- a/dune-grid/dune/grid/uggrid/uggrid.cc diff --git a/DunePerfRegression/ug_grid_adapt_1000ms.patch b/DunePerfRegression/ug_grid_adapt_1000ms.patch index c0724b8..dcf5ca6 100644 --- a/DunePerfRegression/ug_grid_adapt_1000ms.patch +++ b/DunePerfRegression/ug_grid_adapt_1000ms.patch @@ -1,32 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/uggrid.hh b/dune-grid/dune/grid/uggrid.hh -index b97686180..10b6d14e2 100644 ---- a/dune-grid/dune/grid/uggrid.hh -+++ b/dune-grid/dune/grid/uggrid.hh -@@ -813,5 +813,23 @@ namespace Dune { - - } // namespace Dune - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // HAVE_DUNE_UGGRID || DOXYGEN - #endif // DUNE_UGGRID_HH diff --git a/dune-grid/dune/grid/uggrid/uggrid.cc b/dune-grid/dune/grid/uggrid/uggrid.cc index 9a49416eb..bcf310a00 100644 --- a/dune-grid/dune/grid/uggrid/uggrid.cc diff --git a/DunePerfRegression/ug_grid_adapt_100ms.patch b/DunePerfRegression/ug_grid_adapt_100ms.patch index 99e50f7..2c451a9 100644 --- a/DunePerfRegression/ug_grid_adapt_100ms.patch +++ b/DunePerfRegression/ug_grid_adapt_100ms.patch @@ -1,32 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/uggrid.hh b/dune-grid/dune/grid/uggrid.hh -index b97686180..10b6d14e2 100644 ---- a/dune-grid/dune/grid/uggrid.hh -+++ b/dune-grid/dune/grid/uggrid.hh -@@ -813,5 +813,23 @@ namespace Dune { - - } // namespace Dune - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // HAVE_DUNE_UGGRID || DOXYGEN - #endif // DUNE_UGGRID_HH diff --git a/dune-grid/dune/grid/uggrid/uggrid.cc b/dune-grid/dune/grid/uggrid/uggrid.cc index 9a49416eb..ee8e2be9a 100644 --- a/dune-grid/dune/grid/uggrid/uggrid.cc diff --git a/DunePerfRegression/ug_grid_adapt_10ms.patch b/DunePerfRegression/ug_grid_adapt_10ms.patch index 4dbc1e2..165526f 100644 --- a/DunePerfRegression/ug_grid_adapt_10ms.patch +++ b/DunePerfRegression/ug_grid_adapt_10ms.patch @@ -1,32 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/uggrid.hh b/dune-grid/dune/grid/uggrid.hh -index b97686180..10b6d14e2 100644 ---- a/dune-grid/dune/grid/uggrid.hh -+++ b/dune-grid/dune/grid/uggrid.hh -@@ -813,5 +813,23 @@ namespace Dune { - - } // namespace Dune - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // HAVE_DUNE_UGGRID || DOXYGEN - #endif // DUNE_UGGRID_HH diff --git a/dune-grid/dune/grid/uggrid/uggrid.cc b/dune-grid/dune/grid/uggrid/uggrid.cc index 9a49416eb..d6ea45992 100644 --- a/dune-grid/dune/grid/uggrid/uggrid.cc diff --git a/DunePerfRegression/ug_grid_adapt_1ms.patch b/DunePerfRegression/ug_grid_adapt_1ms.patch index 4bad3a2..44a7aa6 100644 --- a/DunePerfRegression/ug_grid_adapt_1ms.patch +++ b/DunePerfRegression/ug_grid_adapt_1ms.patch @@ -1,32 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/uggrid.hh b/dune-grid/dune/grid/uggrid.hh -index b97686180..10b6d14e2 100644 ---- a/dune-grid/dune/grid/uggrid.hh -+++ b/dune-grid/dune/grid/uggrid.hh -@@ -813,5 +813,23 @@ namespace Dune { - - } // namespace Dune - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // HAVE_DUNE_UGGRID || DOXYGEN - #endif // DUNE_UGGRID_HH diff --git a/dune-grid/dune/grid/uggrid/uggrid.cc b/dune-grid/dune/grid/uggrid/uggrid.cc index 9a49416eb..9a8fe1a54 100644 --- a/dune-grid/dune/grid/uggrid/uggrid.cc diff --git a/DunePerfRegression/unit_tetra_maker_create_10000ms.patch b/DunePerfRegression/unit_tetra_maker_create_10000ms.patch index ce30d30..0cc1beb 100644 --- a/DunePerfRegression/unit_tetra_maker_create_10000ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_10000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..a1e731a 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/unit_tetra_maker_create_1000ms.patch b/DunePerfRegression/unit_tetra_maker_create_1000ms.patch index 8b11d56..148cd76 100644 --- a/DunePerfRegression/unit_tetra_maker_create_1000ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_1000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..ccad8ba 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/unit_tetra_maker_create_100ms.patch b/DunePerfRegression/unit_tetra_maker_create_100ms.patch index 55d8453..7f64262 100644 --- a/DunePerfRegression/unit_tetra_maker_create_100ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_100ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..0914ded 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/unit_tetra_maker_create_10ms.patch b/DunePerfRegression/unit_tetra_maker_create_10ms.patch index db7a22d..a5cd770 100644 --- a/DunePerfRegression/unit_tetra_maker_create_10ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_10ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..f48d6ae 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/unit_tetra_maker_create_1ms.patch b/DunePerfRegression/unit_tetra_maker_create_1ms.patch index 49ff04f..04f0c03 100644 --- a/DunePerfRegression/unit_tetra_maker_create_1ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_1ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..11a3701 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/unit_tri_maker_create_10000ms.patch b/DunePerfRegression/unit_tri_maker_create_10000ms.patch index 0f2f9de..143d4d5 100644 --- a/DunePerfRegression/unit_tri_maker_create_10000ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_10000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..0baabab 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/unit_tri_maker_create_1000ms.patch b/DunePerfRegression/unit_tri_maker_create_1000ms.patch index aa78cd1..7aa1ded 100644 --- a/DunePerfRegression/unit_tri_maker_create_1000ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_1000ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..596da84 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/unit_tri_maker_create_100ms.patch b/DunePerfRegression/unit_tri_maker_create_100ms.patch index 88b20ac..42e1d1b 100644 --- a/DunePerfRegression/unit_tri_maker_create_100ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_100ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..1f1989d 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/unit_tri_maker_create_10ms.patch b/DunePerfRegression/unit_tri_maker_create_10ms.patch index 3d8075d..973635d 100644 --- a/DunePerfRegression/unit_tri_maker_create_10ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_10ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..ae5a40f 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/unit_tri_maker_create_1ms.patch b/DunePerfRegression/unit_tri_maker_create_1ms.patch index 115e6d1..2019f57 100644 --- a/DunePerfRegression/unit_tri_maker_create_1ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_1ms.patch @@ -1,28 +1,3 @@ -Submodule dune-alugrid contains modified content -diff --git a/dune-alugrid/dune/alugrid/grid.hh b/dune-alugrid/dune/alugrid/grid.hh -index b8fea0a9..4f877c5c 100644 ---- a/dune-alugrid/dune/alugrid/grid.hh -+++ b/dune-alugrid/dune/alugrid/grid.hh -@@ -23,4 +23,19 @@ - - #endif // else if HAVE_ALUGRID - -+inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+} -+ - #endif // #ifndef DUNE_ALUGRID_HH diff --git a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh b/dune-performance-regressions/dune/performance-regressions/gridmakers.hh index e088ff8..27c1282 100644 --- a/dune-performance-regressions/dune/performance-regressions/gridmakers.hh diff --git a/DunePerfRegression/yasp_grid_adapt_10000ms.patch b/DunePerfRegression/yasp_grid_adapt_10000ms.patch index 5d1e157..7b11c6d 100644 --- a/DunePerfRegression/yasp_grid_adapt_10000ms.patch +++ b/DunePerfRegression/yasp_grid_adapt_10000ms.patch @@ -1,31 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/common/grid.hh b/dune-grid/dune/grid/common/grid.hh -index 7e3899876..f070a144e 100644 ---- a/dune-grid/dune/grid/common/grid.hh -+++ b/dune-grid/dune/grid/common/grid.hh -@@ -1120,4 +1120,22 @@ namespace Dune { - #include "entityiterator.hh" - #include "indexidset.hh" - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // #ifndef DUNE_GRID_COMMON_GRID_HH diff --git a/dune-grid/dune/grid/yaspgrid.hh b/dune-grid/dune/grid/yaspgrid.hh index 078d70424..eb679e61a 100644 --- a/dune-grid/dune/grid/yaspgrid.hh diff --git a/DunePerfRegression/yasp_grid_adapt_1000ms.patch b/DunePerfRegression/yasp_grid_adapt_1000ms.patch index e0bf9ae..b805475 100644 --- a/DunePerfRegression/yasp_grid_adapt_1000ms.patch +++ b/DunePerfRegression/yasp_grid_adapt_1000ms.patch @@ -1,31 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/common/grid.hh b/dune-grid/dune/grid/common/grid.hh -index 7e3899876..f070a144e 100644 ---- a/dune-grid/dune/grid/common/grid.hh -+++ b/dune-grid/dune/grid/common/grid.hh -@@ -1120,4 +1120,22 @@ namespace Dune { - #include "entityiterator.hh" - #include "indexidset.hh" - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // #ifndef DUNE_GRID_COMMON_GRID_HH diff --git a/dune-grid/dune/grid/yaspgrid.hh b/dune-grid/dune/grid/yaspgrid.hh index 078d70424..25af86d6c 100644 --- a/dune-grid/dune/grid/yaspgrid.hh diff --git a/DunePerfRegression/yasp_grid_adapt_100ms.patch b/DunePerfRegression/yasp_grid_adapt_100ms.patch index 1a415ca..e7c88d9 100644 --- a/DunePerfRegression/yasp_grid_adapt_100ms.patch +++ b/DunePerfRegression/yasp_grid_adapt_100ms.patch @@ -1,31 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/common/grid.hh b/dune-grid/dune/grid/common/grid.hh -index 7e3899876..f070a144e 100644 ---- a/dune-grid/dune/grid/common/grid.hh -+++ b/dune-grid/dune/grid/common/grid.hh -@@ -1120,4 +1120,22 @@ namespace Dune { - #include "entityiterator.hh" - #include "indexidset.hh" - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // #ifndef DUNE_GRID_COMMON_GRID_HH diff --git a/dune-grid/dune/grid/yaspgrid.hh b/dune-grid/dune/grid/yaspgrid.hh index 078d70424..b3992daee 100644 --- a/dune-grid/dune/grid/yaspgrid.hh diff --git a/DunePerfRegression/yasp_grid_adapt_10ms.patch b/DunePerfRegression/yasp_grid_adapt_10ms.patch index beadfdb..0ebb3c1 100644 --- a/DunePerfRegression/yasp_grid_adapt_10ms.patch +++ b/DunePerfRegression/yasp_grid_adapt_10ms.patch @@ -1,31 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/common/grid.hh b/dune-grid/dune/grid/common/grid.hh -index 7e3899876..f070a144e 100644 ---- a/dune-grid/dune/grid/common/grid.hh -+++ b/dune-grid/dune/grid/common/grid.hh -@@ -1120,4 +1120,22 @@ namespace Dune { - #include "entityiterator.hh" - #include "indexidset.hh" - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // #ifndef DUNE_GRID_COMMON_GRID_HH diff --git a/dune-grid/dune/grid/yaspgrid.hh b/dune-grid/dune/grid/yaspgrid.hh index 078d70424..7ea12eebc 100644 --- a/dune-grid/dune/grid/yaspgrid.hh diff --git a/DunePerfRegression/yasp_grid_adapt_1ms.patch b/DunePerfRegression/yasp_grid_adapt_1ms.patch index f30ff14..7a44a35 100644 --- a/DunePerfRegression/yasp_grid_adapt_1ms.patch +++ b/DunePerfRegression/yasp_grid_adapt_1ms.patch @@ -1,31 +1,4 @@ Submodule dune-grid contains modified content -diff --git a/dune-grid/dune/grid/common/grid.hh b/dune-grid/dune/grid/common/grid.hh -index 7e3899876..f070a144e 100644 ---- a/dune-grid/dune/grid/common/grid.hh -+++ b/dune-grid/dune/grid/common/grid.hh -@@ -1120,4 +1120,22 @@ namespace Dune { - #include "entityiterator.hh" - #include "indexidset.hh" - -+namespace fp_util -+{ -+ inline void busy_sleep_for_millisecs(unsigned Millisecs) { -+ auto start_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ auto end_us = start_us + std::chrono::milliseconds(Millisecs); -+ auto current_us = start_us; -+ -+ while (current_us < end_us) { -+ for (long counter = 0; counter < 100'000; ++counter) { -+ asm volatile("" : "+g"(counter) : :); // prevent optimization -+ } -+ current_us = std::chrono::duration_cast( -+ std::chrono::high_resolution_clock::now().time_since_epoch()); -+ } -+ } -+} -+ - #endif // #ifndef DUNE_GRID_COMMON_GRID_HH diff --git a/dune-grid/dune/grid/yaspgrid.hh b/dune-grid/dune/grid/yaspgrid.hh index 078d70424..f1425281a 100644 --- a/dune-grid/dune/grid/yaspgrid.hh From be9d1fae05ad90f83f1f0c4d8090005f03d6528a Mon Sep 17 00:00:00 2001 From: Lukas Abelt Date: Sun, 26 Nov 2023 17:36:33 +0100 Subject: [PATCH 5/5] Added namespace to busy_sleep calls in regression patches for Dune --- DunePerfRegression/alu_grid_adapt_10000ms.patch | 2 +- DunePerfRegression/alu_grid_adapt_1000ms.patch | 2 +- DunePerfRegression/alu_grid_adapt_100ms.patch | 2 +- DunePerfRegression/alu_grid_adapt_10ms.patch | 2 +- DunePerfRegression/alu_grid_adapt_1ms.patch | 2 +- DunePerfRegression/bicgstab_solver_apply_10000ms.patch | 2 +- DunePerfRegression/bicgstab_solver_apply_1000ms.patch | 2 +- DunePerfRegression/bicgstab_solver_apply_100ms.patch | 2 +- DunePerfRegression/bicgstab_solver_apply_10ms.patch | 2 +- DunePerfRegression/bicgstab_solver_apply_1ms.patch | 2 +- DunePerfRegression/cg_solver_apply_10000ms.patch | 2 +- DunePerfRegression/cg_solver_apply_1000ms.patch | 2 +- DunePerfRegression/cg_solver_apply_100ms.patch | 2 +- DunePerfRegression/cg_solver_apply_10ms.patch | 2 +- DunePerfRegression/cg_solver_apply_1ms.patch | 2 +- DunePerfRegression/gradient_solver_apply_10000ms.patch | 2 +- DunePerfRegression/gradient_solver_apply_1000ms.patch | 2 +- DunePerfRegression/gradient_solver_apply_100ms.patch | 2 +- DunePerfRegression/gradient_solver_apply_10ms.patch | 2 +- DunePerfRegression/gradient_solver_apply_1ms.patch | 2 +- DunePerfRegression/kuhn_unit_cube_maker_create_10000ms.patch | 2 +- DunePerfRegression/kuhn_unit_cube_maker_create_1000ms.patch | 2 +- DunePerfRegression/kuhn_unit_cube_maker_create_100ms.patch | 2 +- DunePerfRegression/kuhn_unit_cube_maker_create_10ms.patch | 2 +- DunePerfRegression/kuhn_unit_cube_maker_create_1ms.patch | 2 +- DunePerfRegression/loop_solver_apply_10000ms.patch | 2 +- DunePerfRegression/loop_solver_apply_1000ms.patch | 2 +- DunePerfRegression/loop_solver_apply_100ms.patch | 2 +- DunePerfRegression/loop_solver_apply_10ms.patch | 2 +- DunePerfRegression/loop_solver_apply_1ms.patch | 2 +- DunePerfRegression/minres_solver_apply_10000ms.patch | 2 +- DunePerfRegression/minres_solver_apply_1000ms.patch | 2 +- DunePerfRegression/minres_solver_apply_100ms.patch | 2 +- DunePerfRegression/minres_solver_apply_10ms.patch | 2 +- DunePerfRegression/minres_solver_apply_1ms.patch | 2 +- .../richardson_preconditioner_create_10000ms.patch | 2 +- .../richardson_preconditioner_create_1000ms.patch | 2 +- .../richardson_preconditioner_create_100ms.patch | 2 +- .../richardson_preconditioner_create_10ms.patch | 2 +- DunePerfRegression/richardson_preconditioner_create_1ms.patch | 2 +- DunePerfRegression/seqilu_preconditioner_create_10000ms.patch | 2 +- DunePerfRegression/seqilu_preconditioner_create_1000ms.patch | 2 +- DunePerfRegression/seqilu_preconditioner_create_100ms.patch | 2 +- DunePerfRegression/seqilu_preconditioner_create_10ms.patch | 2 +- DunePerfRegression/seqilu_preconditioner_create_1ms.patch | 2 +- .../seqssor_preconditioner_create_10000ms.patch | 2 +- DunePerfRegression/seqssor_preconditioner_create_1000ms.patch | 2 +- DunePerfRegression/seqssor_preconditioner_create_100ms.patch | 2 +- DunePerfRegression/seqssor_preconditioner_create_10ms.patch | 2 +- DunePerfRegression/seqssor_preconditioner_create_1ms.patch | 2 +- DunePerfRegression/tri_unit_cube_maker_create_10000ms.patch | 2 +- DunePerfRegression/tri_unit_cube_maker_create_1000ms.patch | 2 +- DunePerfRegression/tri_unit_cube_maker_create_100ms.patch | 2 +- DunePerfRegression/tri_unit_cube_maker_create_10ms.patch | 2 +- DunePerfRegression/tri_unit_cube_maker_create_1ms.patch | 2 +- DunePerfRegression/tri_unit_square_maker_create_10000ms.patch | 4 ++-- DunePerfRegression/tri_unit_square_maker_create_1000ms.patch | 4 ++-- DunePerfRegression/tri_unit_square_maker_create_100ms.patch | 4 ++-- DunePerfRegression/tri_unit_square_maker_create_10ms.patch | 4 ++-- DunePerfRegression/tri_unit_square_maker_create_1ms.patch | 4 ++-- DunePerfRegression/unit_tetra_maker_create_10000ms.patch | 2 +- DunePerfRegression/unit_tetra_maker_create_1000ms.patch | 2 +- DunePerfRegression/unit_tetra_maker_create_100ms.patch | 2 +- DunePerfRegression/unit_tetra_maker_create_10ms.patch | 2 +- DunePerfRegression/unit_tetra_maker_create_1ms.patch | 2 +- DunePerfRegression/unit_tri_maker_create_10000ms.patch | 4 ++-- DunePerfRegression/unit_tri_maker_create_1000ms.patch | 4 ++-- DunePerfRegression/unit_tri_maker_create_100ms.patch | 4 ++-- DunePerfRegression/unit_tri_maker_create_10ms.patch | 4 ++-- DunePerfRegression/unit_tri_maker_create_1ms.patch | 4 ++-- 70 files changed, 80 insertions(+), 80 deletions(-) diff --git a/DunePerfRegression/alu_grid_adapt_10000ms.patch b/DunePerfRegression/alu_grid_adapt_10000ms.patch index ab35cdd..eb63e40 100644 --- a/DunePerfRegression/alu_grid_adapt_10000ms.patch +++ b/DunePerfRegression/alu_grid_adapt_10000ms.patch @@ -7,7 +7,7 @@ index f7e1b5d1..785c4bea 100644 alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () { -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); + bool ref = false; diff --git a/DunePerfRegression/alu_grid_adapt_1000ms.patch b/DunePerfRegression/alu_grid_adapt_1000ms.patch index 8440e29..42e8511 100644 --- a/DunePerfRegression/alu_grid_adapt_1000ms.patch +++ b/DunePerfRegression/alu_grid_adapt_1000ms.patch @@ -7,7 +7,7 @@ index f7e1b5d1..0d776882 100644 alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () { -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); + bool ref = false; diff --git a/DunePerfRegression/alu_grid_adapt_100ms.patch b/DunePerfRegression/alu_grid_adapt_100ms.patch index 0e65153..f811130 100644 --- a/DunePerfRegression/alu_grid_adapt_100ms.patch +++ b/DunePerfRegression/alu_grid_adapt_100ms.patch @@ -7,7 +7,7 @@ index f7e1b5d1..f890b952 100644 alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () { -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); + bool ref = false; diff --git a/DunePerfRegression/alu_grid_adapt_10ms.patch b/DunePerfRegression/alu_grid_adapt_10ms.patch index 3b634e7..d72cd9a 100644 --- a/DunePerfRegression/alu_grid_adapt_10ms.patch +++ b/DunePerfRegression/alu_grid_adapt_10ms.patch @@ -7,7 +7,7 @@ index f7e1b5d1..55955dc0 100644 alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () { -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); + bool ref = false; diff --git a/DunePerfRegression/alu_grid_adapt_1ms.patch b/DunePerfRegression/alu_grid_adapt_1ms.patch index 64eafc4..386f613 100644 --- a/DunePerfRegression/alu_grid_adapt_1ms.patch +++ b/DunePerfRegression/alu_grid_adapt_1ms.patch @@ -7,7 +7,7 @@ index f7e1b5d1..124dd058 100644 alu_inline_tmp bool ALU3dGrid< dim, dimworld, elType, Comm >::adapt () { -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); + bool ref = false; diff --git a/DunePerfRegression/bicgstab_solver_apply_10000ms.patch b/DunePerfRegression/bicgstab_solver_apply_10000ms.patch index bb5c9af..7ac486e 100644 --- a/DunePerfRegression/bicgstab_solver_apply_10000ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_10000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a8a37b31 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); + using std::abs; const Simd::Scalar EPSILON=1e-80; diff --git a/DunePerfRegression/bicgstab_solver_apply_1000ms.patch b/DunePerfRegression/bicgstab_solver_apply_1000ms.patch index d37f841..78e164b 100644 --- a/DunePerfRegression/bicgstab_solver_apply_1000ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_1000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a8a37b31 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); + using std::abs; const Simd::Scalar EPSILON=1e-80; diff --git a/DunePerfRegression/bicgstab_solver_apply_100ms.patch b/DunePerfRegression/bicgstab_solver_apply_100ms.patch index 9bf8489..3208256 100644 --- a/DunePerfRegression/bicgstab_solver_apply_100ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_100ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a8a37b31 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); + using std::abs; const Simd::Scalar EPSILON=1e-80; diff --git a/DunePerfRegression/bicgstab_solver_apply_10ms.patch b/DunePerfRegression/bicgstab_solver_apply_10ms.patch index 61b2b8b..61f6ba4 100644 --- a/DunePerfRegression/bicgstab_solver_apply_10ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_10ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a8a37b31 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); + using std::abs; const Simd::Scalar EPSILON=1e-80; diff --git a/DunePerfRegression/bicgstab_solver_apply_1ms.patch b/DunePerfRegression/bicgstab_solver_apply_1ms.patch index bfbf73f..5de0dca 100644 --- a/DunePerfRegression/bicgstab_solver_apply_1ms.patch +++ b/DunePerfRegression/bicgstab_solver_apply_1ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a8a37b31 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); + using std::abs; const Simd::Scalar EPSILON=1e-80; diff --git a/DunePerfRegression/cg_solver_apply_10000ms.patch b/DunePerfRegression/cg_solver_apply_10000ms.patch index 6ce0d94..c57d80a 100644 --- a/DunePerfRegression/cg_solver_apply_10000ms.patch +++ b/DunePerfRegression/cg_solver_apply_10000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..b4528c22 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); + Iteration iteration(*this,res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/cg_solver_apply_1000ms.patch b/DunePerfRegression/cg_solver_apply_1000ms.patch index e39d180..edc4d01 100644 --- a/DunePerfRegression/cg_solver_apply_1000ms.patch +++ b/DunePerfRegression/cg_solver_apply_1000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..b4528c22 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); + Iteration iteration(*this,res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/cg_solver_apply_100ms.patch b/DunePerfRegression/cg_solver_apply_100ms.patch index 4228011..977e5d5 100644 --- a/DunePerfRegression/cg_solver_apply_100ms.patch +++ b/DunePerfRegression/cg_solver_apply_100ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..b4528c22 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); + Iteration iteration(*this,res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/cg_solver_apply_10ms.patch b/DunePerfRegression/cg_solver_apply_10ms.patch index e91e80c..d93ed1a 100644 --- a/DunePerfRegression/cg_solver_apply_10ms.patch +++ b/DunePerfRegression/cg_solver_apply_10ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..b4528c22 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); + Iteration iteration(*this,res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/cg_solver_apply_1ms.patch b/DunePerfRegression/cg_solver_apply_1ms.patch index a1781ae..a6b5934 100644 --- a/DunePerfRegression/cg_solver_apply_1ms.patch +++ b/DunePerfRegression/cg_solver_apply_1ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..b4528c22 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); + Iteration iteration(*this,res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/gradient_solver_apply_10000ms.patch b/DunePerfRegression/gradient_solver_apply_10000ms.patch index b1f944a..9e5a5a2 100644 --- a/DunePerfRegression/gradient_solver_apply_10000ms.patch +++ b/DunePerfRegression/gradient_solver_apply_10000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..e57b4dd0 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); + Iteration iteration(*this, res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/gradient_solver_apply_1000ms.patch b/DunePerfRegression/gradient_solver_apply_1000ms.patch index cbe669c..73b9edb 100644 --- a/DunePerfRegression/gradient_solver_apply_1000ms.patch +++ b/DunePerfRegression/gradient_solver_apply_1000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..e57b4dd0 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); + Iteration iteration(*this, res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/gradient_solver_apply_100ms.patch b/DunePerfRegression/gradient_solver_apply_100ms.patch index 4f8f3a2..d5f9e5a 100644 --- a/DunePerfRegression/gradient_solver_apply_100ms.patch +++ b/DunePerfRegression/gradient_solver_apply_100ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..e57b4dd0 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); + Iteration iteration(*this, res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/gradient_solver_apply_10ms.patch b/DunePerfRegression/gradient_solver_apply_10ms.patch index ef1ff3e..b8ac231 100644 --- a/DunePerfRegression/gradient_solver_apply_10ms.patch +++ b/DunePerfRegression/gradient_solver_apply_10ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..e57b4dd0 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); + Iteration iteration(*this, res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/gradient_solver_apply_1ms.patch b/DunePerfRegression/gradient_solver_apply_1ms.patch index 920ed15..fb59f6b 100644 --- a/DunePerfRegression/gradient_solver_apply_1ms.patch +++ b/DunePerfRegression/gradient_solver_apply_1ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..e57b4dd0 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); + Iteration iteration(*this, res); _prec->pre(x,b); // prepare preconditioner diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_10000ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_10000ms.patch index 71d9271..1d16fd3 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_10000ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_10000ms.patch @@ -7,7 +7,7 @@ index e088ff8..d595565 100644 static std::unique_ptr create() { Dune::GridFactory gf; - -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); int fake_argc = 0; char **fake_argv = NULL; diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_1000ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_1000ms.patch index bdfc185..0009e17 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_1000ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_1000ms.patch @@ -7,7 +7,7 @@ index e088ff8..8653626 100644 static std::unique_ptr create() { Dune::GridFactory gf; - -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); int fake_argc = 0; char **fake_argv = NULL; diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_100ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_100ms.patch index 3a41208..ad2949c 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_100ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_100ms.patch @@ -7,7 +7,7 @@ index e088ff8..4393a1f 100644 static std::unique_ptr create() { Dune::GridFactory gf; - -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); int fake_argc = 0; char **fake_argv = NULL; diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_10ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_10ms.patch index a1c3275..011528f 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_10ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_10ms.patch @@ -7,7 +7,7 @@ index e088ff8..d400286 100644 static std::unique_ptr create() { Dune::GridFactory gf; - -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); int fake_argc = 0; char **fake_argv = NULL; diff --git a/DunePerfRegression/kuhn_unit_cube_maker_create_1ms.patch b/DunePerfRegression/kuhn_unit_cube_maker_create_1ms.patch index 57d6b27..608740d 100644 --- a/DunePerfRegression/kuhn_unit_cube_maker_create_1ms.patch +++ b/DunePerfRegression/kuhn_unit_cube_maker_create_1ms.patch @@ -7,7 +7,7 @@ index e088ff8..077bf3f 100644 static std::unique_ptr create() { Dune::GridFactory gf; - -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); int fake_argc = 0; char **fake_argv = NULL; diff --git a/DunePerfRegression/loop_solver_apply_10000ms.patch b/DunePerfRegression/loop_solver_apply_10000ms.patch index ea6dd89..357cbb0 100644 --- a/DunePerfRegression/loop_solver_apply_10000ms.patch +++ b/DunePerfRegression/loop_solver_apply_10000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..2b29e5f1 100644 //! \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); + Iteration iteration(*this, res); _prec->pre(x,b); diff --git a/DunePerfRegression/loop_solver_apply_1000ms.patch b/DunePerfRegression/loop_solver_apply_1000ms.patch index f5fe24f..4be51e5 100644 --- a/DunePerfRegression/loop_solver_apply_1000ms.patch +++ b/DunePerfRegression/loop_solver_apply_1000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..2b29e5f1 100644 //! \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); + Iteration iteration(*this, res); _prec->pre(x,b); diff --git a/DunePerfRegression/loop_solver_apply_100ms.patch b/DunePerfRegression/loop_solver_apply_100ms.patch index 641bdbb..305d696 100644 --- a/DunePerfRegression/loop_solver_apply_100ms.patch +++ b/DunePerfRegression/loop_solver_apply_100ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..2b29e5f1 100644 //! \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); + Iteration iteration(*this, res); _prec->pre(x,b); diff --git a/DunePerfRegression/loop_solver_apply_10ms.patch b/DunePerfRegression/loop_solver_apply_10ms.patch index 58a1ef5..9e35789 100644 --- a/DunePerfRegression/loop_solver_apply_10ms.patch +++ b/DunePerfRegression/loop_solver_apply_10ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..2b29e5f1 100644 //! \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); + Iteration iteration(*this, res); _prec->pre(x,b); diff --git a/DunePerfRegression/loop_solver_apply_1ms.patch b/DunePerfRegression/loop_solver_apply_1ms.patch index 46411c3..3fa0175 100644 --- a/DunePerfRegression/loop_solver_apply_1ms.patch +++ b/DunePerfRegression/loop_solver_apply_1ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..2b29e5f1 100644 //! \copydoc InverseOperator::apply(X&,Y&,InverseOperatorResult&) virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); + Iteration iteration(*this, res); _prec->pre(x,b); diff --git a/DunePerfRegression/minres_solver_apply_10000ms.patch b/DunePerfRegression/minres_solver_apply_10000ms.patch index 2de96cc..6f4a0e3 100644 --- a/DunePerfRegression/minres_solver_apply_10000ms.patch +++ b/DunePerfRegression/minres_solver_apply_10000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a23b36fc 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); + using std::sqrt; using std::abs; diff --git a/DunePerfRegression/minres_solver_apply_1000ms.patch b/DunePerfRegression/minres_solver_apply_1000ms.patch index 668676d..22b03b9 100644 --- a/DunePerfRegression/minres_solver_apply_1000ms.patch +++ b/DunePerfRegression/minres_solver_apply_1000ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a23b36fc 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); + using std::sqrt; using std::abs; diff --git a/DunePerfRegression/minres_solver_apply_100ms.patch b/DunePerfRegression/minres_solver_apply_100ms.patch index 3d11a53..9ad050d 100644 --- a/DunePerfRegression/minres_solver_apply_100ms.patch +++ b/DunePerfRegression/minres_solver_apply_100ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a23b36fc 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); + using std::sqrt; using std::abs; diff --git a/DunePerfRegression/minres_solver_apply_10ms.patch b/DunePerfRegression/minres_solver_apply_10ms.patch index 2dd33f1..5e06e95 100644 --- a/DunePerfRegression/minres_solver_apply_10ms.patch +++ b/DunePerfRegression/minres_solver_apply_10ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a23b36fc 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); + using std::sqrt; using std::abs; diff --git a/DunePerfRegression/minres_solver_apply_1ms.patch b/DunePerfRegression/minres_solver_apply_1ms.patch index e07ba0b..b9c30c6 100644 --- a/DunePerfRegression/minres_solver_apply_1ms.patch +++ b/DunePerfRegression/minres_solver_apply_1ms.patch @@ -7,7 +7,7 @@ index 5a7e901e..a23b36fc 100644 */ virtual void apply (X& x, X& b, InverseOperatorResult& res) { -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); + using std::sqrt; using std::abs; diff --git a/DunePerfRegression/richardson_preconditioner_create_10000ms.patch b/DunePerfRegression/richardson_preconditioner_create_10000ms.patch index 146fe35..1e208e1 100644 --- a/DunePerfRegression/richardson_preconditioner_create_10000ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_10000ms.patch @@ -6,7 +6,7 @@ index b7c7d74..1fe0833 100644 typename DomainContainerTy, typename RangeContainerTy> static auto create(MatrixTy m) { -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); return Dune::Richardson(1.0); }; diff --git a/DunePerfRegression/richardson_preconditioner_create_1000ms.patch b/DunePerfRegression/richardson_preconditioner_create_1000ms.patch index a7bb587..38b7cd1 100644 --- a/DunePerfRegression/richardson_preconditioner_create_1000ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_1000ms.patch @@ -6,7 +6,7 @@ index b7c7d74..5e2d4df 100644 typename DomainContainerTy, typename RangeContainerTy> static auto create(MatrixTy m) { -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); return Dune::Richardson(1.0); }; diff --git a/DunePerfRegression/richardson_preconditioner_create_100ms.patch b/DunePerfRegression/richardson_preconditioner_create_100ms.patch index 50d5510..a748e76 100644 --- a/DunePerfRegression/richardson_preconditioner_create_100ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_100ms.patch @@ -6,7 +6,7 @@ index b7c7d74..c766fab 100644 typename DomainContainerTy, typename RangeContainerTy> static auto create(MatrixTy m) { -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); return Dune::Richardson(1.0); }; diff --git a/DunePerfRegression/richardson_preconditioner_create_10ms.patch b/DunePerfRegression/richardson_preconditioner_create_10ms.patch index 1912973..ccfd2bc 100644 --- a/DunePerfRegression/richardson_preconditioner_create_10ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_10ms.patch @@ -6,7 +6,7 @@ index b7c7d74..cc3ef15 100644 typename DomainContainerTy, typename RangeContainerTy> static auto create(MatrixTy m) { -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); return Dune::Richardson(1.0); }; diff --git a/DunePerfRegression/richardson_preconditioner_create_1ms.patch b/DunePerfRegression/richardson_preconditioner_create_1ms.patch index 0cddf0c..550f0cc 100644 --- a/DunePerfRegression/richardson_preconditioner_create_1ms.patch +++ b/DunePerfRegression/richardson_preconditioner_create_1ms.patch @@ -6,7 +6,7 @@ index b7c7d74..af9bdf6 100644 typename DomainContainerTy, typename RangeContainerTy> static auto create(MatrixTy m) { -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); return Dune::Richardson(1.0); }; diff --git a/DunePerfRegression/seqilu_preconditioner_create_10000ms.patch b/DunePerfRegression/seqilu_preconditioner_create_10000ms.patch index 24a1ca5..3d399d3 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_10000ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_10000ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..75901e6 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); return Dune::SeqILU(native(m),1.0); diff --git a/DunePerfRegression/seqilu_preconditioner_create_1000ms.patch b/DunePerfRegression/seqilu_preconditioner_create_1000ms.patch index 3722372..21eba2f 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_1000ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_1000ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..18b73dc 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); return Dune::SeqILU(native(m),1.0); diff --git a/DunePerfRegression/seqilu_preconditioner_create_100ms.patch b/DunePerfRegression/seqilu_preconditioner_create_100ms.patch index a2754d7..760538e 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_100ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_100ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..1228788 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); return Dune::SeqILU(native(m),1.0); diff --git a/DunePerfRegression/seqilu_preconditioner_create_10ms.patch b/DunePerfRegression/seqilu_preconditioner_create_10ms.patch index 33f08bc..907f8c1 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_10ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_10ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..57822e5 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); return Dune::SeqILU(native(m),1.0); diff --git a/DunePerfRegression/seqilu_preconditioner_create_1ms.patch b/DunePerfRegression/seqilu_preconditioner_create_1ms.patch index 34ad4a1..6c2bc30 100644 --- a/DunePerfRegression/seqilu_preconditioner_create_1ms.patch +++ b/DunePerfRegression/seqilu_preconditioner_create_1ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..d084320 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); return Dune::SeqILU(native(m),1.0); diff --git a/DunePerfRegression/seqssor_preconditioner_create_10000ms.patch b/DunePerfRegression/seqssor_preconditioner_create_10000ms.patch index a6ec22e..ffda3d1 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_10000ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_10000ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..c09c1b7 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); return Dune::SeqSSOR(native(m),1,1.0); diff --git a/DunePerfRegression/seqssor_preconditioner_create_1000ms.patch b/DunePerfRegression/seqssor_preconditioner_create_1000ms.patch index c957873..c9e5126 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_1000ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_1000ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..b8646b9 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); return Dune::SeqSSOR(native(m),1,1.0); diff --git a/DunePerfRegression/seqssor_preconditioner_create_100ms.patch b/DunePerfRegression/seqssor_preconditioner_create_100ms.patch index 253a767..8d22e64 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_100ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_100ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..6489f40 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); return Dune::SeqSSOR(native(m),1,1.0); diff --git a/DunePerfRegression/seqssor_preconditioner_create_10ms.patch b/DunePerfRegression/seqssor_preconditioner_create_10ms.patch index aaffe81..c463312 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_10ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_10ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..5947703 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); return Dune::SeqSSOR(native(m),1,1.0); diff --git a/DunePerfRegression/seqssor_preconditioner_create_1ms.patch b/DunePerfRegression/seqssor_preconditioner_create_1ms.patch index e37696d..79d6f16 100644 --- a/DunePerfRegression/seqssor_preconditioner_create_1ms.patch +++ b/DunePerfRegression/seqssor_preconditioner_create_1ms.patch @@ -6,7 +6,7 @@ index 5c17d2b..c244a02 100644 typename RangeContainerTy> static auto create(MatrixTy m) { using Dune::PDELab::Backend::native; -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); return Dune::SeqSSOR(native(m),1,1.0); diff --git a/DunePerfRegression/tri_unit_cube_maker_create_10000ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_10000ms.patch index f96f639..01eba5b 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_10000ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_10000ms.patch @@ -7,7 +7,7 @@ index e088ff8..1cabc84 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/tri_unit_cube_maker_create_1000ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_1000ms.patch index 14662c2..3ec4992 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_1000ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_1000ms.patch @@ -7,7 +7,7 @@ index e088ff8..210a1cc 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/tri_unit_cube_maker_create_100ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_100ms.patch index c760f35..8b94489 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_100ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_100ms.patch @@ -7,7 +7,7 @@ index e088ff8..2576709 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/tri_unit_cube_maker_create_10ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_10ms.patch index 3ec70ad..f346d2a 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_10ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_10ms.patch @@ -7,7 +7,7 @@ index e088ff8..c92e57e 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/tri_unit_cube_maker_create_1ms.patch b/DunePerfRegression/tri_unit_cube_maker_create_1ms.patch index 1d672d3..b514b50 100644 --- a/DunePerfRegression/tri_unit_cube_maker_create_1ms.patch +++ b/DunePerfRegression/tri_unit_cube_maker_create_1ms.patch @@ -7,7 +7,7 @@ index e088ff8..88d398c 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/tri_unit_square_maker_create_10000ms.patch b/DunePerfRegression/tri_unit_square_maker_create_10000ms.patch index 1d516b5..1bc4464 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_10000ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_10000ms.patch @@ -7,7 +7,7 @@ index e088ff8..e8be103 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..e8be103 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); return std::unique_ptr(new Grid(GRIDSDIR "/2dsimplex.alu")); } }; diff --git a/DunePerfRegression/tri_unit_square_maker_create_1000ms.patch b/DunePerfRegression/tri_unit_square_maker_create_1000ms.patch index c84d280..51989ee 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_1000ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_1000ms.patch @@ -7,7 +7,7 @@ index e088ff8..2a4d738 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..2a4d738 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); return std::unique_ptr(new Grid(GRIDSDIR "/2dsimplex.alu")); } }; diff --git a/DunePerfRegression/tri_unit_square_maker_create_100ms.patch b/DunePerfRegression/tri_unit_square_maker_create_100ms.patch index ee430cc..2e7d2b3 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_100ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_100ms.patch @@ -7,7 +7,7 @@ index e088ff8..7f2af61 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..7f2af61 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); return std::unique_ptr(new Grid(GRIDSDIR "/2dsimplex.alu")); } }; diff --git a/DunePerfRegression/tri_unit_square_maker_create_10ms.patch b/DunePerfRegression/tri_unit_square_maker_create_10ms.patch index 8c103bd..c6e41a9 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_10ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_10ms.patch @@ -7,7 +7,7 @@ index e088ff8..ad1209b 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..ad1209b 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); return std::unique_ptr(new Grid(GRIDSDIR "/2dsimplex.alu")); } }; diff --git a/DunePerfRegression/tri_unit_square_maker_create_1ms.patch b/DunePerfRegression/tri_unit_square_maker_create_1ms.patch index 11b19c0..61ebce1 100644 --- a/DunePerfRegression/tri_unit_square_maker_create_1ms.patch +++ b/DunePerfRegression/tri_unit_square_maker_create_1ms.patch @@ -7,7 +7,7 @@ index e088ff8..89930cc 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..89930cc 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); return std::unique_ptr(new Grid(GRIDSDIR "/2dsimplex.alu")); } }; diff --git a/DunePerfRegression/unit_tetra_maker_create_10000ms.patch b/DunePerfRegression/unit_tetra_maker_create_10000ms.patch index 0cc1beb..cf5a471 100644 --- a/DunePerfRegression/unit_tetra_maker_create_10000ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_10000ms.patch @@ -7,7 +7,7 @@ index e088ff8..a1e731a 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/unit_tetra_maker_create_1000ms.patch b/DunePerfRegression/unit_tetra_maker_create_1000ms.patch index 148cd76..9bbf459 100644 --- a/DunePerfRegression/unit_tetra_maker_create_1000ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_1000ms.patch @@ -7,7 +7,7 @@ index e088ff8..ccad8ba 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/unit_tetra_maker_create_100ms.patch b/DunePerfRegression/unit_tetra_maker_create_100ms.patch index 7f64262..75a8bac 100644 --- a/DunePerfRegression/unit_tetra_maker_create_100ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_100ms.patch @@ -7,7 +7,7 @@ index e088ff8..0914ded 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/unit_tetra_maker_create_10ms.patch b/DunePerfRegression/unit_tetra_maker_create_10ms.patch index a5cd770..5fbbf14 100644 --- a/DunePerfRegression/unit_tetra_maker_create_10ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_10ms.patch @@ -7,7 +7,7 @@ index e088ff8..f48d6ae 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/unit_tetra_maker_create_1ms.patch b/DunePerfRegression/unit_tetra_maker_create_1ms.patch index 04f0c03..a331105 100644 --- a/DunePerfRegression/unit_tetra_maker_create_1ms.patch +++ b/DunePerfRegression/unit_tetra_maker_create_1ms.patch @@ -7,7 +7,7 @@ index e088ff8..11a3701 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); pos[0] = 0; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; pos[2] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; pos[2] = 0; gf.insertVertex(pos); diff --git a/DunePerfRegression/unit_tri_maker_create_10000ms.patch b/DunePerfRegression/unit_tri_maker_create_10000ms.patch index 143d4d5..e6f75d5 100644 --- a/DunePerfRegression/unit_tri_maker_create_10000ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_10000ms.patch @@ -7,7 +7,7 @@ index e088ff8..0baabab 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..0baabab 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(10000); ++ fp_util::busy_sleep_for_millisecs(10000); return std::unique_ptr(new Grid(GRIDSDIR "/2dtriangle.alu")); } }; diff --git a/DunePerfRegression/unit_tri_maker_create_1000ms.patch b/DunePerfRegression/unit_tri_maker_create_1000ms.patch index 7aa1ded..651a078 100644 --- a/DunePerfRegression/unit_tri_maker_create_1000ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_1000ms.patch @@ -7,7 +7,7 @@ index e088ff8..596da84 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..596da84 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(1000); ++ fp_util::busy_sleep_for_millisecs(1000); return std::unique_ptr(new Grid(GRIDSDIR "/2dtriangle.alu")); } }; diff --git a/DunePerfRegression/unit_tri_maker_create_100ms.patch b/DunePerfRegression/unit_tri_maker_create_100ms.patch index 42e1d1b..795aa7a 100644 --- a/DunePerfRegression/unit_tri_maker_create_100ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_100ms.patch @@ -7,7 +7,7 @@ index e088ff8..1f1989d 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..1f1989d 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(100); ++ fp_util::busy_sleep_for_millisecs(100); return std::unique_ptr(new Grid(GRIDSDIR "/2dtriangle.alu")); } }; diff --git a/DunePerfRegression/unit_tri_maker_create_10ms.patch b/DunePerfRegression/unit_tri_maker_create_10ms.patch index 973635d..0de80c6 100644 --- a/DunePerfRegression/unit_tri_maker_create_10ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_10ms.patch @@ -7,7 +7,7 @@ index e088ff8..ae5a40f 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..ae5a40f 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(10); ++ fp_util::busy_sleep_for_millisecs(10); return std::unique_ptr(new Grid(GRIDSDIR "/2dtriangle.alu")); } }; diff --git a/DunePerfRegression/unit_tri_maker_create_1ms.patch b/DunePerfRegression/unit_tri_maker_create_1ms.patch index 2019f57..16c3644 100644 --- a/DunePerfRegression/unit_tri_maker_create_1ms.patch +++ b/DunePerfRegression/unit_tri_maker_create_1ms.patch @@ -7,7 +7,7 @@ index e088ff8..27c1282 100644 Dune::GridFactory gf; Dune::FieldVector pos; - -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); pos[0] = 0; pos[1] = 0; gf.insertVertex(pos); pos[0] = 1; pos[1] = 0; gf.insertVertex(pos); pos[0] = 0; pos[1] = 1; gf.insertVertex(pos); @@ -15,7 +15,7 @@ index e088ff8..27c1282 100644 typedef Dune::ALUGrid<2,2,Dune::simplex,Dune::nonconforming> Grid; public: static std::unique_ptr create() { -+ busy_sleep_for_millisecs(1); ++ fp_util::busy_sleep_for_millisecs(1); return std::unique_ptr(new Grid(GRIDSDIR "/2dtriangle.alu")); } };