2012-02-21 11 views
0

私は8コアマシンで6スレッドを実行するOpenMPプログラムを持っています。どのようにしてこの情報(num_threads = 6)を別のプログラム(非openmp、普通のCプログラム)から抽出することができますか?下のカーネルからこの情報を得ることはできますか?既存のOpenmpスレッドの数を知る方法

"sar -q 1 0"を使用してrun_queueの長さを使用していましたが、これは一貫した結果をもたらしません。時には8倍、多少の差がある。

答えて

0

Linuxでは、スレッドはプロセス(最初の投稿hereを参照)であるため、実行中のプロセスのリストをps -eLfと尋ねることができます。しかし、マシンに8つのコアがある場合、OpenMPは8つのスレッドを作成している可能性があります(現在、計算に6つ使用しています)。この場合、使用しているスレッドに関する情報(ファイルやFIFOなど)をどこかに格納する必要があります。

関連する問題