Lumiera  0.pre.03
»edit your freedom«
SyncBarrierPerformance_test Class Reference

Description

Test:
investigate performance of N-fold thread synchronisation.
  • use the multithreaded Microbenchmark
  • use an array of consecutively used barriers, one for each per-thread repetition
  • test function is parametrised for comparison of different barrier implementations
    Warning
    for actually be useful, this test should be compiled with -O3 and be invoked stand-alone several times, while otherwise system load is low
    See also
    lib::SyncBarrier
    steam::control::DispatcherLoop

Definition at line 100 of file sync-barrier-performance-test.cpp.

Private Member Functions

template<class BAR , size_t nThreads>
double performanceTest ()
 
virtual void run (Arg)
 

Additional Inherited Members

- Public Member Functions inherited from Test
virtual void run (Arg arg)=0
 

Member Function Documentation

◆ run()

virtual void run ( Arg  )
inlineprivatevirtual
Test:
performance investigation of N-fold synchronisation barrier
Remarks
typical values observed with release-build on a 8-core machine
Note
what we are measuring here is actually the time to catch up for all threads involved, implying we are observing the operational delay introduced by synchronisation, and not an overhead of the implementation technique as such. However — the classical implementation based on Mutex + ConditionVar, which enters a thread sleep state on wait, is slower by orders of magnitude.

Definition at line 146 of file sync-barrier-performance-test.cpp.

+ Inheritance diagram for SyncBarrierPerformance_test:
+ Collaboration diagram for SyncBarrierPerformance_test:

The documentation for this class was generated from the following file: