From a5d96d289949aa9ba97a7448915def830b7a3d54 Mon Sep 17 00:00:00 2001
From: Samuel Thibault <samuel.thibault@inria.fr>
Date: Tue, 24 Mar 2015 16:38:16 +0000
Subject: [PATCH] Only push flushed data on MPI nodes which own it

---
 runtime/starpu/codelets/codelet_dataflush.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/runtime/starpu/codelets/codelet_dataflush.c b/runtime/starpu/codelets/codelet_dataflush.c
index 3f366f696..eea2b90fb 100644
--- a/runtime/starpu/codelets/codelet_dataflush.c
+++ b/runtime/starpu/codelets/codelet_dataflush.c
@@ -59,12 +59,15 @@ void MORSE_TASK_dataflush(MORSE_option_t *options,
             starpu_mpi_cache_flush(MPI_COMM_WORLD, *ptrtile);
 #endif
 
-            /* Push data to main memory when we have time to */
+            if ( A->myrank == A->get_rankof( A, Am, An ) )
+            {
+                /* Push data to main memory when we have time to */
 #ifdef CHAMELEON_USE_STARPU_IDLE_PREFETCH
-            starpu_data_acquire_on_node_cb(*ptrtile, -1, STARPU_R, data_flush, *ptrtile);
+                starpu_data_acquire_on_node_cb(*ptrtile, -1, STARPU_R, data_flush, *ptrtile);
 #else
-            starpu_data_acquire_cb(*ptrtile, STARPU_R, data_release, *ptrtile);
+                starpu_data_acquire_cb(*ptrtile, STARPU_R, data_release, *ptrtile);
 #endif
+            }
         }
     }
 }
-- 
GitLab