与多线程和多核的关系

时间:2015-01-24 05:37:59

标签: multithreading openmp multicore

我有一个多线程程序(xgboost),在多核(40核,redhat)服务器上使用openmp在linux上运行,但是当我尝试观察使用" top"命令,我只看到一个核心被我的可执行程序占用。

在使用openmp执行多线程程序时,Linux只会使用一个核心吗?如果是这种情况,那么多线程实际上是如何实现的呢?只有一个核心?

另外,一个核心是能够在多个线程上工作还是只能在一个线程上工作?在linux中默认情况下,多线程只处理一个核心?我知道(不是100%肯定)多个进程可以由多个核处理。

2 个答案:

答案 0 :(得分:0)

根据顶部使用> 100%CPU?按' 1'当你在顶部时看到CPU的使用情况。

答案 1 :(得分:0)

使用命令行中的ps -eLf,您可以看到所有进程及其线程(以ps术语表示的LWP轻量级进程)。 您可以使用grep:ps -eLf |过滤不相关的进程grep your_program_name