Как я могу программно определить, закреплены ли два потока/процесса к одному и тому же ядру? ⇐ Linux
-
Anonymous
Как я могу программно определить, закреплены ли два потока/процесса к одному и тому же ядру?
Я разрабатываю многопоточную программу, в которой каждый важный поток привязан к своему ядру. В программе легко отслеживать используемые ядра и предотвращать привязку двух потоков к одному ядру (из-за ошибочной конфигурации).
Теперь на той же машине есть еще один процесс, который также привязан к ядру. Я хотел бы предотвратить случайное привязывание этих процессов к одному и тому же ядру.
Я могу обнаружить эту ситуацию из командной строки, но мне хотелось бы сделать это изнутри программы и предотвратить запуск второй.
Есть ли способ сделать это? Среда — Ubuntu и C++
Я могу ввести задержку для второго процесса, чтобы обойти любые условия гонки, которые могут возникнуть из-за одновременного запуска двух процессов
Я разрабатываю многопоточную программу, в которой каждый важный поток привязан к своему ядру. В программе легко отслеживать используемые ядра и предотвращать привязку двух потоков к одному ядру (из-за ошибочной конфигурации).
Теперь на той же машине есть еще один процесс, который также привязан к ядру. Я хотел бы предотвратить случайное привязывание этих процессов к одному и тому же ядру.
Я могу обнаружить эту ситуацию из командной строки, но мне хотелось бы сделать это изнутри программы и предотвратить запуск второй.
Есть ли способ сделать это? Среда — Ubuntu и C++
Я могу ввести задержку для второго процесса, чтобы обойти любые условия гонки, которые могут возникнуть из-за одновременного запуска двух процессов
Мобильная версия