changed the scheme to calculate max mem
authorGengbin Zheng <gzheng@illinois.edu>
Sun, 9 Apr 2006 19:21:26 +0000 (19:21 +0000)
committerGengbin Zheng <gzheng@illinois.edu>
Sun, 9 Apr 2006 19:21:26 +0000 (19:21 +0000)
examples/ampi/alltoall/alltoall_VPtest.c

index 72cea780b5c7342180fa9a746f3fd6354736af0e..cae11462fc5813e741c7b27b5c922b066ad47cce 100644 (file)
@@ -64,8 +64,8 @@ main(int argc, char **argv){
   float elapsed_time_msec;
   float bandwidth;
   char *sndbuf, *recvbuf;
-  unsigned memory_before, memory_after;
-  unsigned long memory_diff, memory_max;
+  unsigned long memory_before, memory_after;
+  unsigned long memory_diff, local_memory_max, memory_max;
 
   MPI_Init( &argc, &argv );
   MPI_Comm_rank( MPI_COMM_WORLD, &my_id );
@@ -97,19 +97,20 @@ main(int argc, char **argv){
   sndbuf = (char *)malloc(msg_size * sizeof(char) * p);
   recvbuf = (char *)malloc(msg_size * sizeof(char) * p);
 
-  memory_before = CmiMaxMemoryUsage();
+  memory_before = CmiMemoryUsage();
+  CmiResetMaxMemory();
   
   for(i=0; i<max_msgs; i++) {
     MPI_Alltoall(sndbuf, msg_size, MPI_CHAR, recvbuf, msg_size, MPI_CHAR, MPI_COMM_WORLD);
   }
   MPI_Barrier(MPI_COMM_WORLD); 
+  memory_after = CmiMemoryUsage();
 
-  memory_after = CmiMaxMemoryUsage();
   memory_diff = memory_after-memory_before;
-  memory_max = 0;
+  local_memory_max = CmiMaxMemoryUsage() - memory_before;
 
   // Reduce MAX here
-  assert(MPI_SUCCESS==MPI_Reduce(&memory_diff, &memory_max, 1, MPI_UNSIGNED_LONG, MPI_MAX, 0, MPI_COMM_WORLD));
+  assert(MPI_SUCCESS==MPI_Reduce(&local_memory_max, &memory_max, 1, MPI_UNSIGNED_LONG, MPI_MAX, 0, MPI_COMM_WORLD));
 
 
   if(my_id==0){
@@ -120,7 +121,7 @@ main(int argc, char **argv){
     fprintf (stdout,"%8.3f msec,\t", elapsed_time_msec);
 //    fprintf( %8.3f Mbits/sec\t",  bandwidth);
 
-    printf("Mem Usage=%d Kb\tVP=%d\tMsgSize=%d\n", (memory_max) / 1024, p, msg_size);
+    printf("Mem Usage=%ld Kb\tVP=%d\tMsgSize=%d\n", (memory_max) / 1024, p, msg_size);
 
   }