计算linux中处理器内核的数量



如何使用运行时间(执行任何代码段所需的时间)来推断linux操作系统的处理器数量。我有执行特定代码段所需的时钟滴答声。如何从中测量机器上的核心数量

您可以使用获取有关CPU的信息(处理器数量和内核数量等)

CCD_ 1。

但是,如果您试图计算在linux内核内执行特定代码时所用的时钟信号,您可以尝试。

#include <sys/time.h>
unsigned long ini,end;
preempt_disable();
rdtscl(ini);
...your code....
rdtscl(end);
preempt_enable();
printk("time lapse in cpu clics: %lun",(end-ini));

了解更多详细信息http://www.xml.com/ldd/chapter/book/ch06.html或者下载.intel.com/embedded/software/IA/324264.pdf,如果您的代码需要更多的时间,那么您也可以有效地使用jiffies。

对于用户空间应用程序,您可以使用各种计时功能,这些功能以纳秒分辨率或oprofile给出时间(http://oprofile.sourceforge.net/about/)&请参阅定时器功能,使用C++提供以纳秒为单位的时间

我想我们可以这样做:

写一些可以并行运行的代码来做一些繁重的数学工作,比如一个寻找素数的简单方法。然后在多个线程中运行,从一个线程开始,然后向上运行。在某个时刻,计算出N个第一素数所需的时间将是,线程的数量将与(可用的)处理器内核的数量相同。

但是,查找处理器数量是一种非常笨拙的方法,而且它几乎肯定不会在高负载的系统或在虚拟机上运行的系统等上工作。

最新更新