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