コード例 #1
0
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);
}
コード例 #2
0
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;
}