1

行列ベクトル乗算を使用して Akka Framework のベンチマークを試みました。この非常にデータ集約的な問題について、16 コアのマシンでさまざまな数のワーカーの絶対ランタイムを測定しました。

次の構成を使用しました。

akka {
    logConfigOnStart=off
    executor = "thread-pool-executor"
    fork-join-executor {
        parallelism-min = 16
        parallelism-factor = 3.0
        parallelism-max = 16
    }
}

ワーカーの数が異なる場合、使用するワーカーが多いほどランタイムが向上すると予想されますが、速度が非常に悪いことがわかります。絶対実行時間を測定し、棒グラフにプロットしました。

図:異なる数のワーカー

詳細については、以下をご覧ください。

git のプロジェクトの説明: Benchmarking Akka までスクロールします。

またはgithubでの実装。

これは大学向けの推敲であり、最初に Actor Model と Akka がまとめられているのはこのためです。

私の質問は次のとおりです。

  1. 私は何を間違っていますか?
  2. より良いパフォーマンスを観察するためにプログラムを改善するにはどうすればよいですか?
4

1 に答える 1

1

1) thread-pool-executor を使用するように構成していますが、fork-join-executor の構成のみを提供します。thread-pool-executor は恐ろしいスケーラビリティを持っています。http: //letitcrash.com/post/17607272336/scalability-of-fork-join-poolを参照してください。

2) executor = "fork-join-executor" を使用します。parallelism-factor を 0.6 から 1.0 の間に設定することをお勧めします。設定に最適な値を調整する必要があります。マトリックスも調整する必要があります。チャンクサイズを大きくするには、これを試してください。

于 2013-05-07T12:02:39.203 に答える