Linux ATLAS安装:真的需要通过CPU油门检查

Linux ATLAS安装:真的需要通过CPU油门检查,linux,installation,cpu-speed,atlas,Linux,Installation,Cpu Speed,Atlas,ATLAS 3.10.1将不会安装在我所在组织的CentOS 6.x平台上,因为它检测到CPU节流。在较旧版本的软件包中,有一个配置标志来关闭油门检查(-Si cputhrchk 0)并继续前进。这个选项在几个版本之前就被取消了。我理解这一决定背后的原因——开发人员担心他们的软件的性能和声誉,CPU节流使ATLAS无法自我调整。好的我的问题是,不管ATLAS的性能如何,我只需要简单地构建它。我知道,有很多方法可以停止节流,但我没有,也可能不会获得在这台机器上乱搞CPU频率的许可。所以我需要的是一

ATLAS 3.10.1将不会安装在我所在组织的CentOS 6.x平台上,因为它检测到CPU节流。在较旧版本的软件包中,有一个配置标志来关闭油门检查(
-Si cputhrchk 0
)并继续前进。这个选项在几个版本之前就被取消了。我理解这一决定背后的原因——开发人员担心他们的软件的性能和声誉,CPU节流使ATLAS无法自我调整。好的我的问题是,不管ATLAS的性能如何,我只需要简单地构建它。我知道,有很多方法可以停止节流,但我没有,也可能不会获得在这台机器上乱搞CPU频率的许可。所以我需要的是一种通过ATLAS油门检查的方法。我已经看过一些关于破解配置脚本的讨论,但我自己不知道如何去做。在ATLAS sourceforge网站上没有人回答这个问题,这不是为了批评那里的任何人。只是想说明我的处境。那么:有人知道如何通过ATLAS的油门检查吗?谢谢。

好吧,这不是一个很好的答案,但以防万一有人想知道:这里的系统管理员实际上给了我使用CPU节流的权限,所以现在ATLAS正在构建。但是,嘿,如果有人有真正的答案,请让我和其他看过这个问题的人知道。我很确定我会再次面对这种情况,也许还要担心一个更加顽固的系统管理员。

免责声明:以下是一个肮脏、卑鄙、卑鄙的黑客行为(包含所有的负面含义,没有任何积极意义),只是作为最后手段使用。我和ATLAS开发人员均不对您的ATLAS库因使用本软件而遭受的性能损失承担任何责任。

确保您首先理解CPU节流检查的原因:ATLAS提供了一些算法的“自动调优”,如果启用了CPU节流,它将无法进行调优(因为基准计时不可靠)。用
INSTALL.txt
的话说:“CPU节流使几乎所有的计时完全随机,因此任何ATLAS安装都将是垃圾”(我的重点)。如果可能,请关闭CPU节流

如果您完全无法关闭CPU节流,并且无论性能有多差,您只需要安装一个工作ATLAS,请尝试以下方法:

cd /path/to/ATLAS
patch -p0 CONFIG/src/probe_arch.c << EOF
@@ -238,8 +238,7 @@ int main(int nargs, char **args)
       printf("CPU MHZ=%d\n",
              ProbeOneInt(OS, asmd, targ, "-m", "CPU MHZ=", &sure));
    if (flags & Pthrottle)
-      printf("CPU THROTTLE=%d\n",
-             ProbeOneInt(OS, asmd, targ, "-t", "CPU THROTTLE=", &sure));
+      printf("CPU THROTTLE=0\n");
    if (flags & P64)
    {
       if (asmd == gas_x86_64)
EOF
cd/path/to/ATLAS

补丁-p0 CONFIG/src/probe_arch.c禁用CPU节流的另一种方法(从3.10.2开始)是修改
CONFIG/src/CONFIG.c
GetFlags()
方法,将
ThrChk
设置为0

cd /path/to/ATLAS/CONFIG/src
patch -p0 config.c << EOF
@@ -1026,7 +1026,7 @@
    *verb = 0;
    *NoCygwin = 0;
    *NoF77 = 0;
-   *ThrChk = 1;
+   *ThrChk = 0;
    *nthreads = -1;
    *tids = NULL;
    *omp = *AntThr = 0;
EOF

如何在使用较新版本Fedora Linux(例如Fedora 22)的最新计算机中关闭CPU节流。配方:

1) 使用root权限打开文件/etc/default/grub,并在变量grub_CMDLINE_LINUX中添加参数“intelpstate=disable”,然后保存该文件,例如

GRUB_CMDLINE_LINUX=“英特尔pstate=disable rhgb quiet”#(其他参数)

2) 重新生成GRUB配置以应用新更改:

a) 对于BIOS系统: #grub2 mkconfig-o/boot/grub/grub2.cfg

b) 对于UEFI系统: #grub2 mkconfig-o/boot/efi/efi/fedora/grub.cfg

然后重新启动

关于(i)配置GRUB引导加载程序和(ii)当系统为UEFI或BIOS时,在Fedora Linux中,例如,请参阅:


在3.10.3版中,实际上有一个配置标志
——削弱atlas性能
,它使编译atlas成为可能,而无需考虑节流

我本想建议你发帖子到Atlas讨论组,但你已经去过了:@paulsm4,是的。这是我最后的选择!谢谢。另一个选择是下载并构建ATLAS 3.9.79(2012年6月13日发布)。这是他们禁用“严重滥用的-Si cputhck 0”之前的版本。有关详细信息,请参阅源目录中的“ChangeLog”。sourceforge上似乎没有3.9.79。看起来在这个开关被移除之前的最后一个稳定版本是3.8.4(我想。我面前没有它。)知道这个版本的任何信息,比如它是否有缺陷或者有任何问题?谢谢。值得一提的是,
-Si cputhrchk 0
似乎已恢复为
配置
选项(我正在构建3.10.2)。谢谢。我理解性能问题。我们会非常小心地处理。如果我不得不这样做,我保证我不会抱怨我的表现。非常感谢。我想是的,鲍勃,但我知道如果我不把它放进去,其他人会过来被咬。(:这是3年前的事了,Atlas构建仍然在抱怨——这仍然是一个问题吗?其次,为什么Atlas不能关闭节流,保存参数,然后让我们将事情设置回“正常”状态?
/* Disabled due to abuse
      fprintf(stderr,
        "      -Si cputhrchk <0/1> : Ignore/heed CPU throttle probe\n");
 */