-/* Copyright (c) 2009-2010, 2012-2015. The SimGrid Team.
+/* Copyright (c) 2009-2023. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
#include <stdio.h>
#include "mpi.h"
#include "simgrid/instr.h"
+#include <unistd.h>
#define DATATOSENT 100000
int main(int argc, char *argv[])
{
- int rank, numprocs, i;
+ int rank;
+ int numprocs;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &numprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
-
+ sleep(rank);
/** Tests:
* A: 0(isend -> wait) with 1(recv)
* B: 0(send) with 1(irecv -> wait)
/** Test C */
TRACE_smpi_set_category("C");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
}
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Wait(&req[i], &sta[i]);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("D");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
}
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
int completed;
MPI_Waitany(N, req, &completed, sta);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("E");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("F");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("G");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
}
MPI_Waitall(N, req, sta);
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("H");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("I");
- for (i = 0; i < 2 * N; i++) {
+ for (int i = 0; i < 2 * N; i++) {
if (i < N) {
MPI_Send(r, DATATOSENT, MPI_INT, 2, tag, MPI_COMM_WORLD);
} else {
}
}
MPI_Barrier(MPI_COMM_WORLD);
- for (i = 0; i < 2 * N; i++) {
+ for (int i = 0; i < 2 * N; i++) {
if (i < N) {
MPI_Irecv(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
} else {
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("J");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
}
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
int flag;
MPI_Test(&req[i], &flag, &sta[i]);
}
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Wait(&req[i], &sta[i]);
}
free(r);
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("C");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("D");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("E");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Wait(&req[i], &sta[i]);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("F");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
int completed;
MPI_Waitany(N, req, &completed, sta);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("G");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
}
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("H");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
MPI_Waitall(N, req, sta);
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("I");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
MPI_Waitall(N, req, sta);
MPI_Barrier(MPI_COMM_WORLD);
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Isend(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
MPI_Waitall(N, req, sta);
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("J");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
int flag;
MPI_Test(&req[i], &flag, &sta[i]);
}
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Wait(&req[i], &sta[i]);
}
free(r);
MPI_Barrier(MPI_COMM_WORLD);
MPI_Barrier(MPI_COMM_WORLD);
TRACE_smpi_set_category("I");
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
int completed;
MPI_Waitany(N, req, &completed, sta);
}
MPI_Barrier(MPI_COMM_WORLD);
- for (i = 0; i < N; i++) {
+ for (int i = 0; i < N; i++) {
MPI_Send(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD);
}
MPI_Barrier(MPI_COMM_WORLD);