#include "mpi.h"
#include <stdio.h>
+#include "instr/instr.h"
+
+#define DATATOSENT 100000
int main(int argc, char *argv[])
{
MPI_Status status;
MPI_Request req[2*N];
MPI_Status sta[2*N];
- int r;
+ int *r = (int*)malloc(sizeof(int)*DATATOSENT);
if (A){
- MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &request);
+ TRACE_smpi_set_category ("A");
+ MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &request);
MPI_Wait (&request, &status);
}
MPI_Barrier (MPI_COMM_WORLD);
if (B){
- MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+ TRACE_smpi_set_category ("B");
+ MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
}
MPI_Barrier (MPI_COMM_WORLD);
if (C){
+ TRACE_smpi_set_category ("C");
for (i = 0; i < N; i++){
- MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
}
for (i = 0; i < N; i++){
MPI_Wait (&req[i], &sta[i]);
MPI_Barrier (MPI_COMM_WORLD);
if (D){
+ TRACE_smpi_set_category ("D");
for (i = 0; i < N; i++){
- MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
}
for (i = 0; i < N; i++){
int completed;
MPI_Barrier (MPI_COMM_WORLD);
if (E){
+ TRACE_smpi_set_category ("E");
for (i = 0; i < N; i++){
- MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+ MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
}
}
MPI_Barrier (MPI_COMM_WORLD);
if (F){
+ TRACE_smpi_set_category ("F");
for (i = 0; i < N; i++){
- MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+ MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
}
}
MPI_Barrier (MPI_COMM_WORLD);
if (G){
+ TRACE_smpi_set_category ("G");
for (i = 0; i < N; i++){
- MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
}
MPI_Waitall (N, req, sta);
}
MPI_Barrier (MPI_COMM_WORLD);
if (H){
+ TRACE_smpi_set_category ("H");
for (i = 0; i < N; i++){
- MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+ MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
}
}
MPI_Barrier (MPI_COMM_WORLD);
if (I){
+ TRACE_smpi_set_category ("I");
for (i = 0; i < 2*N; i++){
if (i < N){
- MPI_Send(&rank, 1, MPI_INT, 2, tag, MPI_COMM_WORLD);
+ MPI_Send(r, DATATOSENT, MPI_INT, 2, tag, MPI_COMM_WORLD);
}else{
- MPI_Send(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD);
+ MPI_Send(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD);
}
}
MPI_Barrier (MPI_COMM_WORLD);
for (i = 0; i < 2*N; i++){
if (i < N){
- MPI_Irecv(&r, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Irecv(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
}else{
- MPI_Irecv(&r, 1, MPI_INT, 2, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Irecv(r, DATATOSENT, MPI_INT, 2, tag, MPI_COMM_WORLD, &req[i]);
}
}
MPI_Waitall (2*N, req, sta);
MPI_Barrier (MPI_COMM_WORLD);
if (J){
+ TRACE_smpi_set_category ("J");
for (i = 0; i < N; i++){
- MPI_Isend(&rank, 1, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Isend(r, DATATOSENT, MPI_INT, 1, tag, MPI_COMM_WORLD, &req[i]);
}
for (i = 0; i < N; i++){
int flag;
MPI_Status status;
MPI_Request req[N];
MPI_Status sta[N];
- int r;
+ int *r = (int*)malloc(sizeof(int)*DATATOSENT);
if (A){
- MPI_Recv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &status);
+ TRACE_smpi_set_category ("A");
+ MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &status);
}
MPI_Barrier (MPI_COMM_WORLD);
if (B){
- MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &request);
+ TRACE_smpi_set_category ("B");
+ MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &request);
MPI_Wait (&request, &status);
}
MPI_Barrier (MPI_COMM_WORLD);
if (C){
+ TRACE_smpi_set_category ("C");
for (i = 0; i < N; i++){
- MPI_Recv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
+ MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
}
}
MPI_Barrier (MPI_COMM_WORLD);
if (D){
+ TRACE_smpi_set_category ("D");
for (i = 0; i < N; i++){
- MPI_Recv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
+ MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
}
}
MPI_Barrier (MPI_COMM_WORLD);
if (E){
+ TRACE_smpi_set_category ("E");
for (i = 0; i < N; i++){
- MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
for (i = 0; i < N; i++){
MPI_Wait (&req[i], &sta[i]);
MPI_Barrier (MPI_COMM_WORLD);
if (F){
+ TRACE_smpi_set_category ("F");
for (i = 0; i < N; i++){
- MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
for (i = 0; i < N; i++){
int completed;
MPI_Barrier (MPI_COMM_WORLD);
if (G){
+ TRACE_smpi_set_category ("G");
for (i = 0; i < N; i++){
- MPI_Recv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
+ MPI_Recv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &sta[i]);
}
}
MPI_Barrier (MPI_COMM_WORLD);
if (H){
+ TRACE_smpi_set_category ("H");
for (i = 0; i < N; i++){
- MPI_Irecv(&rank, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
MPI_Waitall (N, req, sta);
}
MPI_Barrier (MPI_COMM_WORLD);
if (I){
+ TRACE_smpi_set_category ("I");
for (i = 0; i < N; i++){
- MPI_Irecv(&rank, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[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++){
- MPI_Isend(&rank, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Isend(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
MPI_Waitall (N, req, sta);
// for (i = 0; i < N; i++){
MPI_Barrier (MPI_COMM_WORLD);
if (J){
+ TRACE_smpi_set_category ("J");
for (i = 0; i < N; i++){
- MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
for (i = 0; i < N; i++){
int flag;
// MPI_Status status;
MPI_Request req[N];
MPI_Status sta[N];
- int r;
+ int *r = (int*)malloc(sizeof(int)*DATATOSENT);
if (A) {}
MPI_Barrier (MPI_COMM_WORLD);
if (H) {}
MPI_Barrier (MPI_COMM_WORLD);
if (I){
+ TRACE_smpi_set_category ("I");
for (i = 0; i < N; i++){
- MPI_Irecv(&r, 1, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
+ MPI_Irecv(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD, &req[i]);
}
for (i = 0; i < N; i++){
int completed;
MPI_Barrier (MPI_COMM_WORLD);
for (i = 0; i < N; i++){
- MPI_Send(&rank, 1, MPI_INT, 0, tag, MPI_COMM_WORLD);
+ MPI_Send(r, DATATOSENT, MPI_INT, 0, tag, MPI_COMM_WORLD);
}
}
MPI_Barrier (MPI_COMM_WORLD);