3

我正在尝试确定用于在具有 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 。

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

4

1 回答 1

0

查看 likwid (http://code.google.com/p/likwid/),我很确定它可以让您将 ATLAS 触发的线程仅固定到系统的物理核心。不知道怎么做,但它可以。

于 2012-11-24T17:24:27.170 回答