|
@@ -36,7 +36,6 @@ int burst_nb_requests = NB_REQUESTS;
|
|
|
|
|
|
void burst_init_data(int rank)
|
|
void burst_init_data(int rank)
|
|
{
|
|
{
|
|
- int i;
|
|
|
|
if (rank == 0 || rank == 1)
|
|
if (rank == 0 || rank == 1)
|
|
{
|
|
{
|
|
recv_handles = malloc(burst_nb_requests * sizeof(starpu_data_handle_t));
|
|
recv_handles = malloc(burst_nb_requests * sizeof(starpu_data_handle_t));
|
|
@@ -46,7 +45,7 @@ void burst_init_data(int rank)
|
|
recv_reqs = malloc(burst_nb_requests * sizeof(starpu_mpi_req));
|
|
recv_reqs = malloc(burst_nb_requests * sizeof(starpu_mpi_req));
|
|
send_reqs = malloc(burst_nb_requests * sizeof(starpu_mpi_req));
|
|
send_reqs = malloc(burst_nb_requests * sizeof(starpu_mpi_req));
|
|
|
|
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
send_buffers[i] = malloc(NX_ARRAY * sizeof(float));
|
|
send_buffers[i] = malloc(NX_ARRAY * sizeof(float));
|
|
memset(send_buffers[i], 0, NX_ARRAY * sizeof(float));
|
|
memset(send_buffers[i], 0, NX_ARRAY * sizeof(float));
|
|
@@ -61,10 +60,9 @@ void burst_init_data(int rank)
|
|
|
|
|
|
void burst_free_data(int rank)
|
|
void burst_free_data(int rank)
|
|
{
|
|
{
|
|
- int i;
|
|
|
|
if (rank == 0 || rank == 1)
|
|
if (rank == 0 || rank == 1)
|
|
{
|
|
{
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
starpu_data_unregister(send_handles[i]);
|
|
starpu_data_unregister(send_handles[i]);
|
|
free(send_buffers[i]);
|
|
free(send_buffers[i]);
|
|
@@ -86,12 +84,12 @@ void burst_free_data(int rank)
|
|
void burst_bidir(int rank)
|
|
void burst_bidir(int rank)
|
|
{
|
|
{
|
|
int other_rank = (rank == 0) ? 1 : 0;
|
|
int other_rank = (rank == 0) ? 1 : 0;
|
|
- int i;
|
|
|
|
|
|
+
|
|
FPRINTF(stderr, "Simultaneous....start (rank %d)\n", rank);
|
|
FPRINTF(stderr, "Simultaneous....start (rank %d)\n", rank);
|
|
|
|
|
|
if (rank == 0 || rank == 1)
|
|
if (rank == 0 || rank == 1)
|
|
{
|
|
{
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
recv_reqs[i] = NULL;
|
|
recv_reqs[i] = NULL;
|
|
starpu_mpi_irecv(recv_handles[i], &recv_reqs[i], other_rank, i, MPI_COMM_WORLD);
|
|
starpu_mpi_irecv(recv_handles[i], &recv_reqs[i], other_rank, i, MPI_COMM_WORLD);
|
|
@@ -102,13 +100,13 @@ void burst_bidir(int rank)
|
|
|
|
|
|
if (rank == 0 || rank == 1)
|
|
if (rank == 0 || rank == 1)
|
|
{
|
|
{
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
send_reqs[i] = NULL;
|
|
send_reqs[i] = NULL;
|
|
starpu_mpi_isend_prio(send_handles[i], &send_reqs[i], other_rank, i, i, MPI_COMM_WORLD);
|
|
starpu_mpi_isend_prio(send_handles[i], &send_reqs[i], other_rank, i, i, MPI_COMM_WORLD);
|
|
}
|
|
}
|
|
|
|
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
if (recv_reqs[i]) starpu_mpi_wait(&recv_reqs[i], MPI_STATUS_IGNORE);
|
|
if (recv_reqs[i]) starpu_mpi_wait(&recv_reqs[i], MPI_STATUS_IGNORE);
|
|
if (send_reqs[i]) starpu_mpi_wait(&send_reqs[i], MPI_STATUS_IGNORE);
|
|
if (send_reqs[i]) starpu_mpi_wait(&send_reqs[i], MPI_STATUS_IGNORE);
|
|
@@ -122,10 +120,10 @@ void burst_bidir(int rank)
|
|
void burst_unidir(int sender, int receiver, int rank)
|
|
void burst_unidir(int sender, int receiver, int rank)
|
|
{
|
|
{
|
|
FPRINTF(stderr, "%d -> %d... start (rank %d)\n", sender, receiver, rank);
|
|
FPRINTF(stderr, "%d -> %d... start (rank %d)\n", sender, receiver, rank);
|
|
- int i;
|
|
|
|
|
|
+
|
|
if (rank == receiver)
|
|
if (rank == receiver)
|
|
{
|
|
{
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
recv_reqs[i] = NULL;
|
|
recv_reqs[i] = NULL;
|
|
starpu_mpi_irecv(recv_handles[i], &recv_reqs[i], sender, i, MPI_COMM_WORLD);
|
|
starpu_mpi_irecv(recv_handles[i], &recv_reqs[i], sender, i, MPI_COMM_WORLD);
|
|
@@ -136,7 +134,7 @@ void burst_unidir(int sender, int receiver, int rank)
|
|
|
|
|
|
if (rank == sender)
|
|
if (rank == sender)
|
|
{
|
|
{
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
send_reqs[i] = NULL;
|
|
send_reqs[i] = NULL;
|
|
starpu_mpi_isend_prio(send_handles[i], &send_reqs[i], receiver, i, i, MPI_COMM_WORLD);
|
|
starpu_mpi_isend_prio(send_handles[i], &send_reqs[i], receiver, i, i, MPI_COMM_WORLD);
|
|
@@ -145,7 +143,7 @@ void burst_unidir(int sender, int receiver, int rank)
|
|
|
|
|
|
if (rank == sender || rank == receiver)
|
|
if (rank == sender || rank == receiver)
|
|
{
|
|
{
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
if (rank != sender && recv_reqs[i]) starpu_mpi_wait(&recv_reqs[i], MPI_STATUS_IGNORE);
|
|
if (rank != sender && recv_reqs[i]) starpu_mpi_wait(&recv_reqs[i], MPI_STATUS_IGNORE);
|
|
if (rank == sender && send_reqs[i]) starpu_mpi_wait(&send_reqs[i], MPI_STATUS_IGNORE);
|
|
if (rank == sender && send_reqs[i]) starpu_mpi_wait(&send_reqs[i], MPI_STATUS_IGNORE);
|
|
@@ -162,13 +160,12 @@ void burst_bidir_half_postponed(int rank)
|
|
{
|
|
{
|
|
int other_rank = (rank == 0) ? 1 : 0;
|
|
int other_rank = (rank == 0) ? 1 : 0;
|
|
int received = 0;
|
|
int received = 0;
|
|
- int i;
|
|
|
|
|
|
|
|
FPRINTF(stderr, "Half/half burst...start (rank %d)\n", rank);
|
|
FPRINTF(stderr, "Half/half burst...start (rank %d)\n", rank);
|
|
|
|
|
|
if (rank == 0 || rank == 1)
|
|
if (rank == 0 || rank == 1)
|
|
{
|
|
{
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
recv_reqs[i] = NULL;
|
|
recv_reqs[i] = NULL;
|
|
starpu_mpi_irecv(recv_handles[i], &recv_reqs[i], other_rank, i, MPI_COMM_WORLD);
|
|
starpu_mpi_irecv(recv_handles[i], &recv_reqs[i], other_rank, i, MPI_COMM_WORLD);
|
|
@@ -179,7 +176,7 @@ void burst_bidir_half_postponed(int rank)
|
|
|
|
|
|
if (rank == 0 || rank == 1)
|
|
if (rank == 0 || rank == 1)
|
|
{
|
|
{
|
|
- for (i = 0; i < (burst_nb_requests / 2); i++)
|
|
|
|
|
|
+ for (int i = 0; i < (burst_nb_requests / 2); i++)
|
|
{
|
|
{
|
|
send_reqs[i] = NULL;
|
|
send_reqs[i] = NULL;
|
|
starpu_mpi_isend_prio(send_handles[i], &send_reqs[i], other_rank, i, i, MPI_COMM_WORLD);
|
|
starpu_mpi_isend_prio(send_handles[i], &send_reqs[i], other_rank, i, i, MPI_COMM_WORLD);
|
|
@@ -187,13 +184,13 @@ void burst_bidir_half_postponed(int rank)
|
|
|
|
|
|
if (recv_reqs[burst_nb_requests / 4]) starpu_mpi_wait(&recv_reqs[burst_nb_requests / 4], MPI_STATUS_IGNORE);
|
|
if (recv_reqs[burst_nb_requests / 4]) starpu_mpi_wait(&recv_reqs[burst_nb_requests / 4], MPI_STATUS_IGNORE);
|
|
|
|
|
|
- for (i = (burst_nb_requests / 2); i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = (burst_nb_requests / 2); i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
send_reqs[i] = NULL;
|
|
send_reqs[i] = NULL;
|
|
starpu_mpi_isend_prio(send_handles[i], &send_reqs[i], other_rank, i, i, MPI_COMM_WORLD);
|
|
starpu_mpi_isend_prio(send_handles[i], &send_reqs[i], other_rank, i, i, MPI_COMM_WORLD);
|
|
}
|
|
}
|
|
|
|
|
|
- for (i = 0; i < burst_nb_requests; i++)
|
|
|
|
|
|
+ for (int i = 0; i < burst_nb_requests; i++)
|
|
{
|
|
{
|
|
if (recv_reqs[i]) starpu_mpi_wait(&recv_reqs[i], MPI_STATUS_IGNORE);
|
|
if (recv_reqs[i]) starpu_mpi_wait(&recv_reqs[i], MPI_STATUS_IGNORE);
|
|
if (send_reqs[i]) starpu_mpi_wait(&send_reqs[i], MPI_STATUS_IGNORE);
|
|
if (send_reqs[i]) starpu_mpi_wait(&send_reqs[i], MPI_STATUS_IGNORE);
|