Как простаивает поток команды, распознанной в коде OpenMP (C), работающем в Linux?
Я хочу измерить время простоя потоков, работающих в команде. Является ли это возможным? Есть ли какое-либо поле для отображения статуса потока?Состояние незанятой нити OpenMP (C)
ответ
читать Status
поля в /proc/self/task/$tid/status
где tid
ваш идентификатор задачи (уникальный для каждого потока), полученный с помощью gettid()
системного вызова
Он также является третьим поле в /proc/self/task/$tid/stat
/proc/self/task/$tid/stat
также будет содержать utime
и stime
поля для каждой задачи, чтобы вы могли получить свое «активное время». Проверьте http://linux.die.net/man/5/proc, чтобы узнать, какие поля есть.
Спасибо! Есть ли способ сопоставления omp_get_thread_num() с результатом gettid()? –
Я боюсь, что нет. 'omp_get_thread_num()' зависит от процесса и обычно считается от 0. Хотя 'gettid()' является ядром 'pid_t'. Это по сути то же самое, что и идентификатор процесса id, только более конкретный и действительно TID основной задачи/потока в процессе идентичен процессу PID. Вам нужно будет вызвать 'gettid()' из каждого потока, чтобы определить их идентификаторы или перечислить каталог '/ proc/self/task'. –
- 1. Состояние нити java
- 2. Java - Получить состояние нити
- 3. контролировать состояние нити
- 4. Состояние OpenMP гонки?
- 5. C# Использование незанятой локальной переменной '
- 6. OpenMP сокращение и номер нити управления
- 7. Clang/LLVM Программа OpenMP не порождает нити
- 8. Нити для межпроцессного взаимодействия в OpenMP
- 9. Состояние нити в пуле потоков
- 10. Как сохранить состояние для каждой нити отдельно
- 11. ява нити эффект и состояние гонки
- 12. OpenMP parallel do read читать состояние гонки?
- 13. set Состояние RNG с openMP и Rcpp
- 14. Соблюдать размер незанятой очереди
- 15. C++ OpenMP критический: «односторонняя» блокировка?
- 16. C# очистка принципа нити
- 17. C# убить все нити
- 18. C# спальная проблема нити
- 19. Производительность нити C++
- 20. Процессорные нити C#
- 21. Синхронизация нити в C#
- 22. Ошибка конвертации нити C++
- 23. C нити и присоединение
- 24. Синхронизация нити при C
- 25. Убийство нити в C#
- 26. C++ Константы уровня нити
- 27. Проблема синхронизации нити C++
- 28. Темы OpenMP C++
- 29. Ошибка сборки Openmp C
- 30. Методы OpenMP в C
Просто получите (по-прежнему) бесплатную Oracle Solaris Studio (несмотря на свое название, она также имеет версию Linux). Он включает в себя инструмент Thread Analyzer, который способен собирать информацию об использовании потоков и представлять ее в приятном графическом интерфейсе. –