From fef232035410c7c9aa755469d6a82c6662b25adb Mon Sep 17 00:00:00 2001 From: Mathieu Faverge <mathieu.faverge@inria.fr> Date: Wed, 20 Jul 2022 16:18:00 +0200 Subject: [PATCH] Reduce the number of data registration --- runtime/starpu/control/runtime_descriptor.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c index ee0698dff..f87818993 100644 --- a/runtime/starpu/control/runtime_descriptor.c +++ b/runtime/starpu/control/runtime_descriptor.c @@ -416,11 +416,23 @@ void RUNTIME_data_migrate( const RUNTIME_sequence_t *sequence, lhandle = *handle; if ( lhandle == NULL ) { + int involved; + + old_rank = A->get_rankof( A, Am, An ); + involved = (A->myrank == old_rank) || (A->myrank == new_rank); + + /* Quick return */ + if ( !involved ) { + return; + } + /* Register the data */ lhandle = RUNTIME_data_getaddr( A, Am, An ); } - old_rank = starpu_mpi_data_get_rank( lhandle ); + /* Update the rank if has been moved already (cf qr for example) */ + old_rank = starpu_mpi_data_get_rank( lhandle ); + assert( old_rank == A->get_rankof( A, Am, An ) ); if ( old_rank != new_rank ) { starpu_mpi_data_migrate( MPI_COMM_WORLD, lhandle, new_rank ); } -- GitLab