我正在尝试确定用于在具有 4 个 Intel CPU 和超线程(ubuntu 12.04)的 linux 机器上构建 ATLAS 的独立 CPU(用关联 ID 指定)。
我这样做的原因是 ATLAS 手册说在具有超线程的机器上只使用物理内核,关于如何实现这一点它说: “......如果你学习,你可以告诉 ATLAS 只使用真正的内核关于您的机器的一些信息。不幸的是,ATLAS 目前无法自动检测这些功能,但是如果您进行实验,您可以发现哪些亲和 ID 是单独的核心,......”
进一步提示如何实际进行此实验:“...在 Linux 下,我可以使用 cat /proc/cpuinfo... 发现这一点。”
在我的机器上,文件 /proc/cpuinfo 包含八个虚拟处理器的以下信息:
- 处理器:0
- vendor_id : 正版英特尔
- CPU系列:6
- 型号:42
- 型号名称:Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
- 步进:7
- 微码:0x1b
- 中央处理器兆赫:3392.333
- 缓存大小:8192 KB
- 物理ID:0
- 兄弟姐妹:8
- 核心编号:0
...
处理器 0 和 4 共享相同的核心 ID(处理器 1 和 5、2 和 6、3 和 7 以此类推)。但是,如果我将 --force-tids="4 0 1 2 3" 指定给 ATLAS 配置脚本,则构建失败(首先对我来说是由于 make pcheck 失败而引起的)。如果我不使用此标志,则 pcheck 可以正常工作,如下所示:http: //sourceforge.net/tracker/ ?func=detail&aid=3577908&group_id=23725&atid=379483 。
有人知道我如何通过一些实验来了解我的机器吗?