8、并行化规划:从测试到实施的全面指南

并行化规划:从测试到实施的全面指南

1. 理想测试系统的进一步要求

对于大多数情况而言,之前所述的测试系统已足够。然而,对于大型高性能计算(HPC)项目,还有更多方面是有帮助的。这类HPC项目通常有大量的测试套件,并且可能需要在批处理系统中运行以获取更多资源。

协作测试系统(CTS)(https://sourceforge.net/projects/ctsproject/ )就是为满足这些需求而开发的系统示例。它使用Perl脚本运行一组固定的测试服务器(通常为10个),将测试并行地提交到批处理系统。当一个测试完成后,立即启动下一个测试,避免系统同时被大量作业淹没。CTS系统还能自动检测批处理系统和MPI类型,并为每个系统调整脚本。报告系统使用cron作业,在夜间早期启动测试,跨平台报告在早上生成并发送。

2. 查找和修复内存问题

良好的代码质量至关重要。并行化往往会使代码中的缺陷暴露出来,常见的问题包括未初始化内存和内存覆盖。
- 未初始化内存 :在设置值之前就访问的内存。当为程序分配内存时,该内存位置可能包含任意值。如果在设置值之前使用这些内存,会导致不可预测的行为。
- 内存覆盖 :将数据写入不属于变量的内存位置。例如,向数组或字符串的边界外写入数据。

为了发现这类问题,建议使用内存正确性工具彻底检查代码。其中,免费的Valgrind程序是最佳选择之一。Valgrind是一个在机器代码层面运行的工具框架,通过模拟CPU执行指令。在Valgrind框架下开发了许多工具。

安装Valgrind

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值