我试图用矩阵矢量乘法对Akka框架进行基准测试。对于这个非常严重的数据密集型问题,我测量了16核心机器上不同数量的工作人员的绝对运行时间。使用矩阵矢量示例对Akka进行基准测试
我已经使用了以下配置:
akka {
logConfigOnStart=off
executor = "thread-pool-executor"
fork-join-executor {
parallelism-min = 16
parallelism-factor = 3.0
parallelism-max = 16
}
}
对于不同的工人,我希望一个更好的运行时更多的工作我用,但我观察到一个非常糟糕的加速。我测量了绝对运行时间并将它们绘制在条形图上。
欲了解更多的细节,我希望你有一看:上git的
项目介绍:scroll down to Benchmarking Akka
或在GitHub上implementation。
这是大学的阐述,这就是为什么Actor模型和Akka在开始时被总结的原因。
我的问题是:
- 我在做什么错?
- 如何改进我的程序以观察更好的性能?
答案几乎总是会将工作分解为太小的块。如果使用100倍大的矩阵(10倍大10倍,如果它们是2d),它如何扩展? – 2013-05-06 20:38:40
线程池执行器具有可怕的可伸缩性,请使用fork-join-pool。 http://letitcrash.com/post/17607272336/scalability-of-fork-join-pool – 2013-05-06 23:05:24