实验4 pi 的计算(2)
发布时间:2021-06-08
发布时间:2021-06-08
并行计算的pi的多种计算方法的实验
{
fprintf(stdout, "No number entered; quitting\n" ); n = 0;
}
startwtime = MPI_Wtime();
}
MPI_Bcast(&n, count, MPI_INT, source, MPI_COMM_WORLD);
if (n == 0)
done = 1;
else {
h = 1.0 / (double) n; // 前进步长 sum = 0.0;
for (i = myid + 1; i <= n; i += numprocs) // 分成很多的小长条。每隔numprocs,就该某进程计算
{
以不用减。
x = h * ((double)i - 0.5); //找到小长条的位置。 0.5 可 sum += f(x); } // 计算长条的高。 mypi = h * sum; // h是宽度。这样得到面积。 MPI_Reduce(&mypi, &pi, count, MPI_DOUBLE, MPI_SUM, source, MPI_COMM_WORLD); // 所有进程的工作汇总
if (myid == source)
{
printf("pi is approximately %.16f, Error is %.16f\n", pi, fabs(pi - PI25DT));
endwtime = MPI_Wtime(); // 主进程计时。
printf("wall clock time = %f\n", endwtime-startwtime);
fflush(stdout );
}
}
}
MPI_Finalize();
return 0;
2. 幂级数
tg( /4)=1
/4= arctg(1)
对arctg(x)进行幂级数展开:
arctgx= 0 1+ ∞2 = 0 ∞( 2) dx =0( )dx 交换次序= =0 0
2 +1∞ 计算积分得:argtgx= =0( 1)2 +1
上一篇:1管理沟通概述