-
Notifications
You must be signed in to change notification settings - Fork 22
计算最佳计算规模选取参考
Li Jiang edited this page Mar 16, 2017
·
7 revisions
使用并行程序在HPC系统上进行计算总需要面临一个问题: 选多大规模的节点来进行并行计算好?
这个问题很难,因为涉及的因素非常多,但其实也很容易,只需要几个简单的测试即可,但在实际的客户服务过程中,我发现很多用户都没有意识到,由于计算规模选择不当带来的时间和金钱上的浪费。另外,这个测试过程也是发现程序性能瓶颈的过程,能够为如何优化程序的性能提供指导。
测试过程可以简单的分为这几个过程 :
-
准备测试算例
-
进行测试
-
结果分析
这是很多人忽略掉得一点儿,而直接用实际的算例就开始测试,结果实际浪费了大量的时间和机时。
实际的算例的好处是测试结果直接反应了需要花费的时间。但耗时太长并非一个好的测试,因而更好的做法是保持算例的问题复杂度的同时减少需要计算的时间。幸好大部分的科学计算都是迭代计算,最简单的办法是减少迭代次数。我们并不需要跑一个完整的算例来选择最优的计算规模。在此推荐对于大多数程序的测试迭代步选择5~10步。
为了给分析提供更多的数据,我们最好选择让程序提供详细的LOG 文件,能知道每个迭代步的耗时。
如果程序实在无法提供详细的数据,那么可以通过两个不同迭代步的测试(如test1 5 step , test2 10 step )来评估实际的迭代计算耗时。
测试过程建议从可能的最小的并行规模开始测试,逐步增加并行规模。
单核计算(1N1n),单节点所有核(1N24n),2个节点一半核(2N24n),2个节点所有核(2N48n) 这几个规模的测试可以帮助评估通信性能对计算性能的影响。
未完待续。