Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r71694 - in sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta: . performance
From: mario.mulansky_at_[hidden]
Date: 2011-05-03 09:44:04


Author: mariomulansky
Date: 2011-05-03 09:44:02 EDT (Tue, 03 May 2011)
New Revision: 71694
URL: http://svn.boost.org/trac/boost/changeset/71694

Log:
performance tests with gcc 4.6.0also increased icc performance of generic stepper by adding -inline-forceinline compiler option
Text files modified:
   sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_explicit_error_rk.hpp | 2 +-
   sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_explicit_rk_new.hpp | 8 ++++----
   sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_foreach_performance.hpp | 2 +-
   sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/performance/Jamfile | 3 +++
   sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/performance/results.dat | 30 +++++++++++++++++++++---------
   5 files changed, 30 insertions(+), 15 deletions(-)

Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_explicit_error_rk.hpp
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_explicit_error_rk.hpp (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_explicit_error_rk.hpp 2011-05-03 09:44:02 EDT (Tue, 03 May 2011)
@@ -43,7 +43,7 @@
     { }
 
     template< class System >
- void do_step( System &system , state_type &x , double t , const double dt , state_type &x_err )
+ void inline do_step( System &system , state_type &x , const double t , const double dt , state_type &x_err )
     {
         base::do_step( system , x , t , dt );
         // compute error estimate

Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_explicit_rk_new.hpp
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_explicit_rk_new.hpp (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_explicit_rk_new.hpp 2011-05-03 09:44:02 EDT (Tue, 03 May 2011)
@@ -121,7 +121,7 @@
             template< class Index >
             void operator()( Index ) const
             {
- //fusion::at< Index >( m_base ):: = Index::value;
+ //fusion::at< Index >( m_base ) = stage< double , Index::value+1 , intermediate_stage >( m_c[ Index::value ] , fusion::at< Index >( m_a ) );
                 fusion::at< Index >( m_base ).c = m_c[ Index::value ];
                 fusion::at< Index >( m_base ).a = fusion::at< Index >( m_a );
             }
@@ -155,7 +155,7 @@
 
 
         template< typename T , size_t stage_number >
- void operator()( stage< T , stage_number , intermediate_stage > const &stage ) const
+ void inline operator()( stage< T , stage_number , intermediate_stage > const &stage ) const
         //typename stage_fusion_wrapper< T , mpl::size_t< stage_number > , intermediate_stage >::type const &stage ) const
         {
             if( stage_number == 1 )
@@ -168,7 +168,7 @@
 
 
         template< typename T , size_t stage_number >
- void operator()( stage< T , stage_number , last_stage > const &stage ) const
+ void inline operator()( stage< T , stage_number , last_stage > const &stage ) const
         //void operator()( typename stage_fusion_wrapper< T , mpl::size_t< stage_number > , last_stage >::type const &stage ) const
         {
             if( stage_number == 1 )
@@ -193,7 +193,7 @@
 
 
     template< class System >
- void do_step( System &system , state_type &x , double t , const double dt )
+ void inline do_step( System &system , state_type &x , const double t , const double dt )
     {
         fusion::for_each( m_stages , calculate_stage< System >( system , x , m_x_tmp , m_F , t , dt ) );
     }

Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_foreach_performance.hpp
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_foreach_performance.hpp (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/fusion_foreach_performance.hpp 2011-05-03 09:44:02 EDT (Tue, 03 May 2011)
@@ -15,7 +15,7 @@
     struct for_each_unrolled<6>
     {
         template<typename I0, typename F>
- static void call(I0 const& i0, F const& f)
+ static void inline call(I0 const& i0, F const& f)
         {
             f(*i0);
             typedef typename result_of::next<I0>::type I1;

Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/performance/Jamfile
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/performance/Jamfile (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/performance/Jamfile 2011-05-03 09:44:02 EDT (Tue, 03 May 2011)
@@ -10,6 +10,7 @@
     : requirements
       <define>BOOST_ALL_NO_LIB=1
       <include>../../../../../..
+ : default-build release
     ;
     
     
@@ -18,6 +19,7 @@
 
 exe generic_rk4
     : generic_rk4.cpp
+ : <toolset>intel:<cxxflags>-inline-forceinline
     ;
    
 exe odeint_rk4
@@ -44,6 +46,7 @@
 
 exe generic_rk54ck
     : generic_rk54ck.cpp
+ : <toolset>intel:<cxxflags>-inline-forceinline
     ;
     
 exe odeint_rk54ck

Modified: sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/performance/results.dat
==============================================================================
--- sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/performance/results.dat (original)
+++ sandbox/odeint/branches/karsten/libs/numeric/odeint/ideas/fusion_runge_kutta/performance/results.dat 2011-05-03 09:44:02 EDT (Tue, 03 May 2011)
@@ -2,13 +2,16 @@
 
             | odeint | def alg | generic | nr | gsl | rt gen |
 -------------------------------------------------------------------------------------
-gcc 4.5.0 | 0.54 | 0.77 | 0.77 | 0.80 | 1.07 | 1.08 | Corei7 870 @ 2.93 GHz
 gcc 4.3.2 | 0.82 | 0.84 | 0.64 | 0.96 | 1.52 | 1.85 | Core2Quad Q9550 @ 2.83 GHz
-icc 12.0.2 | 0.93 | 0.81 | 0.85 | 0.53 | 1.07 | 1.61 | Corei7 870 @ 2.93 GHz
-icc 11.1 | 1.11 | 0.99 | 0.99 | 0.64 | 1.35 | 1.99 | Xeon X5650 @ 2.67 GHz
+gcc 4.4.1 | 0.59 | 0.59 | 0.56 | 0.64 | 1.61 | 1.85 | PhenomII X4 945 @ 3 GHz
+gcc 4.4.1 | 0.60 | 0.60 | 0.54 | 0.62 | 1.35 | 1.47 | Core i7 930 @ 2.80 GHz
+gcc 4.4.1 | 0.60 | 0.59 | 0.60 | 0.60 | 1.77 | 2.08 | Opteron 2224 @ 3 GHz
+gcc 4.5.0 | 0.54 | 0.77 | 0.77 | 0.80 | 1.07 | 1.08 | Core i7 870 @ 2.93 GHz
+gcc 4.6.0 | 0.54 | 0.54 | 0.65 | 0.47 | 1.06 | 1.08 | Core i7 870 @ 2.93 GHz
+icc 12.0.2 | 0.90 | 0.81 | 0.85 | 1.05 | 1.07 | 1.57 | Core i7 870 @ 2.93 GHz
+icc 11.1 | 1.11 | 0.98 | 0.98 | 0.63 | 1.28 | 1.70 | Xeon X5650 @ 2.67 GHz
 gcc 4.4.1 | 1.19 | | 1.22 | 1.24 | 1.97 | | Core2Quad Q6600 @ 2.40GHz (to be repeated)
 msvc 9.0 | 6.91 | | 7.28 | 5.59 | ---- | 13.2 | Via Nano @ 1.60 GHz
-gcc 4.4.1 | 0.59 | 0.59 | 0.56 | 0.64 | 1.61 | 1.85 | PhenomII X4 945 @ 3 GHz
 icc 11.1 | 1.24 | 1.14 | 1.09 | 0.76 | 1.62 | 2.10 | PhenomII X4 945 @ 3 GHz
 
 
@@ -16,11 +19,20 @@
 
             | odeint | def alg | generic | nr | gsl |
 -------------------------------------------------------------------------
-gcc 4.5.0 | 0.80 | 1.13 | 1.28 | | 1.80 | Corei7 870 @ 2.93 GHz
 gcc 4.3.2 | 1.34 | 1.42 | 1.00 | | 2.90 | Core2Quad Q9550 @ 2.83 GHz
-icc 12.0.2 | 1.61 | 1.71 | 2.02 | | 1.81 | Corei7 870 @ 2.93 GHz
-icc 11.1 | 1.90 | 2.16 | 2.40 | | 2.16 | Xeon X5650 @ 2.67 GHz
+gcc 4.4.1 | 1.06 | 1.05 | 1.15 | | 2.63 | PhenomII X4 945 @ 3 GHz
+gcc 4.4.1 | 1.05 | 1.03 | 1.05 | | 2.34 | Core i7 930 @ 2.80 GHz
+gcc 4.4.1 | 1.14 | 1.15 | 1.24 | | 2.79 | Opteron 2224 @ 3 GHz
+gcc 4.5.0 | 0.80 | 1.13 | 1.28 | | 1.80 | Core i7 870 @ 2.93 GHz
+gcc 4.6.0 | 0.80 | 0.80 | 0.97 | | 1.80 | Core i7 870 @ 2.93 GHz
+icc 12.0.2 | 1.42 | 1.58 | 1.54 | | 1.81 | Core i7 870 @ 2.93 GHz
+icc 11.1 | 1.73 | 1.93 | 1.80 | | 2.16 | Xeon X5650 @ 2.67 GHz
 gcc 4.4.1 | | | | | | Core2Quad Q6600 @ 2.40GHz
 msvc 9.0 | 12.8 | | 15.4 | | ---- | Via Nano @ 1.60 GHz
-gcc 4.4.1 | 1.06 | 1.05 | 1.15 | | 2.63 | PhenomII X4 945 @ 3 GHz
-icc 11.1 | 1.80 | 2.44 | 2.39 | | 2.69 | PhenomII X4 945 @ 3 GHz
\ No newline at end of file
+icc 11.1 | 1.80 | 2.44 | 2.39 | | 2.69 | PhenomII X4 945 @ 3 GHz
+
+
+
+NOTE: additional Intel Compiler option: -inline-forceinline
+
+see Jamfile
\ No newline at end of file


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk