问题描述
我正在尝试确定用于在具有4个具有超线程功能的Intel CPU(ubuntu 12.04)的Linux机器上构建ATLAS的独立CPU(指定有相似性ID).
I'm trying to determine the independent CPU's (specified with affinity ID's) for building ATLAS on a linux machine with 4 Intel CPU's with hyperthreading (ubuntu 12.04).
之所以这样做,是因为ATLAS手册规定仅在具有超线程的计算机上使用物理内核,并说明如何实现:"...如果您了解了一些相关知识,则可以告诉ATLAS仅使用真正的内核.不幸的是,ATLAS目前无法自动检测这些功能,但是如果您进行实验,您会发现哪些亲和力ID是单独的核心,..."
The reason I'm doing this is that the ATLAS manual says to use only the physical cores on machines with hyper threading, on how to achieve this it says: "...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,..."
进一步给出了有关如何实际进行此实验的提示:.在Linux下,我可以使用cat/proc/cpuinfo ...发现它."
Further on a hint is given on how to actually do this experimenting: "...Under Linux, I can discover this with cat /proc/cpuinfo..."
在我的计算机上,文件/proc/cpuinfo包含八个虚拟处理器的以下信息:
On my machine the file /proc/cpuinfo contains for the eight virtual processors the following information:
-
- 处理器:0
- vendor_id:正版英特尔
- cpu家庭:6
- 型号:42
- 型号名称:Intel(R)Core(TM)i7-2600 CPU @ 3.40GHz
- 步进:7
- 微码:0x1b
- cpu MHz:3392.33
- 缓存大小:8192 KB
- 物理ID:0
- 兄弟姐妹:8
- 核心ID:0
- processor : 0
- vendor_id : GenuineIntel
- cpu family: 6
- model : 42
- model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
- stepping : 7
- microcode : 0x1b
- cpu MHz : 3392.333
- cache size : 8192 KB
- physical id : 0
- siblings : 8
- core id : 0
...
处理器0和4共享相同的内核ID(对于处理器1和5、2和6、3和7依此类推).但是,如果我在ATLAS配置脚本中指定--force-tids ="4 0 1 2 3",则构建会失败(首先,make pcheck失败会引起我的注意).如果我不使用此标志,则使pcheck正常运行,如下所示: http://sourceforge.net/tracker/?func=detail&aid=3577908&group_id=23725&atid=379483 .
Processors 0 and 4 share the same core id (and so on for processors 1 and 5, 2 and 6, 3 and 7). However if I specify --force-tids="4 0 1 2 3" to the ATLAS configure script the build fails (first noticable for me by a failing make pcheck). If I don't use this flag make pcheck works fine, as indicated here: http://sourceforge.net/tracker/?func=detail&aid=3577908&group_id=23725&atid=379483.
有人知道我可以通过一些实验来了解我的机器吗?
Does anybody know how I can learn a little about my machine by some experimenting?
推荐答案
查看likwid(http://code.google.com/p/likwid/),我很确定它将允许您固定线程ATLAS仅向您系统的物理核心触发.哈特不知道如何,但是可以.
Check out likwid (http://code.google.com/p/likwid/), I'm pretty sure it will allow you to pin the threads that ATLAS fires to only the physical cores of your system. Don't know by hart how, but it can.
这篇关于确定用于构建ATLAS的独立CPU(指定有相似性ID)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!