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

Intel、Nehalemの正式名称を「Core i7」に決定」記事へのコメント

  • by Anonymous Coward
    サーバー機なんかじゃ、性能低下を防ぐためにHyperThreadingはオフにせよと言われてましたが、そのあたり対策ができたんでしょうか。
    • Re: (スコア:1, 興味深い)

      by Anonymous Coward
      疑問なのですが、HTをONにするとどういう性能低下があるのでしょうか。

      確かにHTはスレッドあたりの性能を悪くしますが、マルチスレッド全体での性能は間違いなく向上します。
      サーバの場合、単一のスレッドで動いているとは考えられないため性能は上がると思うのですが。

      巨大なファイルのコピーを複数同時に行うと悲惨なことになるように、
      HTのおかげで並列度が上がってI/Oがボトルネックになってるとか?
      • Re: (スコア:5, 参考になる)

        搭載しているアプリケーションにもよりますが、「高負荷時にパフォーマンスが大きく低下することがある」という事象が確認されています。わたしが知る限りでは Microsoft SQL Server 2005 で起き得る事象でした。

        http://technet.microsoft.com/ja-jp/magazine/cc137784.aspx [microsoft.com]

        この場合は、DBMS 自身がスレッディングとキューイングを既に効率化させているため、HT によるスレッディングによって却って DBMS の動作が非効率になるという、ある種不幸な事象が原因でした。
        • Re: (スコア:3, 参考になる)

          DBMSだとボトルネックはI/Oだったりするから、CPUを高速化したって性能はあんまり上がり
          ません。むしろ並列プログラミング特有のボトルネックが出てしまって、トータルではかえって
          性能が低下したというだけに見えます。シングルCPUに(過度に)最適化したアプリをそのまま
          マルチCPUに持っていっても性能が出ないのはある意味予想されていたことなのですよ。マルチ
          CPUはCPUの内部的な演算は高速化してくれるけど、それ以外は今までと変わりないですから。
          • by AZUCO (32400) on 2008年08月12日 23時34分 (#1402375) ホームページ
            現状だとバックエンドを利用するソフトだと、バックエンドとソフトが分かれているので、そこそこ素直に性能が上がると思います。
            ソフト単体だと、プログラマ自体がマルチスレッドで意識して書かないと100%使い切るような性能はなかなか出ないですね(汗

            HTは使ってみるとわかるんですが、論理上(少し性能の劣る)マルチコアに見えるというだけであり、マルチスレッドのソフトは基本的に素直に性能が上がりますね。

            (HTとは関係無しに)マルチスレッドで出た問題を挙げると
            やたら演算ばかりするスレッドを書くと、スレッドが回りすぎて、他のスレッドと比較して負荷が上がる>Windowsのスケジューリングで負荷が高い物を優先してスケジューリングする(Boost)>結果特定スレッドのみCPU時間を取ってしまい、他のスレッドに時間が回らず、想定よりもパフォーマンスが落ちる(Boost問題)
            (余談ですがSEGAのPSOBBでアイドルループの書き方がまずくて、こうなってた事例があります)

            自分で書いたソフトには問題が無いが、ASPIレイヤで「同一ソフトから同一IDのデバイスの操作は一つだけ」という条件が入っている為に速度が出ない(環境的な問題)

            マルチスレッドをあまり意識せずにパフォーマンスを稼ぎたい場合は
            ・OpenMPを使う
            ・シングルスレッドで書いて複数走らせる
            が良いかと思います
            (特に後者は解析等で分散して解析を行うのに便利だったりしますし、意外に侮れないwww)
            親コメント

犯人はmoriwaka -- Anonymous Coward

処理中...