"这篇实验报告是关于北京邮电大学软件学院2020-2021学年第一学期的并行计算课程,学生通过多种方法进行π的并行计算,旨在学习并行计算的基本原理和应用。实验环境中使用了Visual Studio 2019,并在Windows或Linux系统上进行,节点间通过网络互联。实验要求包括记录实验过程、编写源代码和撰写实验报告。报告中具体提到了使用MPICH(Message Passing Interface)进行并行计算的步骤,包括幂级数积分法和蒙特卡洛方法计算π的值,并通过MPI函数实现进程间的通信和数据聚合。"
实验中涉及的主要知识点如下:
1. **并行计算**: 并行计算是指同时使用多个处理器或计算机来执行一个计算任务,以提高计算速度和效率。在这个实验中,通过改变进程数来观察并行计算对计算π的影响。
2. **MPI(Message Passing Interface)**: MPI是一种标准的并行计算接口,允许分布在不同计算节点上的进程之间进行通信。在实验中,MPI_Init初始化MPI环境,MPI_Comm_rank获取进程ID,MPI_Comm_size获取进程总数,MPI_Bcast进行广播操作,将变量N发送到所有进程,MPI_Reduce用于将所有进程的结果归约到一个进程,这里是求和操作。
3. **幂级数积分法计算π**: 这是一种数值计算方法,通过求解无穷级数来逼近π的值。在实验中,可能定义了一个名为`powerSeries`的函数来实现这种方法。
4. **蒙特卡洛方法计算π**: 蒙特卡洛方法是一种随机模拟方法,通过大量随机点落在单位圆内的比例来估算π的值。实验中,可能有一个名为`MonteCarlo`的函数来执行这个计算。
5. **MPI_Bcast和MPI_Reduce**: MPI_Bcast函数用于广播一个变量到所有进程,确保所有进程有相同的数据起点。MPI_Reduce则将所有进程的局部结果减少到一个全局结果,这里使用MPI_SUM操作符将所有进程的`ValueSum`累加到根进程(进程ID为0)的`PI`变量中。
6. **性能分析**: 实验中记录了开始和结束时间,计算了总用时,以及计算得到的π值与实际π值的误差,这有助于分析并行计算的效率和精度。
7. **并行化策略**: 实验中通过封装不同的π计算方法到单独的函数,然后在main函数中调用,展示了如何组织并行程序的结构,使得代码易于理解和扩展。
8. **并行效率和可扩展性**: 实验通过改变进程数,观察计算时间的变化,可以初步评估并行算法的效率和系统的可扩展性。
通过这个实验,学生不仅学习了并行计算的基本概念,还实践了并行编程技术,了解了如何利用并行计算加速复杂问题的解决。