小编Cip*_*478的帖子

阿卡 - 更多演员表现更差

我正在尝试使用Scala和Akka进行一些并行编程,我是新手.我有一个非常简单的Monte Carlo Pi应用程序(近似于一个圆圈中的pi),我用几种语言构建了它.然而,我在Akka中构建的版本的性能令我感到困惑.

我有一个用纯Scala编写的顺序版本,大约需要400ms才能完成.

与1名工人演员相比,Akka版本需要大约300-350ms,但是当我增加演员的数量时,时间会急剧增加.有4名演员,时间可以在500毫秒之间,一直到1200毫秒或更高.

迭代次数在工作者之间进行划分,所以理想情况下,性能越多越好,目前情况会越来越差.

我的代码是

object MCpi{
  //Declare initial values
  val numWorkers = 2
  val numIterations = 10000000

  //Declare messages that will be sent to actors
  sealed trait PiMessage
  case object Calculate extends PiMessage
  case class Work(iterations: Int) extends PiMessage
  case class Result(value: Int) extends PiMessage
  case class PiApprox(pi: Double, duration: Double)

  //Main method
  def main(args: Array[String]): Unit = {
    val system = ActorSystem("MCpi_System") //Create Akka system
    val master = system.actorOf(Props(new MCpi_Master(numWorkers, numIterations))) //Create Master Actor
    println("Starting Master") …
Run Code Online (Sandbox Code Playgroud)

parallel-processing performance scala akka

3
推荐指数
1
解决办法
1912
查看次数

标签 统计

akka ×1

parallel-processing ×1

performance ×1

scala ×1