From 2ba61d45ff9a4d6facc16f9849eb9b6885a5f081 Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Wed, 24 Jan 2018 10:21:15 +0100
Subject: [PATCH] Update the parsec interface

---
 runtime/parsec/CMakeLists.txt               |  1 -
 runtime/parsec/control/runtime_async.c      | 10 ++++------
 runtime/parsec/control/runtime_descriptor.c | 21 +++++++++++----------
 runtime/starpu/control/runtime_async.c      |  1 -
 4 files changed, 15 insertions(+), 18 deletions(-)

diff --git a/runtime/parsec/CMakeLists.txt b/runtime/parsec/CMakeLists.txt
index 9ff06bd0b..7360137bd 100644
--- a/runtime/parsec/CMakeLists.txt
+++ b/runtime/parsec/CMakeLists.txt
@@ -85,7 +85,6 @@ set(RUNTIME_COMMON
   control/runtime_descriptor.c
   control/runtime_options.c
   control/runtime_profiling.c
-  codelets/codelet_dataflush.c
   ${RUNTIME_COMMON_GENERATED}
   )
 
diff --git a/runtime/parsec/control/runtime_async.c b/runtime/parsec/control/runtime_async.c
index faa41447a..67661a475 100644
--- a/runtime/parsec/control/runtime_async.c
+++ b/runtime/parsec/control/runtime_async.c
@@ -25,7 +25,7 @@ int RUNTIME_sequence_create( MORSE_context_t  *morse,
     parsec_context_t  *parsec        = (parsec_context_t *)morse->schedopt;
     parsec_taskpool_t *parsec_dtd_tp = parsec_dtd_taskpool_new();
 
-    parsec_enqueue(parsec, (parsec_taskpool_t *) parsec_dtd_tp);
+    parsec_enqueue( parsec, (parsec_taskpool_t *)parsec_dtd_tp );
     sequence->schedopt = parsec_dtd_tp;
 
     parsec_context_start(parsec);
@@ -47,10 +47,9 @@ int RUNTIME_sequence_destroy( MORSE_context_t  *morse,
 
     // TODO: switch to a partial wait
     //parsec_dtd_taskpool_wait(parsec, parsec_dtd_tp);
-    parsec_context_wait(parsec);
-
-    parsec_taskpool_free(parsec_dtd_tp);
+    parsec_context_wait( parsec );
 
+    parsec_taskpool_free( parsec_dtd_tp );
     sequence->schedopt = NULL;
     return MORSE_SUCCESS;
 }
@@ -65,8 +64,7 @@ int RUNTIME_sequence_wait( MORSE_context_t  *morse,
     parsec_taskpool_t *parsec_dtd_tp = (parsec_taskpool_t *) sequence->schedopt;
 
     assert( parsec_dtd_tp );
-
-    parsec_dtd_taskpool_wait(parsec, parsec_dtd_tp);
+    parsec_dtd_taskpool_wait( parsec, parsec_dtd_tp );
 
     return MORSE_SUCCESS;
 }
diff --git a/runtime/parsec/control/runtime_descriptor.c b/runtime/parsec/control/runtime_descriptor.c
index 0af56f510..889391269 100644
--- a/runtime/parsec/control/runtime_descriptor.c
+++ b/runtime/parsec/control/runtime_descriptor.c
@@ -308,25 +308,26 @@ int RUNTIME_desc_release( const MORSE_desc_t *desc )
 }
 
 /*******************************************************************************
- *  Get data on cpu - Synchronous call
+ *  Flush cached data
  **/
-int RUNTIME_desc_getoncpu( const MORSE_desc_t *desc )
+void RUNTIME_flush()
 {
-    (void)desc;
-    return MORSE_SUCCESS;
 }
 
-/*******************************************************************************
- *  Get data on cpu - Asynchronous call
- **/
-int RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc,
-                                 MORSE_sequence_t   *sequence )
+void RUNTIME_desc_flush( const MORSE_desc_t     *desc,
+                         const MORSE_sequence_t *sequence )
 {
     parsec_taskpool_t* PARSEC_dtd_taskpool = (parsec_taskpool_t *)(sequence->schedopt);
 
     parsec_dtd_data_flush_all( PARSEC_dtd_taskpool, (parsec_data_collection_t*)(desc->schedopt) );
+}
 
-    return MORSE_SUCCESS;
+void RUNTIME_data_flush( const MORSE_sequence_t *sequence,
+                         const MORSE_desc_t *A, int Am, int An )
+{
+    parsec_taskpool_t* PARSEC_dtd_taskpool = (parsec_taskpool_t *)(sequence->schedopt);
+
+    parsec_dtd_data_flush( PARSEC_dtd_taskpool, RTBLKADDR( A, MORSE_Complex64_t, Am, An ) );
 }
 
 /*******************************************************************************
diff --git a/runtime/starpu/control/runtime_async.c b/runtime/starpu/control/runtime_async.c
index 70e9597f0..9ecd09421 100644
--- a/runtime/starpu/control/runtime_async.c
+++ b/runtime/starpu/control/runtime_async.c
@@ -74,6 +74,5 @@ void RUNTIME_sequence_flush( MORSE_context_t  *morse,
     sequence->request = request;
     sequence->status = status;
     request->status = status;
-    starpu_task_wait_for_all();
     return;
 }
-- 
GitLab