Removed windows line feeds.
authorIsaac Dooley <idooley2@illinois.edu>
Wed, 29 Mar 2006 19:04:22 +0000 (19:04 +0000)
committerIsaac Dooley <idooley2@illinois.edu>
Wed, 29 Mar 2006 19:04:22 +0000 (19:04 +0000)
examples/ampi/alltoall/alltoall.c

index 48f4e2e074711b566e9e5c2078f8c22003fea962..892ea1d2937a0bdaa613e3a60c319d5a6e1c6493 100644 (file)
-#include <stdio.h>\r
-#include "mpi.h"\r
-#include <sys/time.h>\r
-#include <stdlib.h>\r
-\r
-#define INIT_SEC 1000000\r
-\r
-struct itimerval *tim;\r
-unsigned int Timers = 0;\r
-\r
-void   Create_Timers (int n);\r
-void   Start_Timer   (int i, int which);\r
-float  Read_Timer    (int i, int which);\r
-\r
-void Create_Timers (int n){\r
-  if( Timers > 0 ){\r
-    fprintf (stderr, "Create_Timers: timers already created!\n");\r
-    exit (-1);\r
-  }\r
-  \r
-  tim = (struct itimerval*) malloc (n * sizeof (struct itimerval));\r
-  Timers = n;\r
-}\r
-\r
-void Start_Timer (int i, int which){\r
-  if( i >= Timers ){\r
-    fprintf (stderr, "Start_Timers: out-of-range timer index %d\n", i);\r
-    exit (-1);\r
-  }\r
-  \r
-  tim[i].it_value.tv_sec = INIT_SEC;\r
-  tim[i].it_value.tv_usec = 0;\r
-  tim[i].it_interval.tv_sec = INIT_SEC;\r
-  tim[i].it_interval.tv_usec = 0;\r
-  \r
-  setitimer (which, &(tim[i]), NULL);\r
-}\r
-\r
-float Read_Timer (int i, int which){\r
-  float elapsed_time;\r
-  \r
-  if( i >= Timers ){\r
-    fprintf (stderr, "Read_Timer: out-of-range timer index %d\n", i);\r
-    exit (-1);\r
-  }\r
-  \r
-  getitimer (which, &(tim[i]));\r
-  \r
-  elapsed_time = ( (float)INIT_SEC - tim[i].it_value.tv_sec ) -\r
-    ( (float)tim[i].it_value.tv_usec/1000000 );\r
-  \r
-  return elapsed_time;\r
-}\r
-\r
-main(int argc, char **argv){\r
-  int my_id;           /* process id */\r
-  int p;               /* number of processes */\r
-  char* message;       /* storage for the message */\r
-  int i, k, max_msgs, msg_size;\r
-  MPI_Status status;   /* return status for receive */\r
-  float elapsed_time_msec;\r
-  float bandwidth;\r
-  char *sndbuf, *recvbuf;\r
-  \r
-  MPI_Init( &argc, &argv );\r
-  MPI_Comm_rank( MPI_COMM_WORLD, &my_id );\r
-  MPI_Comm_size( MPI_COMM_WORLD, &p );\r
-  \r
-  if (argc < 2) {\r
-    fprintf (stderr, "need msg size as params\n");\r
-    goto EXIT;\r
-  }\r
-  \r
-  if(sscanf (argv[1], "%d", &msg_size) < 1){\r
-    fprintf (stderr, "need msg size as params\n");\r
-    goto EXIT;\r
-  }\r
-  message = (char*)malloc (msg_size);\r
-\r
-  max_msgs = 1000;\r
-  if(argc>2) \r
-    sscanf (argv[2], "%d", &max_msgs);\r
-  \r
-  /* don't start timer until everybody is ok */\r
-  MPI_Barrier(MPI_COMM_WORLD); \r
-  \r
-  if( my_id == 0 ){\r
-    int flag=0;\r
-    printf("Starting benchmark on %d processors with %d iterations\n", p, max_msgs); \r
-    Create_Timers (1);\r
-    Start_Timer (0, ITIMER_REAL);\r
-  }    \r
-  sndbuf = (char *)malloc(msg_size * sizeof(char) * p);\r
-  recvbuf = (char *)malloc(msg_size * sizeof(char) * p);\r
-  \r
-  for(i=0; i<max_msgs; i++) {\r
-    MPI_Alltoall(sndbuf, msg_size, MPI_CHAR, recvbuf, msg_size, MPI_CHAR, MPI_COMM_WORLD);\r
-  }\r
-  MPI_Barrier(MPI_COMM_WORLD); \r
-\r
-  if(my_id==0){\r
-    elapsed_time_msec = Read_Timer (0, ITIMER_REAL) * 1000.0 / max_msgs;\r
-    bandwidth = 2 * 8 * msg_size / (1000.0 * elapsed_time_msec);\r
-    \r
-    fprintf (stdout, "%5d %7d\t ", max_msgs, msg_size);\r
-    fprintf (stdout,"%8.3f msec,\t %8.3f Mbits/sec\n",\r
-            elapsed_time_msec, bandwidth);\r
-  }\r
-  \r
-  free(sndbuf);\r
-  free(recvbuf);\r
-  \r
-  \r
- EXIT:\r
-  MPI_Finalize();\r
-}\r
-\r
+#include <stdio.h>
+#include "mpi.h"
+#include <sys/time.h>
+#include <stdlib.h>
+
+#define INIT_SEC 1000000
+
+struct itimerval *tim;
+unsigned int Timers = 0;
+
+void   Create_Timers (int n);
+void   Start_Timer   (int i, int which);
+float  Read_Timer    (int i, int which);
+
+void Create_Timers (int n){
+  if( Timers > 0 ){
+    fprintf (stderr, "Create_Timers: timers already created!\n");
+    exit (-1);
+  }
+  
+  tim = (struct itimerval*) malloc (n * sizeof (struct itimerval));
+  Timers = n;
+}
+
+void Start_Timer (int i, int which){
+  if( i >= Timers ){
+    fprintf (stderr, "Start_Timers: out-of-range timer index %d\n", i);
+    exit (-1);
+  }
+  
+  tim[i].it_value.tv_sec = INIT_SEC;
+  tim[i].it_value.tv_usec = 0;
+  tim[i].it_interval.tv_sec = INIT_SEC;
+  tim[i].it_interval.tv_usec = 0;
+  
+  setitimer (which, &(tim[i]), NULL);
+}
+
+float Read_Timer (int i, int which){
+  float elapsed_time;
+  
+  if( i >= Timers ){
+    fprintf (stderr, "Read_Timer: out-of-range timer index %d\n", i);
+    exit (-1);
+  }
+  
+  getitimer (which, &(tim[i]));
+  
+  elapsed_time = ( (float)INIT_SEC - tim[i].it_value.tv_sec ) -
+    ( (float)tim[i].it_value.tv_usec/1000000 );
+  
+  return elapsed_time;
+}
+
+main(int argc, char **argv){
+  int my_id;           /* process id */
+  int p;               /* number of processes */
+  char* message;       /* storage for the message */
+  int i, k, max_msgs, msg_size;
+  MPI_Status status;   /* return status for receive */
+  float elapsed_time_msec;
+  float bandwidth;
+  char *sndbuf, *recvbuf;
+  
+  MPI_Init( &argc, &argv );
+  MPI_Comm_rank( MPI_COMM_WORLD, &my_id );
+  MPI_Comm_size( MPI_COMM_WORLD, &p );
+  
+  if (argc < 2) {
+    fprintf (stderr, "need msg size as params\n");
+    goto EXIT;
+  }
+  
+  if(sscanf (argv[1], "%d", &msg_size) < 1){
+    fprintf (stderr, "need msg size as params\n");
+    goto EXIT;
+  }
+  message = (char*)malloc (msg_size);
+
+  max_msgs = 1000;
+  if(argc>2) 
+    sscanf (argv[2], "%d", &max_msgs);
+  
+  /* don't start timer until everybody is ok */
+  MPI_Barrier(MPI_COMM_WORLD); 
+  
+  if( my_id == 0 ){
+    int flag=0;
+    printf("Starting benchmark on %d processors with %d iterations\n", p, max_msgs); 
+    Create_Timers (1);
+    Start_Timer (0, ITIMER_REAL);
+  }    
+  sndbuf = (char *)malloc(msg_size * sizeof(char) * p);
+  recvbuf = (char *)malloc(msg_size * sizeof(char) * p);
+  
+  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); 
+
+  if(my_id==0){
+    elapsed_time_msec = Read_Timer (0, ITIMER_REAL) * 1000.0 / max_msgs;
+    bandwidth = 2 * 8 * msg_size / (1000.0 * elapsed_time_msec);
+    
+    fprintf (stdout, "%5d %7d\t ", max_msgs, msg_size);
+    fprintf (stdout,"%8.3f msec,\t %8.3f Mbits/sec\n",
+            elapsed_time_msec, bandwidth);
+  }
+  
+  free(sndbuf);
+  free(recvbuf);
+  
+  
+ EXIT:
+  MPI_Finalize();
+}
+