确定用于构建ATLAS的独立CPU(用关联ID标识)

时间:2012-11-23 09:08:56

标签: linux cpu intel hyperthreading atlas

我正在尝试确定独立的CPU(用关联ID来指定),用于在具有4个具有超线程的Intel CPU(ubuntu 12.04)的Linux机器上构建ATLAS。

我这样做的原因是ATLAS手册说只使用具有超线程的机器上的物理内核,如何实现这一点它说: "...you can tell ATLAS to use only the real cores if you learn a little about your machine. Unfortunately, ATLAS cannot presently autodetect these features, but if you experiment you can discover which affinity IDs are the separate cores,..."

进一步提示如何进行实验:"...Under Linux, I can discover this with cat /proc/cpuinfo..."

在我的机器上,文件/ proc / cpuinfo包含八个虚拟处理器的以下信息:

    • 处理器:0
    • vendor_id:GenuineIntel
    • cpu family:6
    • 型号:42
    • 型号名称:Intel(R)Core(TM)i7-2600 CPU @ 3.40GHz
    • 踩:7
    • microcode:0x1b
    • cpu MHz:3392.333
    • 缓存大小:8192 KB
    • physical id:0
    • 兄弟姐妹:8
    • 核心ID:0
  1. ...

    处理器0和4共享相同的核心ID(依此类推,处理器1和5,2和6,3和7)。但是,如果我在ATLAS配置脚本中指定--force-tids =“4 0 1 2 3”,则构建失败(首先由于失败的make pcheck对我来说是显而易见的)。如果我不使用此标志,则make pcheck正常工作,如下所示:http://sourceforge.net/tracker/?func=detail&aid=3577908&group_id=23725&atid=379483

    有人知道如何通过一些实验来了解我的机器吗?

1 个答案:

答案 0 :(得分:0)

检查出来(http://code.google.com/p/likwid/),我很确定它会允许您将ATLAS触发的线程仅固定到系统的物理核心。不知道哈特怎么样,但它可以。