From 4a594f15fe8c6440865737e8413688194518ed69 Mon Sep 17 00:00:00 2001 From: Mathieu Faverge <mathieu.faverge@inria.fr> Date: Fri, 29 Nov 2019 20:01:48 +0100 Subject: [PATCH] Fix issue with the number of tile handler in starpu --- runtime/starpu/control/runtime_descriptor.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/runtime/starpu/control/runtime_descriptor.c b/runtime/starpu/control/runtime_descriptor.c index 77ca06002..3d00d315d 100644 --- a/runtime/starpu/control/runtime_descriptor.c +++ b/runtime/starpu/control/runtime_descriptor.c @@ -206,7 +206,11 @@ void RUNTIME_desc_create( CHAM_desc_t *desc ) chameleon_fatal_error("RUNTIME_desc_create", "Too many tiles in the descriptor for MPI tags"); return; } - assert(lmt*lmt<=(1<<tag_sep)); + if ( (lmt*lnt) > (1UL<<tag_sep) ) { + fprintf( stderr, "lmt= %ld, lnt= %ld, tag_sep=%d, %ld\n", + lmt, lnt, tag_sep, 1UL << tag_sep ); + } + assert( (lmt*lnt) <= (1UL<<tag_sep) ); if ( ((uintptr_t)desc->id) >= (uintptr_t)(1UL<<(tag_width-tag_sep)) ) { chameleon_fatal_error("RUNTIME_desc_create", "Number of descriptor available in MPI mode out of stock"); @@ -482,7 +486,7 @@ void *RUNTIME_data_getaddr( const CHAM_desc_t *A, int m, int n ) #if defined(CHAMELEON_USE_MPI) { int64_t block_ind = A->lmt * nn + mm; - starpu_mpi_data_register(*ptrtile, (A->id << tag_sep) | (block_ind), owner); + starpu_mpi_data_register(*ptrtile, (((int64_t)A->id) << tag_sep) | block_ind, owner); } #endif /* defined(CHAMELEON_USE_MPI) */ } -- GitLab