当我在每台主机上运行大量 Actor 来实现海量数据传输时,在 6000000 个核心上花费的 6 个小时会更多。 每个参与者需要创建流并发送到指定的主机或参与者(put_async 和 get),并且所有参与者都竞争真正的计算资源(单核)。 如何充分利用真实的计算资源(物理多核)?
我注意到一个配置选项:
contexts/nthreads
6M 核心的 6 小时对我来说看起来像是数千倍的加速,不是吗?当然,这取决于实验结束时模拟器内经过的时间,但我怀疑整体加速仍然不错。如果速度更快就好了,但我想说,这已经不算太糟糕了。
为了进一步加快速度,您可以尝试稍微降低计时分辨率或增加最大并发限制。它可能会有所帮助,但我也不期望有巨大的改进。另一个想法可能是将“优化级别”更改为“完全”,因为默认的“惰性”值不适合像您这样的高度争用的场景。 请不要忘记报告这些参数如何改善您的情况,可能是在较小的模拟中。