SUN/Solaris で CC コンパイラを実行しています。OS によって 64 を超えるスレッドが異なるコアに割り当てられています。実行時にさまざまなスレッドのコア ID を取得する方法があるかどうか知りたいですか?
これらのスレッドのアフィニティを設定していません。psrset を使用してプロセッサ セットを作成します。
私は答えを見つけました:Solarisのgetcpuid()はコアIDを返します(ハイパースレッドの場合でも):私はそれをテストしましたが、うまく機能します。http://www.unix.com/man-page/all/3c/getcpuid/
これに対する Solaris 固有のシステム コールがあるかどうかはわかりませんが、移植可能な hwlocライブラリとそのhwloc_get_last_cpu_location
機能を使用できます。