From 035979a9ee2cc3aa32be2c37d55626bdc853b513 Mon Sep 17 00:00:00 2001
From: Neil Gershenfeld <gersh@cba.mit.edu>
Date: Thu, 11 Jul 2019 23:30:31 -0400
Subject: [PATCH] wip

---
 MPI/mpipi3.c | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/MPI/mpipi3.c b/MPI/mpipi3.c
index 3e505e8..0cf4897 100755
--- a/MPI/mpipi3.c
+++ b/MPI/mpipi3.c
@@ -10,43 +10,42 @@
 #include <sys/time.h>
 #include <stdint.h>
 
-#define NPTS 10000000000
+#define NPTS 100000000
 #define NLOOP 10
 
 void main(int argc, char** argv) {
    uint32_t rank,nproc;
-   uint64_t i,j,istart,iend,init_time,start_time,end_time;
-   struct timeval init,start,end;
+   uint64_t i,j,istart,iend,start_time,end_time;
+   struct timeval start,end;
    double sum,pi,mflops,max;
-   gettimeofday(&init,NULL);
    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&rank);
    MPI_Comm_size(MPI_COMM_WORLD,&nproc);
    max = 0;
-   for (j = 0; j < NLOOP; ++j) {
-      if (rank == 0) {
+   if (rank == 0) {
+      istart = 1+rank*NPTS;
+      iend = (rank+1)*NPTS;
+      for (j = 0; j < NLOOP; ++j) {
          MPI_Barrier(MPI_COMM_WORLD);
          gettimeofday(&start,NULL);
-         istart = 1+rank*NPTS;
-         iend = (rank+1)*NPTS;
          sum = 0.0;
          for (i = istart; i <= iend; ++i)
             sum += 0.5/((i-0.75)*(i-0.25));
          MPI_Reduce(&sum,&pi,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);
          gettimeofday(&end,NULL);
-         init_time = init.tv_sec*1e6+init.tv_usec;
          start_time = start.tv_sec*1e6+start.tv_usec;
          end_time = end.tv_sec*1e6+end.tv_usec;
          mflops = nproc*NPTS*(5.0/(end_time-start_time));
          printf("processes = %d, NPTS = %ld, pi = %f\n",nproc,NPTS,pi);
-         printf("init = %f, time = %f\n",(start_time-init_time)/1.0e6,(end_time-start_time)/1.0e6);
          if (mflops > max) max = mflops;
-         printf("estimated MFlops = %f, max MFlops = %f\n",mflops,max);
+         printf("time = %f, estimated MFlops = %f, max = %f\n",(end_time-start_time)/1.0e6,mflops,max);
          }
-      else {
+      }
+   else {
+      istart = 1+rank*NPTS;
+      iend = (rank+1)*NPTS;
+      for (j = 0; j < NLOOP; ++j) {
          MPI_Barrier(MPI_COMM_WORLD);
-         istart = 1+rank*NPTS;
-         iend = (rank+1)*NPTS;
          sum = 0.0;
          for (i = istart; i <= iend; ++i)
             sum += 0.5/((i-0.75)*(i-0.25));
-- 
GitLab