diff --git a/runtime/parsec/codelets/codelet_dataflush.c b/runtime/parsec/codelets/codelet_dataflush.c
index a065cedf48fc5734a7bd17adac79d1955faa97f3..6f14deb74c25aa2427feea50fdd16e30c91c8078 100644
--- a/runtime/parsec/codelets/codelet_dataflush.c
+++ b/runtime/parsec/codelets/codelet_dataflush.c
@@ -33,11 +33,13 @@ void MORSE_TASK_flush_data( const MORSE_option_t *options,
 void MORSE_TASK_flush_desc( const MORSE_option_t *options,
                             MORSE_enum uplo, const MORSE_desc_t *A )
 {
-    parsec_taskpool_t* PARSEC_dtd_taskpool = (parsec_taskpool_t *)(options->sequence->schedopt);
+    /* parsec_taskpool_t* PARSEC_dtd_taskpool = (parsec_taskpool_t *)(options->sequence->schedopt); */
 
-    parsec_dtd_data_flush_all( PARSEC_dtd_taskpool, (parsec_data_collection_t*)(A->schedopt) );
+    /* parsec_dtd_data_flush_all( PARSEC_dtd_taskpool, (parsec_data_collection_t*)(A->schedopt) ); */
 
+    (void)options;
     (void)uplo;
+    (void)A;
 }
 
 void MORSE_TASK_flush_all()
diff --git a/runtime/parsec/control/runtime_async.c b/runtime/parsec/control/runtime_async.c
index 7df5d0bcf2b086a2c6e28c2b3136a150a3a555d8..faa41447a25824a15dbce315f4dd30ddc2ab2e40 100644
--- a/runtime/parsec/control/runtime_async.c
+++ b/runtime/parsec/control/runtime_async.c
@@ -1,10 +1,16 @@
 /**
  *
- * @copyright (c) 2009-2015 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2015 Inria. All rights reserved.
- * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ * @copyright 2012-2017 The University of Tennessee and The University of
+ *                      Tennessee Research Foundation.  All rights reserved.
+ * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ * @file runtime_async.c
+ *
+ * @version 1.0.0
+ * @author Reazul Hoque
+ * @author Mathieu Faverge
+ * @date 2017-01-12
  *
  **/
 #include <stdlib.h>
@@ -13,7 +19,8 @@
 /*******************************************************************************
  *  Create a sequence
  **/
-int RUNTIME_sequence_create(MORSE_context_t *morse, MORSE_sequence_t *sequence)
+int RUNTIME_sequence_create( MORSE_context_t  *morse,
+                             MORSE_sequence_t *sequence )
 {
     parsec_context_t  *parsec        = (parsec_context_t *)morse->schedopt;
     parsec_taskpool_t *parsec_dtd_tp = parsec_dtd_taskpool_new();
@@ -29,7 +36,8 @@ int RUNTIME_sequence_create(MORSE_context_t *morse, MORSE_sequence_t *sequence)
 /*******************************************************************************
  *  Destroy a sequence
  **/
-int RUNTIME_sequence_destroy(MORSE_context_t *morse, MORSE_sequence_t *sequence)
+int RUNTIME_sequence_destroy( MORSE_context_t  *morse,
+                              MORSE_sequence_t *sequence )
 {
     parsec_context_t  *parsec = (parsec_context_t *)morse->schedopt;
     parsec_taskpool_t *parsec_dtd_tp = (parsec_taskpool_t *) sequence->schedopt;
@@ -50,7 +58,8 @@ int RUNTIME_sequence_destroy(MORSE_context_t *morse, MORSE_sequence_t *sequence)
 /*******************************************************************************
  *  Wait for the completion of a sequence
  **/
-int RUNTIME_sequence_wait(MORSE_context_t *morse, MORSE_sequence_t *sequence )
+int RUNTIME_sequence_wait( MORSE_context_t  *morse,
+                           MORSE_sequence_t *sequence )
 {
     parsec_context_t  *parsec = (parsec_context_t *)morse->schedopt;
     parsec_taskpool_t *parsec_dtd_tp = (parsec_taskpool_t *) sequence->schedopt;
@@ -65,13 +74,13 @@ int RUNTIME_sequence_wait(MORSE_context_t *morse, MORSE_sequence_t *sequence )
 /*******************************************************************************
  *  Terminate a sequence
  **/
-void RUNTIME_sequence_flush(void *schedopt, MORSE_sequence_t *sequence, MORSE_request_t *request, int status)
+void RUNTIME_sequence_flush( MORSE_context_t  *morse,
+                             MORSE_sequence_t *sequence,
+                             MORSE_request_t  *request,
+                             int status )
 {
-    parsec_context_t *parsec = (parsec_context_t *)schedopt;
-    (void)schedopt;
     sequence->request = request;
     sequence->status = status;
     request->status = status;
     return;
 }
-
diff --git a/runtime/parsec/control/runtime_context.c b/runtime/parsec/control/runtime_context.c
index dee863d4f76a8748c41288436f7fc2ecc3f25a56..130161d53398460500a7f60a3b3eb92d952a3348 100644
--- a/runtime/parsec/control/runtime_context.c
+++ b/runtime/parsec/control/runtime_context.c
@@ -1,10 +1,16 @@
 /**
  *
- * @copyright (c) 2009-2015 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2015 Inria. All rights reserved.
- * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ * @copyright 2012-2017 The University of Tennessee and The University of
+ *                      Tennessee Research Foundation.  All rights reserved.
+ * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ * @file runtime_context.c
+ *
+ * @version 1.0.0
+ * @author Reazul Hoque
+ * @author Mathieu Faverge
+ * @date 2017-01-12
  *
  **/
 #include <stdlib.h>
@@ -13,7 +19,7 @@
 /*******************************************************************************
  *  Create new context
  **/
-void RUNTIME_context_create(MORSE_context_t *morse)
+void RUNTIME_context_create( MORSE_context_t *morse )
 {
     /* In case of PaRSEC, this is done in init */
     morse->scheduler = RUNTIME_SCHED_PARSEC;
@@ -23,8 +29,7 @@ void RUNTIME_context_create(MORSE_context_t *morse)
 /*******************************************************************************
  *  Clean the context
  **/
-
-void RUNTIME_context_destroy(MORSE_context_t *morse)
+void RUNTIME_context_destroy( MORSE_context_t *morse )
 {
     (void)morse;
     return;
@@ -37,12 +42,10 @@ void RUNTIME_enable(MORSE_enum lever)
 {
     switch (lever)
     {
-        case MORSE_PROFILING_MODE:
-            // TODO: check correctly for this
-            //dague_profiling_start();
-            break;
-        default:
-            return;
+    case MORSE_PROFILING_MODE:
+        break;
+    default:
+        return;
     }
     return;
 }
@@ -54,12 +57,10 @@ void RUNTIME_disable(MORSE_enum lever)
 {
     switch (lever)
     {
-        case MORSE_PROFILING_MODE:
-            // TODO: check correctly for this
-            //dague_profiling_stop();
-            break;
-        default:
-            return;
+    case MORSE_PROFILING_MODE:
+        break;
+    default:
+        return;
     }
     return;
 }
diff --git a/runtime/parsec/control/runtime_control.c b/runtime/parsec/control/runtime_control.c
index 5efcbcde57db74cfa0208db8d757c3e75edaf177..2063be2ceed77992c8b399c7cbf6826b36083484 100644
--- a/runtime/parsec/control/runtime_control.c
+++ b/runtime/parsec/control/runtime_control.c
@@ -1,10 +1,16 @@
 /**
  *
- * @copyright (c) 2009-2015 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2015 Inria. All rights reserved.
- * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ * @copyright 2012-2017 The University of Tennessee and The University of
+ *                      Tennessee Research Foundation.  All rights reserved.
+ * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ * @file runtime_control.c
+ *
+ * @version 1.0.0
+ * @author Reazul Hoque
+ * @author Mathieu Faverge
+ * @date 2017-01-12
  *
  **/
 #include <stdio.h>
@@ -15,32 +21,27 @@
 #include <mpi.h>
 #endif
 
-/*******************************************************************************
- * Thread rank.
- **/
-int RUNTIME_rank(MORSE_context_t *morse)
-{
-    return 0;
-}
-
 /*******************************************************************************
  * Initialize MORSE
  **/
-int RUNTIME_init_scheduler(MORSE_context_t *morse, int nworkers, int ncudas, int nthreads_per_worker)
+int RUNTIME_init( MORSE_context_t *morse,
+                  int ncpus,
+                  int ncudas,
+                  int nthreads_per_worker )
 {
     int hres = -1, default_ncores = -1;
     int *argc = (int *)malloc(sizeof(int));
     *argc = 0;
 
     /* Initializing parsec context */
-    if( 0 < nworkers ) {
-        default_ncores = nworkers;
+    if( 0 < ncpus ) {
+        default_ncores = ncpus;
     }
     morse->parallel_enabled = MORSE_TRUE;
     morse->schedopt = (void *)parsec_init(default_ncores, argc, NULL);
 
     if(NULL != morse->schedopt) {
-        morse->nworkers = nworkers;
+        morse->nworkers = ncpus;
         morse->nthreads_per_worker = nthreads_per_worker;
         hres = 0;
     }
@@ -52,7 +53,7 @@ int RUNTIME_init_scheduler(MORSE_context_t *morse, int nworkers, int ncudas, int
 /*******************************************************************************
  * Finalize MORSE
  */
-void RUNTIME_finalize_scheduler(MORSE_context_t *morse)
+void RUNTIME_finalize( MORSE_context_t *morse )
 {
     parsec_context_t *parsec = (parsec_context_t*)morse->schedopt;
     parsec_fini(&parsec);
@@ -60,81 +61,86 @@ void RUNTIME_finalize_scheduler(MORSE_context_t *morse)
 }
 
 /*******************************************************************************
- * Barrier MORSE.
+ *  To suspend the processing of new tasks by workers
  **/
-void RUNTIME_barrier(MORSE_context_t *morse)
+void RUNTIME_pause( MORSE_context_t *morse )
 {
-    parsec_context_t *parsec = (parsec_context_t*)morse->schedopt;
-    // This will be a problem with the fake tasks inserted to detect end of DTD algorithms
-    //parsec_context_wait( parsec );
+    (void)morse;
     return;
 }
 
 /*******************************************************************************
- *  Set iteration numbers for traces
+ *  This is the symmetrical call to RUNTIME_pause,
+ *  used to resume the workers polling for new tasks.
  **/
-void RUNTIME_iteration_push( MORSE_context_t *morse, unsigned long iteration )
+void RUNTIME_resume( MORSE_context_t *morse )
 {
-    (void)morse; (void)iteration;
+    (void)morse;
     return;
 }
-void RUNTIME_iteration_pop( MORSE_context_t *morse )
+
+/*******************************************************************************
+ * Barrier MORSE.
+ **/
+void RUNTIME_barrier( MORSE_context_t *morse )
 {
-    (void)morse;
+    parsec_context_t *parsec = (parsec_context_t*)morse->schedopt;
+    // This will be a problem with the fake tasks inserted to detect end of DTD algorithms
+    parsec_context_wait( parsec );
     return;
 }
 
 /*******************************************************************************
- *  To suspend the processing of new tasks by workers
+ *  Display a progress information when executing the tasks
  **/
-void RUNTIME_pause( MORSE_context_t *morse )
+void RUNTIME_progress( MORSE_context_t *morse )
 {
     (void)morse;
     return;
 }
 
 /*******************************************************************************
- *  This is the symmetrical call to RUNTIME_pause,
- *  used to resume the workers polling for new tasks.
+ * Thread rank.
  **/
-void RUNTIME_resume( MORSE_context_t *morse )
+int RUNTIME_thread_rank( MORSE_context_t *morse )
 {
-    (void)morse;
-    return;
+    return 0;
 }
 
 /*******************************************************************************
- *  This returns the rank of this process
+ * Thread rank.
  **/
-void RUNTIME_comm_rank( int *rank )
+int RUNTIME_thread_size( MORSE_context_t *morse )
 {
-#if defined(CHAMELEON_USE_MPI)
-    MPI_Comm_rank(MPI_COMM_WORLD, rank);
-#else
-    *rank = 0;
-#endif
-    return;
+    // TODO: fixme
+    //return vpmap_get_nb_total_threads();
+    return 1;
 }
 
 /*******************************************************************************
- *  This returns the size of the distributed computation
+ *  This returns the rank of this process
  **/
-void RUNTIME_comm_size( int *size )
+int RUNTIME_comm_rank( MORSE_context_t *morse )
 {
+    int rank = 0;
 #if defined(CHAMELEON_USE_MPI)
-    MPI_Comm_size(MPI_COMM_WORLD, size);
-#else
-    *size = 1;
+    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
 #endif
-    return;
+
+    (void)morse;
+    return rank;
 }
 
 /*******************************************************************************
- *  This returns the number of workers
+ *  This returns the size of the distributed computation
  **/
-int RUNTIME_get_thread_nbr()
+int RUNTIME_comm_size( MORSE_context_t *morse )
 {
-    // TODO: fixme
-    //return vpmap_get_nb_total_threads();
-    return 0;
+    int size = 0;
+#if defined(CHAMELEON_USE_MPI)
+    MPI_Comm_size(MPI_COMM_WORLD, &size);
+#endif
+
+    (void)morse;
+    return size;
 }
diff --git a/runtime/parsec/control/runtime_descriptor.c b/runtime/parsec/control/runtime_descriptor.c
index 70b38659e3f3277121b4f9fe0a13614b1971f5f8..0af56f510bf44edbe540675efda34171d2906925 100644
--- a/runtime/parsec/control/runtime_descriptor.c
+++ b/runtime/parsec/control/runtime_descriptor.c
@@ -1,35 +1,43 @@
 /**
  *
- * @copyright (c) 2009-2015 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2015 Inria. All rights reserved.
- * @copyright (c) 2012-2016 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ * @copyright 2012-2017 The University of Tennessee and The University of
+ *                      Tennessee Research Foundation.  All rights reserved.
+ * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ * @file runtime_descriptor.c
+ *
+ * @version 1.0.0
+ * @author Reazul Hoque
+ * @author Mathieu Faverge
+ * @date 2017-01-12
  *
  **/
 #include <stdlib.h>
 #include "chameleon_parsec.h"
 #include <parsec/data.h>
 #include <parsec/datatype.h>
-#include <parsec/data_dist/matrix/matrix.h>
+//#include <parsec/data_dist/matrix/matrix.h>
 #include <parsec/arena.h>
 
 static int parsec_global_arena_index = 0;
 
-void RUNTIME_user_tag_size(int user_tag_width, int user_tag_sep) {
-  (void)user_tag_width;
-  (void)user_tag_sep;
+void RUNTIME_comm_set_tag_sizes( int user_tag_width,
+                                 int user_tag_sep )
+{
+    (void)user_tag_width;
+    (void)user_tag_sep;
 }
 
-void *RUNTIME_mat_alloc( size_t size)
+void *RUNTIME_malloc( size_t size )
 {
     return malloc(size);
 }
 
-void RUNTIME_mat_free( void *mat, size_t size)
+void RUNTIME_free( void *ptr, size_t size )
 {
     (void)size;
-    free(mat);
+    free(ptr);
     return;
 }
 
@@ -40,11 +48,12 @@ struct morse_parsec_desc_s {
     int arena_index;
 };
 
-int morse_parsec_get_arena_index(const MORSE_desc_t *desc) {
+int
+morse_parsec_get_arena_index(const MORSE_desc_t *desc) {
     return ((morse_parsec_desc_t *)desc->schedopt)->arena_index;
 }
 
-static void
+static inline void
 morse_parsec_key_to_coordinates(parsec_data_collection_t *data_collection, parsec_data_key_t key,
                                 int *m, int *n)
 {
@@ -58,7 +67,7 @@ morse_parsec_key_to_coordinates(parsec_data_collection_t *data_collection, parse
     *n = _n - mdesc->j / mdesc->nb;
 }
 
-static parsec_data_key_t
+static inline parsec_data_key_t
 morse_parsec_data_key(parsec_data_collection_t *data_collection, ...)
 {
     morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
@@ -79,7 +88,7 @@ morse_parsec_data_key(parsec_data_collection_t *data_collection, ...)
     return ((n * mdesc->lmt) + m);
 }
 
-static uint32_t
+static inline uint32_t
 morse_parsec_rank_of(parsec_data_collection_t *data_collection, ...)
 {
     morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
@@ -100,7 +109,7 @@ morse_parsec_rank_of(parsec_data_collection_t *data_collection, ...)
     return mdesc->get_rankof( mdesc, m, n );
 }
 
-static uint32_t
+static inline uint32_t
 morse_parsec_rank_of_key(parsec_data_collection_t *data_collection, parsec_data_key_t key)
 {
     int m, n;
@@ -108,13 +117,13 @@ morse_parsec_rank_of_key(parsec_data_collection_t *data_collection, parsec_data_
     return morse_parsec_rank_of(data_collection, m, n);
 }
 
-static int32_t
+static inline int32_t
 morse_parsec_vpid_of(parsec_data_collection_t *data_collection, ...)
 {
     return 0;
 }
 
-static int32_t
+static inline int32_t
 morse_parsec_vpid_of_key(parsec_data_collection_t *data_collection, parsec_data_key_t key)
 {
     int m, n;
@@ -122,7 +131,7 @@ morse_parsec_vpid_of_key(parsec_data_collection_t *data_collection, parsec_data_
     return morse_parsec_vpid_of(data_collection, m, n);
 }
 
-static parsec_data_t*
+static inline parsec_data_t*
 morse_parsec_data_of(parsec_data_collection_t *data_collection, ...)
 {
     morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
@@ -145,12 +154,12 @@ morse_parsec_data_of(parsec_data_collection_t *data_collection, ...)
     //assert( data_collection->nodes == 1 );
 #endif
     return parsec_data_create( pdesc->data_map + n * mdesc->lmt + m, data_collection,
-                              morse_parsec_data_key( data_collection, m, n ),
-                              mdesc->get_blkaddr( mdesc, m, n ),
-                              mdesc->bsiz * MORSE_Element_Size(mdesc->dtyp) );
+                               morse_parsec_data_key( data_collection, m, n ),
+                               mdesc->get_blkaddr( mdesc, m, n ),
+                               mdesc->bsiz * MORSE_Element_Size(mdesc->dtyp) );
 }
 
-static parsec_data_t*
+static inline parsec_data_t*
 morse_parsec_data_of_key(parsec_data_collection_t *data_collection, parsec_data_key_t key)
 {
     morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
@@ -163,12 +172,12 @@ morse_parsec_data_of_key(parsec_data_collection_t *data_collection, parsec_data_
     //assert( data_collection->nodes == 1 );
 #endif
     return parsec_data_create( pdesc->data_map + key, data_collection, key,
-                              mdesc->get_blkaddr( mdesc, m, n ),
-                              mdesc->bsiz * MORSE_Element_Size(mdesc->dtyp) );
+                               mdesc->get_blkaddr( mdesc, m, n ),
+                               mdesc->bsiz * MORSE_Element_Size(mdesc->dtyp) );
 }
 
 #ifdef parsec_PROF_TRACE
-static int
+static inline int
 morse_parsec_key_to_string(parsec_data_collection_t *data_collection, parsec_data_key_t key, char * buffer, uint32_t buffer_size)
 {
     morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)data_collection;
@@ -184,15 +193,12 @@ morse_parsec_key_to_string(parsec_data_collection_t *data_collection, parsec_dat
 }
 #endif
 
-void RUNTIME_desc_init( MORSE_desc_t *mdesc )
-{
-    (void)mdesc;
-    return;
-}
-
+/*******************************************************************************
+ *  Create data descriptor
+ **/
 void RUNTIME_desc_create( MORSE_desc_t *mdesc )
 {
-    parsec_data_collection_t       *data_collection;
+    parsec_data_collection_t *data_collection;
     morse_parsec_desc_t *pdesc;
     int comm_size;
 
@@ -200,7 +206,7 @@ void RUNTIME_desc_create( MORSE_desc_t *mdesc )
     data_collection = (parsec_data_collection_t*)pdesc;
 
     /* Super setup */
-    RUNTIME_comm_size( &comm_size );
+    comm_size = RUNTIME_comm_size( NULL );
     data_collection->nodes  = comm_size;
     data_collection->myrank = mdesc->myrank;
 
@@ -240,12 +246,12 @@ void RUNTIME_desc_create( MORSE_desc_t *mdesc )
 
     parsec_datatype_t datatype;
     switch(mdesc->dtyp) {
-        case MorseInteger:       datatype = parsec_datatype_int32_t; break;
-        case MorseRealFloat:     datatype = parsec_datatype_float_t; break;
-        case MorseRealDouble:    datatype = parsec_datatype_double_t; break;
-        case MorseComplexFloat:  datatype = parsec_datatype_complex_t; break;
-        case MorseComplexDouble: datatype = parsec_datatype_double_complex_t; break;
-        default: morse_fatal_error("MORSE_Element_Size", "undefined type"); break;
+    case MorseInteger:       datatype = parsec_datatype_int32_t; break;
+    case MorseRealFloat:     datatype = parsec_datatype_float_t; break;
+    case MorseRealDouble:    datatype = parsec_datatype_double_t; break;
+    case MorseComplexFloat:  datatype = parsec_datatype_complex_t; break;
+    case MorseComplexDouble: datatype = parsec_datatype_double_complex_t; break;
+    default: morse_fatal_error("MORSE_Element_Size", "undefined type"); break;
     }
 
     parsec_matrix_add2arena_tile( parsec_dtd_arenas[pdesc->arena_index], datatype, mdesc->mb*mdesc->nb*MORSE_Element_Size(mdesc->dtyp) );
@@ -256,6 +262,9 @@ void RUNTIME_desc_create( MORSE_desc_t *mdesc )
     return;
 }
 
+/*******************************************************************************
+ *  Destroy data descriptor
+ **/
 void RUNTIME_desc_destroy( MORSE_desc_t *mdesc )
 {
     morse_parsec_desc_t *pdesc = (morse_parsec_desc_t*)(mdesc->schedopt);
@@ -280,30 +289,49 @@ void RUNTIME_desc_destroy( MORSE_desc_t *mdesc )
     return;
 }
 
-void RUNTIME_desc_submatrix( MORSE_desc_t *desc )
+/*******************************************************************************
+ *  Acquire data
+ **/
+int RUNTIME_desc_acquire( const MORSE_desc_t *desc )
 {
     (void)desc;
-    return;
+    return MORSE_SUCCESS;
 }
 
-int RUNTIME_desc_acquire( MORSE_desc_t *desc )
+/*******************************************************************************
+ *  Release data
+ **/
+int RUNTIME_desc_release( const MORSE_desc_t *desc )
 {
     (void)desc;
     return MORSE_SUCCESS;
 }
 
-int RUNTIME_desc_release( MORSE_desc_t *desc )
+/*******************************************************************************
+ *  Get data on cpu - Synchronous call
+ **/
+int RUNTIME_desc_getoncpu( const MORSE_desc_t *desc )
 {
     (void)desc;
     return MORSE_SUCCESS;
 }
 
-int RUNTIME_desc_getoncpu( MORSE_desc_t *desc )
+/*******************************************************************************
+ *  Get data on cpu - Asynchronous call
+ **/
+int RUNTIME_desc_getoncpu_async( const MORSE_desc_t *desc,
+                                 MORSE_sequence_t   *sequence )
 {
-    (void)desc;
+    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;
 }
 
+/*******************************************************************************
+ *  Get data addr
+ **/
 void *RUNTIME_desc_getaddr( const MORSE_desc_t *desc, int m, int n )
 {
     assert(0); /* This should not be called because we also need the handle to match the address we need. */
diff --git a/runtime/parsec/control/runtime_options.c b/runtime/parsec/control/runtime_options.c
index b9fd469a84262154b5dcfcc3cf65c6e218932de1..035561939da1d28d6f6585a4ea689fa5183f5d44 100644
--- a/runtime/parsec/control/runtime_options.c
+++ b/runtime/parsec/control/runtime_options.c
@@ -1,10 +1,16 @@
 /**
  *
- * @copyright (c) 2009-2015 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2015 Inria. All rights reserved.
- * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ * @copyright 2012-2017 The University of Tennessee and The University of
+ *                      Tennessee Research Foundation.  All rights reserved.
+ * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ * @file runtime_options.c
+ *
+ * @version 1.0.0
+ * @author Reazul Hoque
+ * @author Mathieu Faverge
+ * @date 2017-01-12
  *
  **/
 #include <stdio.h>
diff --git a/runtime/parsec/control/runtime_profiling.c b/runtime/parsec/control/runtime_profiling.c
index 1e50dac2a1792d9448ad9360f986efc6f6bcd2e4..ed7dbd842fadd42d0697c9e1b4e8682fa0ba92ff 100644
--- a/runtime/parsec/control/runtime_profiling.c
+++ b/runtime/parsec/control/runtime_profiling.c
@@ -1,14 +1,20 @@
 /**
  *
- * @copyright (c) 2009-2015 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2015 Inria. All rights reserved.
- * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ * @copyright 2012-2017 The University of Tennessee and The University of
+ *                      Tennessee Research Foundation.  All rights reserved.
+ * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ * @file runtime_profiling.c
+ *
+ * @version 1.0.0
+ * @author Reazul Hoque
+ * @author Mathieu Faverge
+ * @date 2017-01-12
  *
  **/
 #include "chameleon_parsec.h"
-#include "chameleon_timer.h"
+#include "chameleon/chameleon_timer.h"
 
 double RUNTIME_get_time(){
     return CHAMELEON_timer();
@@ -43,3 +49,18 @@ void RUNTIME_kernelprofile_display(void)
 {
     morse_warning("RUNTIME_kernelprofile_display(parsec)", "Kernel profiling is not available with PaRSEC\n");
 }
+
+/*******************************************************************************
+ *  Set iteration numbers for traces
+ **/
+void RUNTIME_iteration_push( MORSE_context_t *morse, unsigned long iteration )
+{
+    (void)morse; (void)iteration;
+    return;
+}
+void RUNTIME_iteration_pop( MORSE_context_t *morse )
+{
+    (void)morse;
+    return;
+}
+
diff --git a/runtime/parsec/control/runtime_zlocality.c b/runtime/parsec/control/runtime_zlocality.c
index 8dc21a47348d293d054edbcd7b9308ebe71e9b23..6b1b97ddac2db608237cf2c7b9d5c52474cad73e 100644
--- a/runtime/parsec/control/runtime_zlocality.c
+++ b/runtime/parsec/control/runtime_zlocality.c
@@ -1,10 +1,16 @@
 /**
  *
- * @copyright (c) 2009-2015 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2015 Inria. All rights reserved.
- * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ * @copyright 2012-2017 The University of Tennessee and The University of
+ *                      Tennessee Research Foundation.  All rights reserved.
+ * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ * @file runtime_zlocality.c
+ *
+ * @version 1.0.0
+ * @author Reazul Hoque
+ * @author Mathieu Faverge
+ * @date 2017-01-12
  *
  **/
 #include "runtime/PaRSEC/include/chameleon_parsec.h"
diff --git a/runtime/parsec/control/runtime_zprofiling.c b/runtime/parsec/control/runtime_zprofiling.c
index 1bcf7d0dfd518848f2fe2df0f29737b1b447037a..f93c365870819216f5dc30663651f0b7f663cd98 100644
--- a/runtime/parsec/control/runtime_zprofiling.c
+++ b/runtime/parsec/control/runtime_zprofiling.c
@@ -1,10 +1,16 @@
 /**
  *
- * @copyright (c) 2009-2015 The University of Tennessee and The University
- *                          of Tennessee Research Foundation.
- *                          All rights reserved.
- * @copyright (c) 2012-2015 Inria. All rights reserved.
- * @copyright (c) 2012-2015 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria, Univ. Bordeaux. All rights reserved.
+ * @copyright 2012-2017 The University of Tennessee and The University of
+ *                      Tennessee Research Foundation.  All rights reserved.
+ * @copyright 2012-2017 Bordeaux INP, CNRS (LaBRI UMR 5800), Inria,
+ *                      Univ. Bordeaux. All rights reserved.
+ *
+ * @file runtime_zprofiling.c
+ *
+ * @version 1.0.0
+ * @author Reazul Hoque
+ * @author Mathieu Faverge
+ * @date 2017-01-12
  *
  **/
 #include "chameleon_parsec.h"
diff --git a/runtime/parsec/include/chameleon_parsec.h b/runtime/parsec/include/chameleon_parsec.h
index f1b91ebc6e32929220e889daa9848da0336f0889..a75f2ee877ccf372a07b186677f6a6d6cea764f3 100644
--- a/runtime/parsec/include/chameleon_parsec.h
+++ b/runtime/parsec/include/chameleon_parsec.h
@@ -16,7 +16,6 @@
 
 #include "control/common.h"
 
-
 struct morse_parsec_desc_s;
 typedef struct morse_parsec_desc_s morse_parsec_desc_t;
 
diff --git a/runtime/starpu/control/runtime_control.c b/runtime/starpu/control/runtime_control.c
index 770c18261568696f102f215b92916a21c1abe717..6034f92aec9d7e7cde421e2aa24da05e908270a6 100644
--- a/runtime/starpu/control/runtime_control.c
+++ b/runtime/starpu/control/runtime_control.c
@@ -236,15 +236,14 @@ int RUNTIME_thread_size( MORSE_context_t *morse )
  **/
 int RUNTIME_comm_rank( MORSE_context_t *morse )
 {
-    int rank;
+    int rank = 0;
+
 #if defined(CHAMELEON_USE_MPI)
 #  if defined(HAVE_STARPU_MPI_COMM_RANK)
     starpu_mpi_comm_rank( MPI_COMM_WORLD, &rank );
 #  else
     MPI_Comm_rank( MPI_COMM_WORLD, &rank );
 #  endif
-#else
-    rank = 0;
 #endif
 
     (void)morse;