我的经验表明,即使使用多核处理器,将算法并行化并不总是能够显着提高其速度。事实上,有时它会减慢速度。那么,有哪些好的提示可以表明通过并行化可以显著加快算法的速度呢?
(当然,需要注意过早优化的缺点及其与恶的相关性)
我的经验表明,即使使用多核处理器,将算法并行化并不总是能够显着提高其速度。事实上,有时它会减慢速度。那么,有哪些好的提示可以表明通过并行化可以显著加快算法的速度呢?
(当然,需要注意过早优化的缺点及其与恶的相关性)
如果你能将工作分成独立的部分,那么它可能会很好地并行化。
还要记住 阿姆达尔定律,它提醒我们,在大多数程序中添加更多核心所能带来的性能增益是微不足道的。
如果你需要很多锁才能让它工作,那么它可能是一种不易并行化的复杂算法。算法中是否有可以分解成不需要相互影响的独立部分的部分?