DiffEq - Modern C++ ODE Integration Library 1.0.0
High-performance C++ library for solving ODEs with async signal processing
Loading...
Searching...
No Matches
diffeq::core::composable::HighPerformanceSDESynchronizer< S, T > Class Template Reference

High-performance multi-threaded SDE synchronizer. More...

#include <sde_multithreading.hpp>

Classes

struct  PerformanceStats
 Get performance statistics. More...
 

Public Member Functions

 HighPerformanceSDESynchronizer (SDEThreadingConfig config=SDEThreadingConfig::auto_detect())
 Construct high-performance SDE synchronizer.
 
NoiseData< T > get_noise_increment_fast (T current_time, T dt, size_t dimensions=1)
 Get noise increment with ultra-low latency.
 
std::vector< NoiseData< T > > generate_monte_carlo_batch (T current_time, T dt, size_t dimensions, size_t num_simulations)
 Generate batch of noise for Monte Carlo simulations.
 
template<typename Integrator , typename InitialCondition >
auto monte_carlo_integrate (std::function< std::unique_ptr< Integrator >()> integrator_factory, std::function< S()> initial_condition_generator, T dt, T end_time, size_t num_simulations)
 Monte Carlo integration with automatic parallelization.
 
PerformanceStats get_statistics () const
 
void reset_statistics ()
 Reset statistics.
 
void warmup (size_t warmup_samples=100000)
 Warmup system for optimal performance.
 

Detailed Description

template<system_state S, can_be_time T = double>
class diffeq::core::composable::HighPerformanceSDESynchronizer< S, T >

High-performance multi-threaded SDE synchronizer.

This class provides ultra-high performance SDE synchronization for:

  • Academic research with millions of Monte Carlo simulations
  • Large-scale parallel SDE integration
  • Real-time applications requiring minimal latency

Key features:

  • Lock-free data structures for minimal contention
  • SIMD-accelerated noise generation
  • NUMA-aware memory allocation
  • Fiber/coroutine support for massive concurrency
  • Cache-optimized data layouts

Definition at line 305 of file sde_multithreading.hpp.

Constructor & Destructor Documentation

◆ HighPerformanceSDESynchronizer()

template<system_state S, can_be_time T = double>
diffeq::core::composable::HighPerformanceSDESynchronizer< S, T >::HighPerformanceSDESynchronizer ( SDEThreadingConfig  config = SDEThreadingConfig::auto_detect())
inlineexplicit

Construct high-performance SDE synchronizer.

Definition at line 332 of file sde_multithreading.hpp.

Here is the call graph for this function:

◆ ~HighPerformanceSDESynchronizer()

Member Function Documentation

◆ generate_monte_carlo_batch()

template<system_state S, can_be_time T = double>
std::vector< NoiseData< T > > diffeq::core::composable::HighPerformanceSDESynchronizer< S, T >::generate_monte_carlo_batch ( current_time,
dt,
size_t  dimensions,
size_t  num_simulations 
)
inline

Generate batch of noise for Monte Carlo simulations.

Definition at line 364 of file sde_multithreading.hpp.

◆ get_noise_increment_fast()

template<system_state S, can_be_time T = double>
NoiseData< T > diffeq::core::composable::HighPerformanceSDESynchronizer< S, T >::get_noise_increment_fast ( current_time,
dt,
size_t  dimensions = 1 
)
inline

Get noise increment with ultra-low latency.

Definition at line 346 of file sde_multithreading.hpp.

Here is the caller graph for this function:

◆ get_statistics()

template<system_state S, can_be_time T = double>
PerformanceStats diffeq::core::composable::HighPerformanceSDESynchronizer< S, T >::get_statistics ( ) const
inline

Definition at line 428 of file sde_multithreading.hpp.

◆ monte_carlo_integrate()

template<system_state S, can_be_time T = double>
template<typename Integrator , typename InitialCondition >
auto diffeq::core::composable::HighPerformanceSDESynchronizer< S, T >::monte_carlo_integrate ( std::function< std::unique_ptr< Integrator >()>  integrator_factory,
std::function< S()>  initial_condition_generator,
dt,
end_time,
size_t  num_simulations 
)
inline

Monte Carlo integration with automatic parallelization.

Definition at line 380 of file sde_multithreading.hpp.

◆ reset_statistics()

template<system_state S, can_be_time T = double>
void diffeq::core::composable::HighPerformanceSDESynchronizer< S, T >::reset_statistics ( )
inline

Reset statistics.

Definition at line 440 of file sde_multithreading.hpp.

◆ warmup()

template<system_state S, can_be_time T = double>
void diffeq::core::composable::HighPerformanceSDESynchronizer< S, T >::warmup ( size_t  warmup_samples = 100000)
inline

Warmup system for optimal performance.

Definition at line 450 of file sde_multithreading.hpp.

Here is the call graph for this function:

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