今後の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, 参考になる)
Dragonfly BSDならどうなんでしょう?48コアのPCないんでわからないですが。
ソースコードはDragonfly BSDのほうが読みやすいような気がします。
FreeBSD and Linux Kernel Cross-Reference
http://fxr.watson.org/ [watson.org]
でソースコード閲覧できます。
Re:BSD (スコア:1)
SPARCだと256スレッドとかあるけど (スコア:3, 興味深い)
SPARCだと256スレッドとかすでにあるけど、Solarisは似たような問題どう対応してるんだろうね(原文読んでません)
Re:SPARCだと256スレッドとかあるけど (スコア:4, 参考になる)
と書かれています。
ライセンス上定量的な結果をレポートできないけれど、Linuxと同程度か悪い。
ただし、原因は不明だし、SPARCだともっと良いのかどうかもわからない。
ということです。
Re: (スコア:0)
テスト内容を知らないのだけど、SPARC が担っていた分野とは違うんでは?
特定のスレッドが多くのメモリーを確保したままとかの不細工なプログラムがそういうシステムでは使われないのでは。
Re:SPARCだと256スレッドとかあるけど (スコア:1)
たとえばXeonあたりで6コア×4CPU×2(logical thread)=48スレッドとかの構成ならサーバ用として近々に出てきそう(もうあるかな?)ですし, 意外に近いうちに問題になるのかも.
Re:Opteron (スコア:2, 参考になる)
普通に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, 参考になる)
それ、DellのR815 [dell.com]のOEMだよ。
直接Dellから買ったほうが安いし、サポートの対応も速いよ。
Re:Opteron (スコア:1)
それ、DellのR815のOEMだよ。
直接Dellから買ったほうが安いし、サポートの対応も速いよ。
姿名前からいって、 それはそうなんでしょうが、値段はDellはお見積もりになるので、 示しづらいじゃないですか。
で、個人でも買える12/24コアマシンはいつごろ? (スコア:0)
PhenomeⅡx6は安いけど、CPUを複数載せられるマザーが売ってない。
個人で買えるのはいつ頃になるんだろう。
Re: (スコア:0)
今回の論文では、
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.
というハードウェア構成ですね。
Re: (スコア:0)
Linux信者臭い (スコア:3, すばらしい洞察)
なんかLinux信者臭いな。
1つのオブジェクトを全スレッドが頻繁にアクセスするので、キャッシュの競合が発生しまくるという、ありがちな問題だ。
> コードを若干書き換えるだけ
そういう部分は、OS全体のコードから見れば極めて少量に見えるが、
インパクトが大きいので検証やら何やらに時間がかかるものだ。
今回の論文では3002行を変更したそうだ。かなりの大改造じゃないか?
> システム全体のパフォーマンスを大幅に向上させることができた
ちょっと論文の図4を見ろ。
パフォーマンスが44コア以上でガクンと低下する問題を解決し、
8~40コアでのパフォーマンスを少し改善、
くらいの表現が妥当。
OSは、その時点で入手可能なハードウェアに合わせて調整されるもので、現状で高いスケーラビリティが無いのは欠点ではない。
たとえばPentium3系Xeonの時代に、
48コア以上でもスケールするように作ったけど、実際に使われている1~4コアのシステムでは逆に遅くなるよ
なんて言ったら、アホでしょ?
事実、この論文での修正では、1~2コアでは性能が低下している。
どんなコア数でも最高の効率で動作する方式なんて、うまい話はない。
まだ1~2コアのシステムが多く使われている現状では、現状の44コア以上でガクンと性能が落ちる実装は、悪くない。
Re:Linux信者臭い (スコア:2, すばらしい洞察)
>事実、この論文での修正では、1~2コアでは性能が低下している。
>どんなコア数でも最高の効率で動作する方式なんて、うまい話はない。
その時はカーネルビルド時のスイッチ(.config)でソースを切り替えるんじゃない?
CONFIG_NOHIGHMEM/CONFIG_HIGHMEM4G/CONFIG_HIGHMEM64Gみたいに。
Re:Linux信者臭い (スコア:2, 興味深い)
おっと。タネンバウム [wikipedia.org]とラシッド [wikipedia.org]の悪口はそこまでだ。
# たとえば Mach [wikipedia.org] は 1985年当時に 100CPUぐらいを想定していたが、
# その頃は 80386 [wikipedia.org] の時代だ。
## いや「時代」的にはまだ 80286 の方が速いと言われていた時代だ。
fjの教祖様
スポンサーの意向 (スコア:1)
研究だと先を見るってことなんでしょうかねぇ。スポンサーはDARPAだし。
Re: (スコア:0)
> まだ1~2コアのシステムが多く使われている現状では、
でもLinuxがよくインストールされてそうなサーバー界隈では、
もはや1~2コアなんて余程のエントリレベルの低スペックサーバーでしか選べなさそうな気が。
アプリケーション側が着いてこれないかも (スコア:2)
Re:アプリケーション側が着いてこれないかも (スコア:3, 参考になる)
MySQLのすべてのストレージエンジンがスケールするわけではないことに注意。
Postgresは3年くらい前のバージョン8.2で32CPUまでスケールするというベンチマークがUNISISから出ている。
ただしDBの場合、テーブル設計のほうが大いに性能に影響する。アホな論理設計するとどうしようもない。アホなSQL書いても同じ。
FYI: MySQLのSMP性能 (スコア:4, 参考になる)
SMP Performance Improvements
http://code.google.com/p/google-mysql-tools/wiki/SmpPerformance [google.com]
MySQLはLinuxよりもSolarisで動かした方が速い?
http://blogs.sun.com/moriya/entry/mysql_on_solaris_not_linux [sun.com]
Re: (スコア:0)
アプリケーションはプロセスを生やせばいいだけですが(例: Google Chrome)、OSのほうにはそういう逃げ道はないので。
Re:アプリケーション側が着いてこれないかも (スコア:1, すばらしい洞察)
> OSのほうにはそういう逃げ道はないので。
OSを仮想化すれば問題なし。
自分の会社では、メモリ数十GBつんだXeonのサーバを約500台用意し、
1台のサーバにVMを数十起動して「クラウド」サービスを提供してますが何か?
I'm out of my mind, but feel free to leave a comment.
Windows? (スコア:1)
ホモなコアに対してだよね? (スコア:0)
ハード側が頑張ってくれるのかな?
Re: (スコア:0)
わかんないけど、linuxが使われるような環境でかつ、
ヘテロが主流っていうのはGPU以外にあるの?
Re: (スコア:0)
CPUコアとしては非対称は非常に珍しいんじゃないかな。
同じコアを並べる方が、設計もプログラミングもずっと楽だから。
非対称なのは分散システムの方でいくらでも経験できるしね。
#それにしても、「ホモ」ネタは誰か出すと思ってたのに誰も出してなかったのは意外。
Re: (スコア:0)
Re: (スコア:0, 荒らし)
\ l ,ッィrj,rf'"'"'" lミ::::::: く れ モ ま
Y ,!ミ::::::: ヽ な 以 な
`ヽ、 | くミ:::::::: ノ い 外 い
|、__ ャー--_ニゞ `i::::,rく か は
``''ー- ゝ、'l  ゙̄´彑,ヾ }::;! ,ヘ.) ! 帰
゙ソ """"´` 〉 L_ っ
/ i , /| て r
≡=- 〈´ ,,.._
コア数 (スコア:0)
マルチコア当初は2コア→4コア→8コア→16コア→32コア…
と行くもんだと思ってましたが全くもって失望。
Re:コア数 (スコア:2)
正方形に近い方が、1枚のウエハーからたくさん取れそうですから、
4コア->9コア->16コア->25コア->36コア->49コアと進むのがあるべき姿なのでは?
もちろん、1コアが正方形という前提ですが・・・。
3:4のコアなら、48コアで正方形になりますし、特におかしな話でもないような・・・
Re:コア数 (スコア:1)
久夛良木脳,,,
「コンピュータは二のベキ乗でまとめるのが美しい。これは美学の問題」
Re: (スコア:0)
つまり、完全に従来のCPUのコピーを増やす方向でトランジスタを利用してもスケールしないという事です。
Re: (スコア:0)
えっ。
6コア12スレッドx2=24スレッドとか実現可能ですけどご不満?
#現実的には、単一OS上だと並列プログラミングに気を使わないといけなくなるよね。
#素直にVM使うのが楽そう。
Re: (スコア:0)
スレッドの話じゃなくてコアの話だろ。
ax+bじゃなくて2^x
伸び率が違う。
並列プログラミングに気を使わないと~なんて今更言われても。
何年も前から当然訪れると分かってることなんだし
少しでも向上力のある人間ならすでに対策済みのはず。
単純にスレッドのアルゴリズムの問題でしょ? (スコア:0)
ちなみに僕は縞パンが好きです
Re:単純にスレッドのアルゴリズムの問題でしょ? (スコア:1)
そもそも嫌いな人っていないよね? ね!?
Re: (スコア:0)
三行目の意味はよくわかりませんが、Visual Studio 2010でも既に
並列化できるところを区切るだけでコア数に応じて(自称)適切に分散処理を投げる仕組みは付いてたような。
実際どのくらいの効率なのかは知りませんけど(まだ2005だし)
Re: (スコア:0)
区切るって、そらOpenMPのことか。
ならVS2005でも使えるだろ。別にVisualStudioに限った話じゃないし、そもそもIntelの成果。
# ところで三行目って?
Re:単純にスレッドのアルゴリズムの問題でしょ? (スコア:1, 参考になる)
Microsoft.NET Framework 4.0のTask Parallel Libraryのことでは?
Mac OS X 10.6のGrand Cenral Dispatchも似た感じですよね。
Re:単純にスレッドのアルゴリズムの問題でしょ? (スコア:1)
そのベースにある
も。
簡単なループでも並列タスクとして定義しておくと、少コアでもたいしたペナルティなしにスケジューリングするし、コア数に合わせて適切に分配していくので多い日にも安心、らしい。
ちなみに僕は紐パンも好きです
で、 (スコア:0)
Re:で、 (スコア:2)
Windows 7/Windows Server 2008 R2 が 256 プロセッサまでしか "対応" しない理由を予想する
http://d.hatena.ne.jp/NyaRuRu/20081107/p1 [hatena.ne.jp]
詳しくは誰かフォローして。
Re: (スコア:0)
Re:で、 (スコア:2)
それって改めて思うけど、すごいことだよね。。。
Re:で、 (スコア:2)
Windows XP ServicePack 42とかでるのかなぁ。
Re: (スコア:0)
Windows XP SP3にパッチが5378個ほどついてくるんだ。
もちろんWindows Updateでインストールするんだぜ。
XPのPCなんてパッチXD(3枚組)作らずにリカバリした日にゃ、しばらく何もできないぞ。
Re: (スコア:0)
とりあえずペンギンの改行を (スコア:0)
コア(仮想CPU)の数によって、増えるマスコットのペンギン「タックス」を改行しろよ
多すぎると画面外に行ってしまうらしいし
そして、画面がタックスに埋め尽くされて何も見えず
Re:こまけぇこたぁいいんだよ!! (スコア:2, おもしろおかしい)
>48CPUは細かいのか?
細かいと言っていいんじゃないでしょうか。プロセスルール的な意味で。
Re:こまけぇこたぁいいんだよ!! (スコア:1)
確かにAAなので、荒らしかもしれないけど、内容が通ってるわけで
脊髄反射的にモデするのもどうかと。