void init_element(struct element *el, int size, int foreign_domain) { el->tag=size; el->foreign_domain=foreign_domain; int mpi_rank, mpi_size; MPI_Comm_rank(MPI_COMM_WORLD, &mpi_rank); starpu_vector_data_register(&el->recv, 0, (uintptr_t)el->array_recv, size, sizeof(int)); starpu_vector_data_register(&el->send, 0, (uintptr_t)el->array_send, size, sizeof(int)); starpu_void_data_register(&el->ensure_submitted_order_send); starpu_void_data_register(&el->ensure_submitted_order_recv); }
int exchange_void(int rank, int detached) { int ret, i; starpu_data_handle_t tab_handle[NB]; FPRINTF_MPI(stderr, "Exchanging void data with detached=%d\n", detached); for(i=0 ; i<NB ; i++) { starpu_void_data_register(&tab_handle[i]); starpu_mpi_data_register(tab_handle[i], i, rank); } ret = exchange(rank, tab_handle, check_void, detached); for(i=0 ; i<NB ; i++) starpu_data_unregister(tab_handle[i]); return ret; }