Bladeren bron

Fix MPI sends in the DAG built from traces when coop_sends are used

Thanks to Lucas Nesi <lucas.nesi@inf.ufrgs.br> for the patch.
Philippe SWARTVAGHER 5 jaren geleden
bovenliggende
commit
44f62c9988
1 gewijzigde bestanden met toevoegingen van 6 en 0 verwijderingen
  1. 6 0
      mpi/src/starpu_mpi_coop_sends.c

+ 6 - 0
mpi/src/starpu_mpi_coop_sends.c

@@ -212,6 +212,12 @@ void _starpu_mpi_coop_send(starpu_data_handle_t data_handle, struct _starpu_mpi_
 				}
 				coop_sends = mpi_data->coop_sends;
 				_STARPU_MPI_DEBUG(0, "%p: add to cooperative sends %p, dest %d\n", data_handle, coop_sends, req->node_tag.node.rank);
+
+				/* Get the pre_sync_jobid of the first send request, to build a coherent DAG in the traces: */
+				struct _starpu_mpi_req *firstreq;
+				firstreq = _starpu_mpi_req_multilist_begin_coop_sends(&coop_sends->reqs);
+				req->pre_sync_jobid = firstreq->pre_sync_jobid;
+
 				_starpu_mpi_req_multilist_push_back_coop_sends(&coop_sends->reqs, req);
 				coop_sends->n++;
 				req->coop_sends_head = coop_sends;