パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

FreeBSD SMPngが完了、性能が劇的に改善」記事へのコメント

  • by Anonymous Coward
    マルチコアで、スレッド数がコア数を上まわるとパフォーマンスが落ちるというのは、例えば動画エンコーダなんかだとキャッシュ容量を圧迫するからというのが大きな理由でしょう。動画エンコーダだと広範囲のメモリを参照、大量のI/Oをしないといけないけど、マルチスレッド化するために、並列で複数の異なるフレームを処理したりとかしているので、どうしてもワーキングセットが肥大化しがちで、スラッシング状態になったりします。

    でも今回の実験だとFreeBSDでは殆ど性能が落ちないんですよね。もっと別のケースのデータなんかも見てみたい気はしますね。
    • >>マルチコアで、スレッド数がコア数を上まわるとパフォーマンスが落ちるというのは
      スレッド数がコア数を上回っている時点で
      素のスレッドと言うよりはユーザースレッドだよね。
      ならばユーザースレッドの数が多ければ多いほど、処理できる能力って相対的に減るよね
      (処理的にはマルチタスクっぽくなるから)
      • >ならばユーザースレッドの数が多ければ多いほど、処理できる能力って相対的に減るよね

        コアの数を上回ったスレッドを動かすと、個々のスレッドの処理能力は落ちるんですけど、FreeBSDはそれぞれのスレッド処理能力を合計すると、8スレッド動かした時の合計に近い値が出る。
        ところが、Linuxは8スレッド超えると、それぞれのスレッドの処理能力を合計しても、8スレッド時の合計に遠く及ばなくなる。

        グラフによると、8スレッド動かした時の能力は双方とも、およそ3000。
        スレッド毎に375くらいになる。
        スレッドの数を16にしても、FreeBSDは能力の合計が3000弱。
        合計が8スレッドの時とほぼいっしょなので、スレッド毎の能力は単純に半分になる。
        ところが、Linuxの場合、16スレッドになると、能力の合計が800くらいまで落ちる。
        スレッド毎には、50程度と激減する。
        • シングルプロセサで複数のスレッドを動かした場合、Linuxはやはり性能が低下するのでしょうか。

          • グラフを見る限り、Linuxでの性能の低下は、スレッド14個あたりで下げ止まります。
            性能としてはコア1個に+αといった所で安定します。
            性能低下の原因が、単純に、複数スレッドを実行した事にあるのなら、こんな形にはならないと思うんですよ。
            これは、複数のコアに対する処理が原因で、最終的には、有効に使えてるコアが1つだけだからなのではないかと思います。
            なので、シングルプロセッサの場合、この現象は起きない可能性が高いです。

            親コメント

※ただしPHPを除く -- あるAdmin

処理中...