対称型マルチコアでの処理割り当ての差

何人も専門家がここ見てるので適切に突っ込んでくれるだろうと思ってあんまり考えずに適当に書きます.


スラッシュドット・ジャパン | マルチコアCPUで実行されるプログラムのパフォーマンスは実行されるコア毎で違う
http://slashdot.jp/hardware/article.pl?sid=08/12/24/0547254


スラドに書いてあるのを見て,どのコアで実行されるかで10%も性能変わるの?
すげー!
とか思ったんですけど.なんか論文のアブスト読んだら…全然違う感じ?


最初スラドを読んだ時点では,

  • OSが割り込みとかの特定の処理を(例えば)Core 0で実行するからCore 0に割り当てられたプロセスは性能がでない

とかそんな話かと思ったんです.それだけで10%も違うのか!とか思ったんですが…
でもアブストによれば

対称型マルチコアで,通信するようなプロセスを動作させたときに,
何も考えずにプロセスを各コアに配置する普通のバニラカーネルと,
プロセスの処理内容を見て適切にコアに配置するSyMMerライブラリを使った場合と,
で比較したら10-15%性能向上した,

って話?
それだったら「すげー!」まではいかなくて「なるほどー」ぐらいかなぁ.
ちらっと図を見たところによると,デュアルコアCPUが2個の構成なので,

  • プロセス間通信をするプロセスを別コアに割り当てる→片方の処理が終わってないせいでもう片方の処理が詰まるのを防ぐよ
  • プロセス間通信をするプロセスを同一CPU内に割りあてる→L2キャッシュが効くよ

これをライブラリで実装してベンチマーク取ったら10-15%性能が上がったと.
こんな感じのお話?


…論文読むのめんどくさい.
誰かがこの論文を読んでるに違いないので,正解を教えてください….


そのうちスラドに正解が書かれる気もするけど,現段階だと技術大学だか工科大学だかの話しかない…