Skip to content

nnagyd/CPU_ODE_solvers

Repository files navigation

Discription

  • Optimizing numerical ODE solvers using AVX instruction set (with VCL library) on CPUs in C++
  • Using gcc compiler and linux perf profiler
  • CPU: Intel Core i7-4820K
    • 3.8 GHz
    • 30.4 double GFLOPS max
    • Ivy Bridge microarchitecture

Equations

  1. Basic test equation
    • Using RK4 solver with fix step
      • basic_test_RK4 folder
  2. Division test equation
    • Using RK4 solver with fix step
      • division_test_RK4 folder
  3. Transcendental test equation
    • Using RK4 solver with fix step
      • transcendental_test_RK4 folder
  4. Lorentz equation
    • ;
    • Using RK4 solver with fix step
      • lorentz_RK4 folder
    • Using RKCK45 adaptive solver
      • lorentz_RKCK45 folder
  5. Duffing equation
    • Using RKCK45 adaptive solver
      • duffing_RKCK45 folder

Summary

Program Solver RollOut Runtime Parameter number GFLOPS % of max Special functions
Basic test RK4 6 1.577 s 181440 24.7 81% -
Division test RK4 2 1.333 s 18144 3.4 11% division in ODE
Transcendental test RK4 4 3.143 s 18144 10.7 35% sine in ODE
Lorentz RK4 2 1.438 s 40320 21.3 70% -
Lorentz RKCK45 1 2.129 s 40320 10.8 36% log,exp,division by stepsize prediction
Duffing RKCK45 1 240 s 46080 10.6 35% Cosine in ODE and log,exp,division by stepsize prediction

About

Optimizing numerical ODE solvers using AVX instruction set on CPUs in C++

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published