Я нахожусь в своем проекте на компиляторе с SMP и хочу кодировать pthreads и слышал о многих параллельных вещах, открытых mpi и т. Д. Итак, чтобы начать с того, как этот поток выделяется ядру при вызове pthread, есть ли способ давать потоки различным ядрам pthreads?Как работает этот pthread?
ответ
Ознакомьтесь с учебником pthreads, например this. Но в целом я бы рекомендовал использовать библиотеку более высокого уровня, чем pthreads, так как будет проще или систематически использовать их. Например, Boost :: Threads или Intel TBB.
Система назначит потоки доступным ядрам и перемещает их, если в других местах есть свободные ресурсы.
ОС обычно выполняет намного лучшую работу, чем я, при назначении ресурсов, но если вы действительно этого хотите, большинство ОС имеют способ назначения/ограничения потоков конкретному ядру/процессорам. В linux используйте sched_setaffinity
Самый простой ответ: да - в общем случае разные потоки, скорее всего, будут работать на разных ядрах, автоматически без необходимости указывать, где работают потоки.
Похоже, вам нужно введение/праймер в многопоточном программировании вообще, прежде чем погрузиться в конкретную библиотеку потоков/способ мышления. Прежде чем делать что-либо еще, прочитайте раздел «What is a thread» от Amit выше, а затем посмотрите на особенности потоков POSIX, потоки Windows, TBB, Boost Threads или любую другую библиотеку/оболочку, которые вам интересны.
- 1. Как работает pthread?
- 2. C++ pthread не работает
- 3. pthread работает несколько раз
- 4. Сигнал pthread не работает
- 5. Почему этот код pthread просто висит?
- 6. PThread Mutex не работает как Hoped
- 7. Pthread условный сигнал - не работает как ожидалось
- 8. Как правильно управлять pthread?
- 9. Ошибка статистики в pthread (S_ISDIR не работает)
- 10. -lpthread и -pthread при компиляции кода pthread
- 11. приостановить pthread?
- 12. Некоторые pthread code ... почему он работает медленно?
- 13. как проверить совместимость pthread?
- 14. как выйти PTHREAD немедленно
- 15. Как правильно завершить pthread?
- 16. Почему typedef не работает с pthread?
- 17. Как работает этот код?
- 18. Как работает этот код?
- 19. Как работает этот вектор?
- 20. Как работает этот массив?
- 21. Как работает этот макрос?
- 22. Как работает этот threadExample?
- 23. Как работает этот вкладка?
- 24. Как работает этот typedef?
- 25. Как работает этот метод?
- 26. Как работает этот алгоритм?
- 27. Как работает этот буфер?
- 28. Как работает этот цикл?
- 29. Как работает этот селектор?
- 30. Как работает этот указатель?