如果这个问题太基础,请原谅。我既不熟悉并行化的概念,也从未使用过HPC系统。我正在训练一个深度学习模型,这在我的PC上花费了很长时间。因此,我决定使用HPC,但在我所观看的教程之一中,它表示,如果我编写不正确的代码,HPC不会比普通PC快。到底是什么意思我应该调整我的原始代码以使HPC受益吗?
其次,我们可以说使用30个内核应该比使用6个内核快5倍吗?速度和核心数量成比例吗?
谢谢,
是的,如果您的代码花费很长时间甚至HPC都无法快速运行,我的意思是当代码很难在常规PC上运行时,您可以从HPC的性能中受益。低处理器或RAM或任何有限的资源...等等。
但是如果您编写的代码几乎是非多项式问题(具有很高的时间复杂度),那么即使是HPC也无法满足要求,它会产生差异,但不是想要的< [例如,您编写的代码具有很高的时间复杂度,这将需要一台普通计算机执行2个月的时间,而HPC仅需要1个月的时间
Q:不,我们不能。任何(潜在的)加速都有最终的上限。阿姆达尔定律。修改后的,对开销有严格限制的资源感知Amdahl's Law re-formulation更好。“我们可以说使用30核应该比使用6核快5倍吗?速度和核数成比例吗?”
在那里看到。
寻求改善性能?
this开头,最好花一些时间来调整
将经典库(例如TF或其他库)转换为高效的HPC工具并不容易,而且也不是免费的-附加的间接费用可能很容易(请参见INTERACTIVE TOOL中的结果)破坏任何潜在的HPC -功率,只是由于扩展性较差(从几个ns
范围内的成本到几个
ms
之上的成本)正在以您可能花费的任何HPC预算杀死游戏,不是吗?)