パスワードを忘れた? アカウント作成
259881 story

今後のCPUのコア数増加とLinux 69

ストーリー by soara

あるAnonymous Coward 曰く、

マルチコア化が進むとOSのアーキテクチャを再設計する必要が出てくる可能性があるが、MITの研究によると Linuxは少々の手直しだけでコア数の増加を上手く活用できるOSだという(MIT News記事および論文(PDF)ConceivablyTech本家/.)。

CPUのマルチコア化を進めた場合、ある時点から「あるコアが演算に使用する可能性のあるデータはメモリに保持し続けられる」という一種のメモリリークのような状況が発生し、処理速度が遅くなるとのこと。Linuxの場合、これは48コアに近づくと起きるという。MITの行ったシミュレーションによると48コアに近づくと実際の処理よりもカウンタの処理時間が長くなり、システムのパフォーマンスが低下したとのこと。ただしLinuxの場合はコードを若干書き換えるだけでシステム全体のパフォーマンスを大幅に向上させることができたとのこと。

コア数が48を大幅に超えた場合、OSを完全に再設計する必要性がでてくる可能性もあると研究者らは警告する。ただし、Linuxの場合は今後 5年から 8年は大幅な再設計には迫られないとのことだ。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • BSD (スコア:4, 参考になる)

    by kuramori (38110) on 2010年10月02日 13時15分 (#1833583) 日記

    Dragonfly BSDならどうなんでしょう?48コアのPCないんでわからないですが。

    ソースコードはDragonfly BSDのほうが読みやすいような気がします。

    FreeBSD and Linux Kernel Cross-Reference
    http://fxr.watson.org/ [watson.org]
    でソースコード閲覧できます。

  • SPARCだと256スレッドとかすでにあるけど、Solarisは似たような問題どう対応してるんだろうね(原文読んでません)

    • 原文には、

      While the Solaris license prohibits us from reporting quantitative results, we observed similar or worse scaling behavior compared to Linux; however, we don’t know the causes or whether Solaris would perform better on SPARC hardware. We hope, however, that this paper helps others who might analyze Solaris.

      と書かれています。

      ライセンス上定量的な結果をレポートできないけれど、Linuxと同程度か悪い。
      ただし、原因は不明だし、SPARCだともっと良いのかどうかもわからない。
      ということです。

      親コメント
      • by Anonymous Coward

        テスト内容を知らないのだけど、SPARC が担っていた分野とは違うんでは?
        特定のスレッドが多くのメモリーを確保したままとかの不細工なプログラムがそういうシステムでは使われないのでは。

    • たとえばXeonあたりで6コア×4CPU×2(logical thread)=48スレッドとかの構成ならサーバ用として近々に出てきそう(もうあるかな?)ですし, 意外に近いうちに問題になるのかも.

      親コメント
      • Re:Opteron (スコア:2, 参考になる)

        by tslashn (37583) on 2010年10月02日 19時53分 (#1833740)

        普通に48 coreったら4 Socket Opteron(12 core)で実現されるんじゃないでしょうか。
        200万円も出せばそれなりのメモリつきで買えますね。

        http://www.hpc-technologies.co.jp/products-3/dpe-R815-price.html [hpc-technologies.co.jp]

        # これでも、昔の、Appleパソコンより安い???

        親コメント
        • Re:Opteron (スコア:1, 参考になる)

          by Anonymous Coward on 2010年10月03日 0時02分 (#1833826)

          それ、DellのR815 [dell.com]のOEMだよ。
          直接Dellから買ったほうが安いし、サポートの対応も速いよ。

          親コメント
          • by tslashn (37583) on 2010年10月03日 10時17分 (#1833917)

            それ、DellのR815のOEMだよ。
            直接Dellから買ったほうが安いし、サポートの対応も速いよ。

            姿名前からいって、 それはそうなんでしょうが、値段はDellはお見積もりになるので、 示しづらいじゃないですか。

            親コメント
          • Xeonの6コアは高すぎて個人では手が出ない。
            PhenomeⅡx6は安いけど、CPUを複数載せられるマザーが売ってない。
            個人で買えるのはいつ頃になるんだろう。
        • by Anonymous Coward

          今回の論文では、

          We run experiments on a 48-core machine, with a Tyan
          Thunder S4985 board and an M4985 quad CPU daughterboard.
          The machine has a total of eight 2.4 GHz 6-core
          AMD Opteron 8431 chips.

          というハードウェア構成ですね。

    • by Anonymous Coward
      そういうサーバはLDomで分割して使うので、シングルOSイメージで256スレッドが走るわけじゃない。
  • Linux信者臭い (スコア:3, すばらしい洞察)

    by Anonymous Coward on 2010年10月02日 18時33分 (#1833709)
    > ただしLinuxの場合はコードを若干書き換えるだけでシステム全体のパフォーマンスを大幅に向上させることができたとのこと。

    なんかLinux信者臭いな。
    1つのオブジェクトを全スレッドが頻繁にアクセスするので、キャッシュの競合が発生しまくるという、ありがちな問題だ。

    > コードを若干書き換えるだけ

    そういう部分は、OS全体のコードから見れば極めて少量に見えるが、
    インパクトが大きいので検証やら何やらに時間がかかるものだ。
    今回の論文では3002行を変更したそうだ。かなりの大改造じゃないか?

    > システム全体のパフォーマンスを大幅に向上させることができた

    ちょっと論文の図4を見ろ。

    パフォーマンスが44コア以上でガクンと低下する問題を解決し、
    8~40コアでのパフォーマンスを少し改善、

    くらいの表現が妥当。

    OSは、その時点で入手可能なハードウェアに合わせて調整されるもので、現状で高いスケーラビリティが無いのは欠点ではない。

    たとえばPentium3系Xeonの時代に、
    48コア以上でもスケールするように作ったけど、実際に使われている1~4コアのシステムでは逆に遅くなるよ
    なんて言ったら、アホでしょ?

    事実、この論文での修正では、1~2コアでは性能が低下している。
    どんなコア数でも最高の効率で動作する方式なんて、うまい話はない。
    まだ1~2コアのシステムが多く使われている現状では、現状の44コア以上でガクンと性能が落ちる実装は、悪くない。
    • Re:Linux信者臭い (スコア:2, すばらしい洞察)

      by slashushushu (40742) on 2010年10月02日 21時54分 (#1833794)

      >事実、この論文での修正では、1~2コアでは性能が低下している。
      >どんなコア数でも最高の効率で動作する方式なんて、うまい話はない。

      その時はカーネルビルド時のスイッチ(.config)でソースを切り替えるんじゃない?
      CONFIG_NOHIGHMEM/CONFIG_HIGHMEM4G/CONFIG_HIGHMEM64Gみたいに。

      親コメント
    • by okky (2487) on 2010年10月03日 1時34分 (#1833853) ホームページ 日記

      たとえばPentium3系Xeonの時代に、48コア以上でもスケールするように作ったけど、実際に使われている1~4コアのシステムでは逆に遅くなるよなんて言ったら、アホでしょ?

      おっと。タネンバウム [wikipedia.org]とラシッド [wikipedia.org]の悪口はそこまでだ。

      # たとえば Mach [wikipedia.org] は 1985年当時に 100CPUぐらいを想定していたが、
      # その頃は 80386 [wikipedia.org] の時代だ。
      ## いや「時代」的にはまだ 80286 の方が速いと言われていた時代だ。

      --
      fjの教祖様
      親コメント
    • by Anonymous Coward

      > まだ1~2コアのシステムが多く使われている現状では、
      でもLinuxがよくインストールされてそうなサーバー界隈では、
      もはや1~2コアなんて余程のエントリレベルの低スペックサーバーでしか選べなさそうな気が。

  • MySQLは長い間8コアまでしかスケールしないと言われてて、ちょっと前にMySQLのセミナーいったら16コアまでスケールするようになっていると言ってました。今はもっとよくなっているかもしれません。OSが対応しても乗っているアプリケーションがたくさんあるコアをうまく使いこなせない事態が増えそうです。
  • by kentyoku (38671) on 2010年10月03日 11時21分 (#1833952) 日記
    Windowsの方はどうなるんだろ 現に使ってる人多いし
  • by Anonymous Coward on 2010年10月02日 11時21分 (#1833544)
    CELLじゃないけど、ヘテロなAPUだったら再設計必要なんじゃないのかね
    ハード側が頑張ってくれるのかな?
    • by Anonymous Coward

      わかんないけど、linuxが使われるような環境でかつ、
      ヘテロが主流っていうのはGPU以外にあるの?

      • by Anonymous Coward

        CPUコアとしては非対称は非常に珍しいんじゃないかな。
        同じコアを並べる方が、設計もプログラミングもずっと楽だから。

        非対称なのは分散システムの方でいくらでも経験できるしね。

        #それにしても、「ホモ」ネタは誰か出すと思ってたのに誰も出してなかったのは意外。

    • by Anonymous Coward
      ベクトル型コアに対するスケジューリングはまた別の話じゃないの。それが問題になるなら現在のGPUも内部で同じ問題を抱えるわけで
    • Re: (スコア:0, 荒らし)

      by Anonymous Coward
      \   / .::::::::::::::::::::::::;;:;;::,ッ、::::::   )  く   ホ  す
        \ l  ,ッィrj,rf'"'"'"      lミ::::::: く   れ  モ  ま
           Y           ,!ミ::::::: ヽ  な  以  な
      `ヽ、  |           くミ:::::::: ノ   い  外  い
           |、__  ャー--_ニゞ `i::::,rく     か  は
      ``''ー- ゝ、'l   ゙̄´彑,ヾ   }::;! ,ヘ.)    !  帰
            ゙ソ   """"´`     〉 L_        っ
            /          i  ,  /|    て    r
      ≡=- 〈´ ,,.._
  • by Anonymous Coward on 2010年10月02日 12時07分 (#1833561)

    マルチコア当初は2コア→4コア→8コア→16コア→32コア…
    と行くもんだと思ってましたが全くもって失望。

    • by phenix (31258) on 2010年10月03日 14時20分 (#1834019)

      正方形に近い方が、1枚のウエハーからたくさん取れそうですから、
      4コア->9コア->16コア->25コア->36コア->49コアと進むのがあるべき姿なのでは?
      もちろん、1コアが正方形という前提ですが・・・。

      3:4のコアなら、48コアで正方形になりますし、特におかしな話でもないような・・・

      親コメント
    • by bitterbeer_sweetwine (37563) on 2010年10月02日 15時48分 (#1833643)

      久夛良木脳,,,
      「コンピュータは二のベキ乗でまとめるのが美しい。これは美学の問題」

      親コメント
    • by Anonymous Coward
      トランジスタの数は自乗に比例して増えているわけですが、コア数が自乗に比例しないのはこの記事と全く同じ事だと思います。
      つまり、完全に従来のCPUのコピーを増やす方向でトランジスタを利用してもスケールしないという事です。
    • by Anonymous Coward

      マルチコア当初は2コア→4コア→8コア→16コア→32コア… と行くもんだと思ってましたが全くもって失望。

      えっ。

      6コア12スレッドx2=24スレッドとか実現可能ですけどご不満?

      #現実的には、単一OS上だと並列プログラミングに気を使わないといけなくなるよね。

      #素直にVM使うのが楽そう。

      • by Anonymous Coward

        スレッドの話じゃなくてコアの話だろ。
        ax+bじゃなくて2^x
        伸び率が違う。

        並列プログラミングに気を使わないと~なんて今更言われても。
        何年も前から当然訪れると分かってることなんだし
        少しでも向上力のある人間ならすでに対策済みのはず。

  • by Anonymous Coward on 2010年10月02日 13時27分 (#1833590)
    今後はコア数ごとにアルゴリズムが切り替えられてくるってことなのかしら?

    ちなみに僕は縞パンが好きです
  • by Anonymous Coward on 2010年10月02日 15時11分 (#1833619)
    Windowsはどうなるのでしょう?。。。
  • by Anonymous Coward on 2010年10月03日 0時15分 (#1833831)

    コア(仮想CPU)の数によって、増えるマスコットのペンギン「タックス」を改行しろよ
    多すぎると画面外に行ってしまうらしいし

    そして、画面がタックスに埋め尽くされて何も見えず

typodupeerror

海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs

読み込み中...