openmp_solver.h
Go to the documentation of this file.
00001 #ifndef OPENMP_SOLVER_H
00002 #define OPENMP_SOLVER_H
00003 
00004 #include "parallel_solver.h"
00005 
00006 namespace parallel_ode
00007 {
00008 
00009 const int DEFAULT_OPENMP_FLAGS =
00010     ParallelFlags::PARALLEL_ALIGN
00011     | ParallelFlags::PARALLEL_RANDOMIZE
00012     | ParallelFlags::PARALLEL_ATOMICS;
00013 
00014 template<typename T>
00015 class OpenMPPGSSolver : public ParallelPGSSolver<T, T, ParallelType::OpenMP>
00016 {
00017 public:
00018   typedef typename vec4<T>::Type Vec4T;
00019 
00028   OpenMPPGSSolver( int parallelFlags = DEFAULT_OPENMP_FLAGS,
00029                 BatchType batchType = BatchTypes::DEFAULT_BATCH_TYPE,
00030                 ReduceType reduceType = ReduceTypes::DEFAULT_REDUCE_TYPE,
00031                 uint numBatches = ParallelOptions::MAXBATCHES )
00032 
00033       : ParallelPGSSolver<T, T, ParallelTypes::OpenMP>( parallelFlags, batchType, reduceType, numBatches ) {
00034 
00035   }
00036 
00037   virtual ~OpenMPPGSSolver( ) {
00038 
00039   }
00040 
00041 protected:
00042 
00043   virtual void solveAndReduce( const int offset, const int batchSize );
00044 
00045   virtual void loadConstraints( );
00046 };
00047 
00048 }
00049 
00050 #endif


parallel_quickstep
Author(s): Jared Duke
autogenerated on Wed Apr 23 2014 10:23:51