From ab460c8df23646cafc2a28a3a7b68f2ec56e931b Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Wed, 31 Jan 2018 16:52:17 +0100
Subject: [PATCH] Add Starpu migration function

---
 runtime/starpu/control/runtime_descriptor.c | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c
index ee2350065..5219c6bb5 100644
--- a/runtime/starpu/control/runtime_descriptor.c
+++ b/runtime/starpu/control/runtime_descriptor.c
@@ -388,6 +388,26 @@ void RUNTIME_data_flush( const MORSE_sequence_t *sequence,
     (void)sequence;
 }
 
+#if defined(CHAMELEON_USE_MIGRATE)
+void RUNTIME_data_migrate( const MORSE_sequence_t *sequence,
+                           const MORSE_desc_t *A, int Am, int An, int new_rank )
+{
+    starpu_data_handle_t *handle = (starpu_data_handle_t*)(A->schedopt);
+    starpu_data_handle_t lhandle;
+    handle += ((int64_t)(A->lmt) * (int64_t)An + (int64_t)Am);
+
+    lhandle = *handle;
+    if ( lhandle == NULL ) {
+        /* Register the data */
+        lhandle = RUNTIME_data_getaddr( A, Am, An );
+    }
+
+    starpu_mpi_data_migrate( MPI_COMM_WORLD, lhandle, new_rank );
+
+    (void)sequence;
+}
+#endif
+
 /*******************************************************************************
  *  Get data addr
  **/
-- 
GitLab