diff --git a/MPI/mpipi2.c b/MPI/mpipi2.c
index 6b249e8a1c6be9faf9189ce5edbcf61722f13a93..a63864105fabc55bf44d322f23f654b5d1c78310 100755
--- a/MPI/mpipi2.c
+++ b/MPI/mpipi2.c
@@ -1,7 +1,8 @@
 /*
 * mpipi2.c
 * Neil Gershenfeld  7/1/19
-* use MPI to evaluate pi by summation, including overhead
+* MPI pi calculation benchmark, with multiple iterations
+* pi = 3.14159265358979323846
 */
 
 #include <stdio.h>
@@ -9,43 +10,47 @@
 #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,istart,iend,init_time,start_time,end_time;
-   struct timeval init,start,end;
-   double sum,pi,mflops;
-
-   gettimeofday(&init,NULL);
+   uint64_t i,j,istart,iend,start_time,end_time;
+   struct timeval start,end;
+   double sum,pi,mflops,max;
    MPI_Init(&argc,&argv);
    MPI_Comm_rank(MPI_COMM_WORLD,&rank);
    MPI_Comm_size(MPI_COMM_WORLD,&nproc);
+   max = 0;
    if (rank == 0) {
-      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, estimated MFlops = %f\n",(start_time-init_time)/1.0e6,(end_time-start_time)/1.0e6,mflops);
+      for (j = 0; j < NLOOP; ++j) {
+         MPI_Barrier(MPI_COMM_WORLD);
+         gettimeofday(&start,NULL);
+         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);
+         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);
+         if (mflops > max) max = mflops;
+         printf("time = %f, estimated MFlops = %f, max = %f\n",(end_time-start_time)/1.0e6,mflops,max);
+         }
       }
    else {
-      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));
-      MPI_Reduce(&sum,&pi,1,MPI_DOUBLE,MPI_SUM,0,MPI_COMM_WORLD);
+      for (j = 0; j < NLOOP; ++j) {
+         MPI_Barrier(MPI_COMM_WORLD);
+         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);
+         }
       }
    MPI_Finalize();
    }
diff --git a/MPI/mpipi3.c b/MPI/mpipi3.c
deleted file mode 100755
index 0cf4897f4ece864f9e6c066c0a1a69386b438c07..0000000000000000000000000000000000000000
--- a/MPI/mpipi3.c
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
-* mpipi3.c
-* Neil Gershenfeld  7/1/19
-* use MPI to evaluate pi by summation,
-*    including overhead, with multiple iterations
-*/
-
-#include <stdio.h>
-#include <mpi.h>
-#include <sys/time.h>
-#include <stdint.h>
-
-#define NPTS 100000000
-#define NLOOP 10
-
-void main(int argc, char** argv) {
-   uint32_t rank,nproc;
-   uint64_t i,j,istart,iend,start_time,end_time;
-   struct timeval start,end;
-   double sum,pi,mflops,max;
-   MPI_Init(&argc,&argv);
-   MPI_Comm_rank(MPI_COMM_WORLD,&rank);
-   MPI_Comm_size(MPI_COMM_WORLD,&nproc);
-   max = 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);
-         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);
-         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);
-         if (mflops > max) max = mflops;
-         printf("time = %f, estimated MFlops = %f, max = %f\n",(end_time-start_time)/1.0e6,mflops,max);
-         }
-      }
-   else {
-      istart = 1+rank*NPTS;
-      iend = (rank+1)*NPTS;
-      for (j = 0; j < NLOOP; ++j) {
-         MPI_Barrier(MPI_COMM_WORLD);
-         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);
-         }
-      }
-   MPI_Finalize();
-   }