Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在较旧的Linux SVR(Redhat EL 5.7)上使用最新的GCC(4.8.1)_Linux_Optimization_Gcc_Floating - Fatal编程技术网

在较旧的Linux SVR(Redhat EL 5.7)上使用最新的GCC(4.8.1)

在较旧的Linux SVR(Redhat EL 5.7)上使用最新的GCC(4.8.1),linux,optimization,gcc,floating,Linux,Optimization,Gcc,Floating,我们在一台Linux机器上进行编码和构建,并使用数百个内核部署到我们的集群。目前,这两种类型的机器都是Redhat EL 5.7,并安装了默认的GCC 4.1.2 最近,我们意识到最新的GCC(如4.8.1)在算术计算方面得到了广泛的优化,包括MPFR/MPC的使用等。因为我们的程序非常浮点计算密集,我们希望在最新的GCC中重建我们的程序以实现提升 以下是我们构建的典型程序的当前链接详细信息: linux-gate.so.1 => (0x007e0000) libgcc_

我们在一台Linux机器上进行编码和构建,并使用数百个内核部署到我们的集群。目前,这两种类型的机器都是Redhat EL 5.7,并安装了默认的GCC 4.1.2

最近,我们意识到最新的GCC(如4.8.1)在算术计算方面得到了广泛的优化,包括MPFR/MPC的使用等。因为我们的程序非常浮点计算密集,我们希望在最新的GCC中重建我们的程序以实现提升

以下是我们构建的典型程序的当前链接详细信息:

    linux-gate.so.1 =>  (0x007e0000)
    libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x009bb000)
    libc.so.6 => /lib/libc.so.6 (0x00581000)
    /lib/ld-linux.so.2 (0x0034c000)    
因为我们不太可能升级操作系统,或者在集群中安装新的东西。(严格控制)。因此,问题是:

1、对于开发,我们是否可以在现有机器上安装最新的GCC?(我们尝试并发现需要很多依赖项)。是否可以链接到旧的LIB

2、对于部署,是否可以在不安装新软件的情况下部署到我们的群集?对于这些MPFR等,我们是否可以只部署so文件而不是在目标集群节点中安装RPM


非常感谢你的帮助

您需要安装所需的依赖项(及其所需版本)以构建GCC 4.8;请注意,MPFR、CLOOG等只是编译器需要的(因此在编译时需要,而不是在编译程序的运行时需要),所以您不需要安装它们来部署编译程序。不要将编译器链接到所需依赖项的旧版本

源tarball有一个
contrib/download\u前提条件
脚本,可能会有所帮助

如果从源代码tarball构建GCC4.8,不要忘记在源代码树之外构建,并遵循说明

您可能希望使用该选项链接您的程序,甚至可以使用
…/configure
禁用共享
-程序后缀=-4.8

(使用该
程序后缀
选项,您将以
GCC-4.8
的形式运行新的GCC,并且它将被安装,除非您默认在
/usr/local/bin/
中配置一些
--prefix
;如果您没有[root]对
/usr/local
的写入访问权限您应该配置自己的
--前缀


BTW,您可能会考虑定制GCC 4.8,例如TURU插件,或者更好地使用.< /P>,奇怪的是,您的集群是32位。通常,在数字集群上运行54位程序会略微提高性能。嗨,Basile,谢谢你的回复。我们的集群从32位开始,已经存在很多年了,后来升级保留了32位以避免重建程序。(这是一家银行,一切都受到严格控制)嗨,巴兹尔,谢谢你足智多谋的回答。1,如果我安装了所有新的libs和GCC,它会打破我以前的4.1.2吗?2、是否可能有一些“便携式”GCC?就像这篇文章提到的:我也在研究,非常感谢。我编辑了我的答案来解决你们的问题。你绝对应该建立和安装你的GCC4.8!如果我的答案合适,请随意接受和/或投票表决。