![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_11.png?5a7ff87)
こんにちは。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で質問しましょう!
似たような質問が見つかりました
- CPU・メモリ・マザーボード インテルCPUの世代ごとのデスクトップとノートのコア数についてこれで正しいですか?(*´ω`*) 1 2023/01/07 14:44
- CPU・メモリ・マザーボード CPUについて 4 2022/07/09 13:41
- BTOパソコン PCの選び方 6 2022/09/11 00:16
- CPU・メモリ・マザーボード 安価ノートPC検討で教えてください 7 2022/05/02 09:25
- その他(ゲーム) DELL NI65-9NHB ノートパソコン Inspiron 15 7590 ブラック 【仕様】 2 2023/02/10 09:42
- グループウェア slackについて取り急ぎ教えて頂きたいことがあります 2 2022/04/08 09:05
- ノートパソコン Windows11搭載パソコン 新規購入にあたって 4 2022/11/09 18:11
- UNIX・Linux Linuxサーバーのパーティション・ディレクトリの推奨見積もりについて 3 2023/01/17 00:46
- ノートパソコン これ売る場合いくらで売れますか DELL NI65-9NHB ノートパソコン Inspiron 15 1 2023/02/22 09:36
- その他(パソコン・周辺機器) DELL NI65-9NHB ノートパソコン Inspiron 15 7590 ブラック 【仕様】 3 2023/01/16 09:25
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトが重い
-
Windows10にしたらタスクスケジ...
-
これは何ですか?igfxext.exe
-
trustedinstaller.exeが原因で...
-
メモリの「コミット済み」の意...
-
0x80240437のエラーです
-
プロファイルエラーについて
-
FORMが開いているかどうかの確...
-
RECOVERY(D:)ってなんですか?
-
メモリが"written"になることは...
-
\\Device\\Harddisk1\\DR1 でコ...
-
Windows XPの32ビット版と6...
-
「インターフェイスがサポート...
-
Windows98SE ・Meの動作「上限...
-
外付けHDDに保存しているiPhoto...
-
LAN内でのIPアドレスの重複につ...
-
このエラーはどういうことでし...
-
プログラムからOS標準ブラウザ...
-
ブルースクリーンエラー memory...
-
要求したデータはメモリに格納...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトが重い
-
パラメーターが間違っています...
-
メッセージキューのスレッド間...
-
これは何ですか?igfxext.exe
-
CPUコアの使われ方についてご教...
-
μITRONのスタック見積もりについて
-
igfxTray.exeの常駐を止めたい。
-
FSUSB2N-drv.zipの入手
-
ウィンドウのスクロールでCPU負...
-
仕事で使うパソコンが遅い!!...
-
CPU使用率を上げる方法をご存じ...
-
explorer.exeのCPU使用率が100%...
-
PCの重い原因と「svchost.exe」...
-
タスクマネージャーにあるexe....
-
自分自身のプロセスID
-
I/Oとは?
-
ディスクアクセスしているアプ...
-
msmsgs.exe
-
「構成システムを初期化できま...
-
マルチコア上のLinux環境にて、...
おすすめ情報