- 博客(13)
- 收藏
- 关注
原创 使用 OpenMP 和 SIMD 技术对 Euler2D 优化
计算流体力学,即Computational Fluid Dynamics(简称CFD),广泛应用于车辆设计、航空航天、宇宙天文、气象环境、核工业、国防军事等领域。其中,Euler方法是在充满流体质点的空间内任取一控制微元所包含的流体作为研究对象,欧拉模型便是对每一相建立的单独守恒方程。该程序二维区域中每个微元运动计算过程相互独立,因此具有良好的天然并行性,非常适合进行多核并行改造,从而大幅提升程序运行效率。运行结果如下:加速比为 24.33,并行效率为 0.76,效果显著。2、使用 OpenMP 优化。
2023-09-26 23:17:57
147
原创 使用SIMD完成StellarSim的性能优化
StellerSim 是一个基于离散单元数值计算的物理演化程序,该算法最早从天体动力学星云演化计算中产生,被广泛用于游戏开发引擎中的物理演化、碰撞事件、特效生成等等模块。该程序采用C++语言,完整计算了一个粒子发生器引擎模块膨胀与坍缩效果,粒子发生器被广泛用于unity、 Unreal等著名游戏物理引擎软件。通过天气物理学领域的数值模拟科学计算软件,来熟悉对串行。使用64线程进行提交后,运行时间为 3.63 s,加速比为 136.9,效果显著。软件进行并行性能优化的基本方法与步骤。headers 目录。
2023-08-18 09:26:03
132
1
原创 使用OpenMP完成StellarSim的性能优化
StellerSim 是一个基于离散单元数值计算的物理演化程序,该算法最早从天体动力学星云演化计算中产生,被广泛用于游戏开发引擎中的物理演化、碰撞事件、特效生成等等模块。该程序采用C++语言,完整计算了一个粒子发生器引擎模块膨胀与坍缩效果,粒子发生器被广泛用于unity、 Unreal等著名游戏物理引擎软件。使用32线程进行提交后,运行时间为 17.9 s,加速比为 27.7,效果显著。使用单线程进行提交后,运行时间为 497 s。二、使用32线程运行。headers 目录。
2023-08-05 14:11:53
69
1
原创 对矩阵向量乘法进行SIMD优化
使用simd和循环展开技术,对矩阵向量乘法dgemv进行改写,以实现y=Ax计算的性能优化。使用SIMD优化后,代码如下。
2023-08-01 09:53:35
249
1
原创 四个版本的雅可比迭代
2、如果通信比较多,并且次序安排的有问题的话,存在可能死锁的可能性。2、通过MPI自行维护消息发送与接收的次序,避免死锁的可能性。1、优化性能,实现计算与通信的重叠。1、引入了虚拟进程,简化了代码。四、基于重复非阻塞消息通信版本。1、优化通信,提前初始化通信。二、基于捆绑消息发送接收版本。三、基于非阻塞消息通信版本。2、整个流程复杂度高。一、基于阻塞通信版本。
2023-07-17 14:26:23
192
1
原创 对 Jacobi 程序的循环优化
在迭代次数和误差不变的情况下,通过使用循环交换、循环不变量外提、循环展开三种技术对程序进行了优化,每一种都可以提高效率,降低运行时间,混合后,更能提升程序的效率,值得推广。Jacobi 程序是矩阵计算中常见的算法,程序中存在大量的循环语句,通过使用循环优化技术,可以降低程序的运行时间,以下进行详细介绍。5、使用循环交换、循环不变量外提、循环展开混合技术进行优化。1、对原始程序进行编译,并查看运行时间。3、 使用循环不变量外提进行优化。2、使用循环交换进行优化。4、使用循环展开进行优化。
2023-07-12 15:37:46
71
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人