マルチプロセッサプログラミングを語るスレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG0002デフォルトの名無しさん
NGNG0003デフォルトの名無しさん
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGなんでやねん
0007デフォルトの名無しさん
NGNGかぶる話題もおおいだろうけど少しちがうような、、
ハードのアーキテクチャ(排他とか割り込みの扱いとか)
もすこし関係するし
0008デフォルトの名無しさん
NGNG結局1が何を知りたいのかが問題だな。
スレッドレベルで済む話題かもしれんし(w
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGクソスレあ・げ・る・な。
0011デフォルトの名無しさん
NGNGソース公開終わってるじゃん。
0012デフォルトの名無しさん
NGNG再帰。
0014デフォルトの名無しさん
NGNGスレとレスの違いわかる?
0015デフォルトの名無しさん
NGNG本当にってなんだよ(藁
00161
NGNGOS毎の実装方法とはではなく、実際にアセンブラレベルでCPUにどういう命令を送れば
この処理はこっちのCPU、この処理はあっちのCPUとか自由に割り振れるのかな。と。
0017デフォルトの名無しさん
NGNG汗は何なのよ・・・
0018デフォルトの名無しさん
NGNG全ては2進数だよ、CPUに命令と言うより、CPUその物に
役割を別々にする半導体がある、MMXの場合は音声を
処理する部分も別にある、Pen4になら、画像処理をする領域もある。
詳しい事はネットサーフィンで図付きのを探せ
0019デフォルトの名無しさん
NGNGネタだから無視
0020デフォルトの名無しさん
NGNG1は何を想定しているの? PC?
00211
NGNG0022デフォルトの名無しさん
NGNG0023デフォルトの名無しさん
NGNG0024デフォルトの名無しさん
NGNGマルチプロセッサとは関係ありません。
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGそんな命令はありません。SMP では、基本的に複数のプロセッサはそれどれ独立して勝手に動いています
から、あるプロセッサに処理を割り振りたければ、そのプロセッサが処理を行うように「仕向ける」必要があり
ます。
今 2CPU からなる SMP システム (CPU をそれぞれ CPU#0, CPU#1 とする) で
- すべてのプロセッサ間で共有されるスレッドキューが、主記憶上のあるアドレスに存在する
- ある特定の割り込みが発生すると、スレッドの切り替え(キューにある最も優先度が高いスレッドに
処理が移る)が起こる
というプログラムが、各プロセッサで実行されているとしましょう。これで CPU#1 に特定のスレッドを実行さ
せたければ、
1. 自分が CPU#1 であれば、そのスレッドを直接実行
2. 自分が CPU#0 であれば
- スレッドキューをロックする
- 目的のスレッドの優先度を最高にする
- CPU#1 に特定の割り込みをかける CPU#1 は割り込みルーチンに入り、スレッドキューのアンロックを
待つ
- CPU#0 がスレッドキューをアンロックする
というようなコードを書いて、走らせておけば良いわけです(実際にはもっと複雑)。
いずれにせよアプリケーションレベルでどうこうできる話ではなく、OS のプロセス管理サブシステムの設
計マターです。x86 固有のマルチプロセッサ制御について知りたければ、Intel の Web サイトから
「インテル・アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル 下巻」
というタイトルの PDF ファイルを入手して、関連する章(とくに APIC の解説)を読んでください。言うまでも
ないですが、シングルプロセッサ/マルチタスク OS でのプロセス管理サブシステムに関して、十分な知
識があることは前提です。
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGmov eax, 0
mov ebx, 1
の順に命令が並んでいたら、
eaxに0を入れるのはCPU0が
ebxに1を入れるのはCPU1が
やってくれると思ってるんだろ。
0029デフォルトの名無しさん
NGNG面白い話題があるなら SMP 忘れて、そっちで盛り上がっても構わないと思うが。
0030デフォルトの名無しさん
NGNGSMPマシン組めるって本当?
いくらくらいするの?
あとさ、CPUが自分の番号知るのってどうやるの?
I/Oポートかなんか読むんかな。
00311
NGNGなるほど、分かりやすい説明どうもありがとうございます。疑問氷解。
「インテル・アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル 下巻」
は持ってるんでけど、殆ど読んでなかったのでちゃんと読んでみたいと思います。
>>28
いや。別にそうは思ってないですが。
0032デフォルトの名無しさん
NGNGじゃぁ、どう思ってるんだ?
00331
NGNGそれがわからないから聞いてるんですよ :-)
0034デフォルトの名無しさん
NGNG0035デフォルトの名無しさん
NGNGおお、かっこいい。
そうなってるんだ。
自分も今までマルチプロセッサのシステムでの
プロセッサの動作がイメージできなかったけど
>>26で雰囲気つかめました。
0036デフォルトの名無しさん
NGNGある程度独立した処理の単位ごとに分ける。
0037デフォルトの名無しさん
NGNGイイ!
0039a
NGNGスレッド単位でCPUに割り振るなら、SetThreadAffinityMaskを
使えばいいのでは?
HyperThreadingで効果がありそうな気がする
0040構文解析776
NGNGCPU のContextSwitching抑制したり、PipeLineの乱れを抑制すること?
0041デフォルトの名無しさん
NGNG場合に、1プロセッサー処理速度のn倍よりも性能が向上してしまう、
という話があって、それをHyperScalarとか呼ぶ
だから、密結合並列処理(SMPによるマルチスレッド)の場合はHyperScalar
004241
NGNG○ HyperThreading
× HyperScalar
0043a
NGNG■ このスレッドは過去ログ倉庫に格納されています