Mentions légales du service

Skip to content
Snippets Groups Projects
Commit 48de5ca0 authored by Quentin Khan's avatar Quentin Khan
Browse files

FFmmAlgorithmThread: Added omp schedule param doc.

FFmmAlgorithmTask: Added inheritance from FAlgorithmTimers.
parent ffc47e35
Branches
Tags
No related merge requests found
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
* Of course this class does not deallocate pointer given in arguements. * Of course this class does not deallocate pointer given in arguements.
*/ */
template<class OctreeClass, class CellClass, class ContainerClass, class KernelClass, class LeafClass> template<class OctreeClass, class CellClass, class ContainerClass, class KernelClass, class LeafClass>
class FFmmAlgorithmTask : public FAbstractAlgorithm{ class FFmmAlgorithmTask : public FAbstractAlgorithm, public FAlgorithmTimers {
OctreeClass* const tree; //< The octree to work on OctreeClass* const tree; //< The octree to work on
KernelClass** kernels; //< The kernels KernelClass** kernels; //< The kernels
...@@ -92,15 +92,30 @@ protected: ...@@ -92,15 +92,30 @@ protected:
*/ */
void executeCore(const unsigned operationsToProceed) override { void executeCore(const unsigned operationsToProceed) override {
if(operationsToProceed & FFmmP2M) bottomPass(); Timers[P2MTimer].tic();
if(operationsToProceed & FFmmP2M)
if(operationsToProceed & FFmmM2M) upwardPass(); bottomPass();
Timers[P2MTimer].tac();
if(operationsToProceed & FFmmM2L) transferPass();
Timers[M2MTimer].tic();
if(operationsToProceed & FFmmL2L) downardPass(); if(operationsToProceed & FFmmM2M)
upwardPass();
if((operationsToProceed & FFmmP2P) || (operationsToProceed & FFmmL2P)) directPass((operationsToProceed & FFmmP2P),(operationsToProceed & FFmmL2P)); Timers[M2MTimer].tac();
Timers[M2LTimer].tic();
if(operationsToProceed & FFmmM2L)
transferPass();
Timers[M2LTimer].tac();
Timers[L2LTimer].tic();
if(operationsToProceed & FFmmL2L)
downardPass();
Timers[L2LTimer].tac();
Timers[NearTimer].tic();
if( (operationsToProceed & FFmmP2P) || (operationsToProceed & FFmmL2P) )
directPass((operationsToProceed & FFmmP2P),(operationsToProceed & FFmmL2P));
Timers[NearTimer].tac();
} }
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
......
...@@ -78,6 +78,7 @@ public: ...@@ -78,6 +78,7 @@ public:
* The constructor needs the octree and the kernels used for computation. * The constructor needs the octree and the kernels used for computation.
* \param inTree the octree to work on. * \param inTree the octree to work on.
* \param inKernels the kernels to call. * \param inKernels the kernels to call.
* \param inStaticSchedule Whether to use static or dynamic OpenMP scheduling.
* *
* \except An exception is thrown if one of the arguments is NULL. * \except An exception is thrown if one of the arguments is NULL.
*/ */
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment