

こんにちは。cstepと申します。
Intel Core 2 Quad(コア数x4)のマシン上の ReaHat Linux 9(Kernel 2.4.20-8)環境で、pthread(glibc-2.3.2-11.9, NPTL 0.29, gcc 3.2.2)を使用したマルチスレッド・プログラミングをしています。
各スレッドのコア割り当てを(OSの自動スケジューリングではなくて)手動で固定的に割り当てることは可能でしょうか? 可能な場合それを実現するAPIや実現方法をご教授いただけますでしょうか。
例えば、8つのスレッドからなるプログラムだとした場合、
・スレッド1と5 → コア1に割り当て
・スレッド2と6 → コア2に割り当て
・スレッド3と7 → コア3に割り当て
・スレッド4と8 → コア4に割り当て
というふうに、各スレッド(1~8)を任意のコア(1~4)に固定的に割り当てて動作させたいと考えております。
Windowsの場合は、SetThreadAffinityMask() または SetThreadIdealProcessor() といったAPIを使うことで上記の要求は可能かと思いますが、Linuxでの方法が分からず、質問させていただきました。
よろしくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
直接の回答ではありませんが、インテルからツールが出ているようです。
http://www.rbbtoday.com/news/20070411/40710.html
参考にしてください。
では。
この回答への補足
質問者のcstepです。その後、調査しましたので結果を記します。
Linux kernel 2.6(以降?)では、ハード・アフィニティを利用することで、任意のプロセス(スレッドも?要確認)を任意のコアに割り当てることが可能なようです。となると、RedHat Linux9 (kernel 2.4) では不可ですね。
もしも、RedHat Linux9 (kernel 2.4) でも可能な方法なご存知の方いらっしゃいましたら、ご教授をお願いいたします。
---以下、参考情報---
Linux kernel 2.6では、
- sched_get_affinity()
- sched_set_affinity()
といったAPIを使うことにより、CPUアフィニティを設定・取得できます。
以下のサイトが参考になりました。
プロセッサー・アフィニティーの管理
http://www-128.ibm.com/developerworks/jp/linux/l …
sched_setaffinity(2) を使って任意のプログラムを任意のCPU上で動かす
http://d.hatena.ne.jp/naoya/20070824/1187945715
Manpage of SCHED_SETAFFINITY (linux.or.jp)
http://www.linux.or.jp/JM/html/LDP_man-pages/man …
Example of sched_set_affinity and sched_get_affinity
http://www.ussg.iu.edu/hypermail/linux/kernel/02 …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトが重い
-
自分自身のプロセスID
-
アクセスが拒否されるプロセス
-
このエラーはどういうことでし...
-
FORMが開いているかどうかの確...
-
PCを起動すると画面が真っ黒で...
-
メモリの「コミット済み」の意...
-
press f11 for recovery とは?
-
dell vostro 3560というノート...
-
メモリーの相性を考えると
-
RECOVERY(D:)ってなんですか?
-
リカバリ領域
-
mac book proにアプリケーショ...
-
仮想メモリとページファイルの...
-
PCを起動したところAmerican Me...
-
パソコン起動時のBIOS画面の意...
-
tightvncで灰色の画面になります。
-
F1キーを押さないとwinが起...
-
パソコン起動時にF1を押さない...
-
\\Device\\Harddisk1\\DR1 でコ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトが重い
-
パラメーターが間違っています...
-
「構成システムを初期化できま...
-
CPUコアの使われ方についてご教...
-
アクセスが拒否されるプロセス
-
Windows7起動時に「ヘルプとサ...
-
自分自身のプロセスID
-
これは何ですか?igfxext.exe
-
CPU使用率高い-該当プロセスなし
-
PCの重い原因と「svchost.exe」...
-
explorer.exeのCPU使用率が100%...
-
タスクに謎のEXEが・・・【Watc...
-
マルチコア上のLinux環境にて、...
-
LUlnchr.exeって・・・?
-
igfxTray.exeの常駐を止めたい。
-
イベントフラグを複数のタスク...
-
何もしてないのにCPU使用率100%
-
CPU使用率を上げる方法をご存じ...
-
I/Oとは?
-
msmsgs.exe
おすすめ情報