Как узнать количество существующих потоков Openmp - PullRequest
0 голосов
/ 21 февраля 2012

У меня есть программа OpenMP, работающая, скажем, с 6 потоками на 8-ядерном компьютере.Как я могу извлечь эту информацию (num_threads = 6) из другой программы (не openmp, обычная C-программа).Могу ли я получить эту информацию из основного ядра.

Я использовал длины run_queue, используя "sar -q 1 0", но это не дает согласованных результатов.иногда это дает 8, в несколько раз больше или меньше.

1 Ответ

0 голосов
/ 25 апреля 2012

В Linux потоки - это процессы (см. Первый пост здесь ), поэтому вы можете запросить список запущенных процессов с помощью ps -eLf.Однако, если машина имеет 8 ядер, возможно, что OpenMP создал 8 потоков (даже если в настоящее время он использует 6 из них для ваших вычислений);в этом случае именно ваш код должен где-то хранить (например, файл или FIFO) информацию о потоках, которые он использует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...