From 743d2d052a7ec5fe70d1bb0f0ad58cad0bb4a254 Mon Sep 17 00:00:00 2001
From: Berenger Bramas <Berenger.Bramas@inria.fr>
Date: Mon, 31 Aug 2015 13:52:37 +0200
Subject: [PATCH] use only one arbiter

---
 .../Core/FGroupTaskStarpuAlgorithm.hpp         | 18 ++++++------------
 .../Core/FGroupTaskStarpuMpiAlgorithm.hpp      | 18 ++++++------------
 2 files changed, 12 insertions(+), 24 deletions(-)

diff --git a/Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp b/Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp
index 452dd7f8f..07be69323 100644
--- a/Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp
+++ b/Src/GroupTree/Core/FGroupTaskStarpuAlgorithm.hpp
@@ -113,9 +113,7 @@ protected:
     FStarPUPtrInterface* wrapperptr;
 
 #ifdef STARPU_SUPPORT_ARBITER
-    starpu_arbiter_t arbiterPole;
-    starpu_arbiter_t arbiterLocal;
-    starpu_arbiter_t arbiterParticles;
+    starpu_arbiter_t arbiterGlobal;
 #endif
 public:
     FGroupTaskStarPUAlgorithm(OctreeClass*const inTree, KernelClass* inKernels)
@@ -174,9 +172,7 @@ public:
         cellHandles   = new std::vector<CellHandles>[tree->getHeight()];
 
 #ifdef STARPU_SUPPORT_ARBITER
-        arbiterPole = starpu_arbiter_create();
-        arbiterLocal = starpu_arbiter_create();
-        arbiterParticles = starpu_arbiter_create();
+        arbiterGlobal = starpu_arbiter_create();
 #endif
 
         initCodelet();
@@ -230,9 +226,7 @@ public:
 
 
 #ifdef STARPU_SUPPORT_ARBITER
-        starpu_arbiter_destroy(arbiterPole);
-        starpu_arbiter_destroy(arbiterLocal);
-        starpu_arbiter_destroy(arbiterParticles);
+        starpu_arbiter_destroy(arbiterGlobal);
 #endif
 
         starpu_shutdown();
@@ -524,8 +518,8 @@ protected:
                                               (uintptr_t)currentCells->getRawLocalBuffer(), currentCells->getLocalBufferSizeInByte());
                 cellHandles[idxLevel][idxGroup].intervalSize = int(currentCells->getNumberOfCellsInBlock());
 #ifdef STARPU_SUPPORT_ARBITER
-                starpu_data_assign_arbiter(cellHandles[idxLevel][idxGroup].up, arbiterPole);
-                starpu_data_assign_arbiter(cellHandles[idxLevel][idxGroup].down, arbiterLocal);
+                starpu_data_assign_arbiter(cellHandles[idxLevel][idxGroup].up, arbiterGlobal);
+                starpu_data_assign_arbiter(cellHandles[idxLevel][idxGroup].down, arbiterGlobal);
 #endif
             }
         }
@@ -539,7 +533,7 @@ protected:
                                               (uintptr_t)containers->getRawAttributesBuffer(), containers->getAttributesBufferSizeInByte());
                 particleHandles[idxGroup].intervalSize = int(containers->getNumberOfLeavesInBlock());
 #ifdef STARPU_SUPPORT_ARBITER
-                starpu_data_assign_arbiter(particleHandles[idxGroup].down, arbiterParticles);
+                starpu_data_assign_arbiter(particleHandles[idxGroup].down, arbiterGlobal);
 #endif
             }
         }
diff --git a/Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp b/Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp
index f463b849d..d79e6b73a 100644
--- a/Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp
+++ b/Src/GroupTree/Core/FGroupTaskStarpuMpiAlgorithm.hpp
@@ -130,9 +130,7 @@ protected:
     FStarPUPtrInterface* wrapperptr;
 
 #ifdef STARPU_SUPPORT_ARBITER
-    starpu_arbiter_t arbiterPole;
-    starpu_arbiter_t arbiterLocal;
-    starpu_arbiter_t arbiterParticles;
+    starpu_arbiter_t arbiterGlobal;
 #endif
 public:
     FGroupTaskStarPUMpiAlgorithm(const FMpi::FComm& inComm, OctreeClass*const inTree, KernelClass* inKernels)
@@ -192,9 +190,7 @@ public:
         cellHandles   = new std::vector<CellHandles>[tree->getHeight()];
 
 #ifdef STARPU_SUPPORT_ARBITER
-        arbiterPole = starpu_arbiter_create();
-        arbiterLocal = starpu_arbiter_create();
-        arbiterParticles = starpu_arbiter_create();
+        arbiterGlobal = starpu_arbiter_create();
 #endif
 
         initCodelet();
@@ -249,9 +245,7 @@ public:
 
 
 #ifdef STARPU_SUPPORT_ARBITER
-        starpu_arbiter_destroy(arbiterPole);
-        starpu_arbiter_destroy(arbiterLocal);
-        starpu_arbiter_destroy(arbiterParticles);
+        starpu_arbiter_destroy(arbiterGlobal);
 #endif
         starpu_mpi_shutdown();
         starpu_shutdown();
@@ -1108,8 +1102,8 @@ protected:
                                               (uintptr_t)currentCells->getRawLocalBuffer(), currentCells->getLocalBufferSizeInByte());
                 cellHandles[idxLevel][idxGroup].intervalSize = int(currentCells->getEndingIndex() - currentCells->getStartingIndex());
 #ifdef STARPU_SUPPORT_ARBITER
-                starpu_data_assign_arbiter(cellHandles[idxLevel][idxGroup].up, arbiterPole);
-                starpu_data_assign_arbiter(cellHandles[idxLevel][idxGroup].down, arbiterLocal);
+                starpu_data_assign_arbiter(cellHandles[idxLevel][idxGroup].up, arbiterGlobal);
+                starpu_data_assign_arbiter(cellHandles[idxLevel][idxGroup].down, arbiterGlobal);
 #endif
             }
         }
@@ -1123,7 +1117,7 @@ protected:
                                               (uintptr_t)containers->getRawAttributesBuffer(), containers->getAttributesBufferSizeInByte());
                 particleHandles[idxGroup].intervalSize = int(containers->getEndingIndex() - containers->getStartingIndex());
 #ifdef STARPU_SUPPORT_ARBITER
-                starpu_data_assign_arbiter(particleHandles[idxGroup].down, arbiterParticles);
+                starpu_data_assign_arbiter(particleHandles[idxGroup].down, arbiterGlobal);
 #endif
             }
         }
-- 
GitLab