Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
simple example of smpi tracing with platform utilization (with three categories)
[simgrid.git] / examples / smpi / sendrecv.c
index da30874..6d5ba17 100644 (file)
@@ -1,7 +1,13 @@
+/* Copyright (c) 2009, 2010. The SimGrid Team.
+ * All rights reserved.                                                     */
+
+/* This program is free software; you can redistribute it and/or modify it
+ * under the terms of the license (GNU LGPL) which comes with this package. */
+
 #include "mpi.h"
 #include <stdio.h>
 
-int test(int myid, int numprocs) {
+static int test(int myid, int numprocs) {
 // The tags should match on the sender and receiver side.
 // The distinction between sendtag and recvtag is mainly
 // useful to make some other Recv or Send calls match the sendrecv. 
@@ -13,7 +19,6 @@ int test(int myid, int numprocs) {
     int left, right;
     int buffer[BUFLEN], buffer2[BUFLEN];
     int i;
-    MPI_Request request;
     MPI_Status status;
 
     for (i=0;i<BUFLEN;i++) {
@@ -29,8 +34,8 @@ int test(int myid, int numprocs) {
     MPI_Sendrecv(buffer, 10, MPI_INT, left, TAG_SND, buffer2, 10, MPI_INT, right, TAG_RCV, MPI_COMM_WORLD, &status);
  
     for (i=0;i<BUFLEN;i++) {
-               if (buffer2[i]!=((myid+1)%numprocs)) {
-                         fprintf(stderr,"[%d] error: should have values %d, has %d\n",myid,myid-1,buffer[i]);
+               if (buffer2[i]!=right) {
+                         fprintf(stderr,"[%d] error: should have values %d, has %d\n",myid,right,buffer2[i]);
                          return(0);
              }
     }