计算化学公社

 找回密码 Forget password
 注册 Register
Views: 5792|回复 Reply: 18
打印 Print 上一主题 Last thread 下一主题 Next thread

[Linux] CentOS7.6采用SCL快速升级gcc到7-11版本

[复制链接 Copy URL]

509

帖子

1

威望

4245

eV
积分
4774

Level 6 (一方通行)

最近有要试用gcc7或8,论坛里有帖子涉及到centos7下升级gcc的帖子,如以下俩都是手动编译的。
无需超级用户授权, 以普通用户源码编译安装 gcc
CentOS7下安装GROMACS(GPU+AVX512)的经历分享

简单检索了一下,通过yum升级也挺简单的,适合懒人。例如这个链接https://www.xshell.net/Linux/update-gcc.html
不过我在发帖时间看,似乎只有7-11版本的。
简单摘录命令行如下
  1. 安装SCL源:
  2. yum install centos-release-scl scl-utils-build -y

  3. 列出SCL可用源:
  4. yum list all --enablerepo='centos-sclo-rh' | grep "devtoolset-"

  5. 安装8版本的gcc、gcc-c++、gdb工具链(toolchian):(要哪个版本的就把命令中的数字8改成你要的主版本号就可以了。这样升级到的是最新的版本。例如8升级到的是8.3.1而不是8.2。)
  6. yum install devtoolset-8-toolchain -y

  7. 切换gcc8:
  8. scl enable devtoolset-8 bash

  9. 退出gcc8
  10. exit
复制代码
通过scl命令启动gcc,这个只是暂时的,当你的shell关闭后或者重启就会恢复原来的版本,要想一直使用升级后的版本可以将其添加到.bashrc。

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

2#
发表于 Post on 2022-4-5 21:52:50 | 只看该作者 Only view this author
容器模式,
anaconda方案亦可.

容器模式, 可能是最佳的.
一旦配置完毕, 拷贝就可以用, 当然前提是, 机器有容器支持.
High-Performance Computing for You
为您专属定制的高性能计算解决方案

更多讯息,请访问:
https://labitc.top
http://tophpc.top:8080
电邮: ask@hpc4you.top

1187

帖子

5

威望

2841

eV
积分
4129

Level 6 (一方通行)

3#
发表于 Post on 2022-4-6 09:10:47 | 只看该作者 Only view this author
devtoolset看起来是很理想,装起来也很方便,不过实际用的时候还是会遇到一些问题的。比如我结合devtoolset-8或者9编译CP2K的时候,编译无报错最后编译完不能用。(好像是基于它编译的Open MPI有问题,记不清了)。后来还是自己编译gcc 8.5.0解决的。

417

帖子

1

威望

2196

eV
积分
2633

Level 5 (御坂)

4#
发表于 Post on 2022-4-6 09:44:55 | 只看该作者 Only view this author
举一个例子,CXXABI_1.3.9是从gcc 5.1开始的。CentOS 7里面的devtoolset-7对应的gcc版本是7.2.1,但你用SCL安装好gcc 7.2.1后会发现还是没有CXXABI_1.3.9。可能维护devtoolset的团队为求稳妥采取了一种相对而言保守的策略。

1060

帖子

0

威望

3256

eV
积分
4316

Level 6 (一方通行)

5#
发表于 Post on 2022-4-6 10:12:40 | 只看该作者 Only view this author
snljty 发表于 2022-4-6 03:10
devtoolset看起来是很理想,装起来也很方便,不过实际用的时候还是会遇到一些问题的。比如我结合devtoolset ...

不能用可能是因为 devtoolset-9 安装的时候是在管理节点的 /opt/rh 目录,但是运行 CP2K 的时候是在各个计算节点。但是计算节点没有一起升级。

手动编译 gcc 时,放在了共享目录里,所以计算节点和管理节点都同时升级了 gcc

1187

帖子

5

威望

2841

eV
积分
4129

Level 6 (一方通行)

6#
发表于 Post on 2022-4-6 10:27:48 | 只看该作者 Only view this author
乐平 发表于 2022-4-6 10:12
不能用可能是因为 devtoolset-9 安装的时候是在管理节点的 /opt/rh 目录,但是运行 CP2K 的时候是在各个 ...

不是的,我们集群所有/opt挂载的同一个硬盘阵列的相同目录。而且不是计算节点不能用,是我编译的节点就用不了。报错也不是缺库,是直接segmentation fault了。

186

帖子

0

威望

4092

eV
积分
4278

Level 6 (一方通行)

7#
发表于 Post on 2022-4-6 16:22:18 | 只看该作者 Only view this author
snljty 发表于 2022-4-6 10:27
不是的,我们集群所有/opt挂载的同一个硬盘阵列的相同目录。而且不是计算节点不能用,是我编译的节点就用 ...

可能是libquadmath版本的问题,在/lib64目录下

343

帖子

1

威望

6996

eV
积分
7359

Level 6 (一方通行)

8#
发表于 Post on 2022-4-6 16:35:58 | 只看该作者 Only view this author
学习了,谢谢分享!

1187

帖子

5

威望

2841

eV
积分
4129

Level 6 (一方通行)

9#
发表于 Post on 2022-4-6 16:50:15 | 只看该作者 Only view this author
plus 发表于 2022-4-6 16:22
可能是libquadmath版本的问题,在/lib64目录下

谢谢,devtoolset的gfortran不自带quadmath库么?

185

帖子

1

威望

4133

eV
积分
4338

Level 6 (一方通行)

10#
发表于 Post on 2022-4-6 17:14:16 | 只看该作者 Only view this author
snljty 发表于 2022-4-6 16:50
谢谢,devtoolset的gfortran不自带quadmath库么?

devtoolset 的库都不在 /lib64 下,所以如果你编译的是动态库版,除了 source setup 外还需要 scl enable devtoolset-X bash 才能链接正确
我之前就是用 devtoolset 编译的 cp2k-8.2 版本,自己修改 arch 变成静态库版后,拿到别的机器上不用 source setup 和 scl enable 也是可以运行的

1187

帖子

5

威望

2841

eV
积分
4129

Level 6 (一方通行)

11#
发表于 Post on 2022-4-6 18:55:23 | 只看该作者 Only view this author
highlight 发表于 2022-4-6 17:14
devtoolset 的库都不在 /lib64 下,所以如果你编译的是动态库版,除了 source setup 外还需要 scl enable ...

嗯我enable了的,还是不行。而且是编译没报错,运行有问题。CP2K是9.1。

247

帖子

1

威望

2407

eV
积分
2674

Level 5 (御坂)

12#
发表于 Post on 2022-4-6 19:09:58 | 只看该作者 Only view this author
snljty 发表于 2022-4-6 18:55
嗯我enable了的,还是不行。而且是编译没报错,运行有问题。CP2K是9.1。

确实啊,在centos7.8折腾了好久好久gcc,编译CP2K还是出现各种问题,最后换centos8一次就编译成了
我唯一知道的就是我一无所知,但我是化学小迷弟

185

帖子

1

威望

4133

eV
积分
4338

Level 6 (一方通行)

13#
发表于 Post on 2022-4-7 17:17:26 | 只看该作者 Only view this author
snljty 发表于 2022-4-6 18:55
嗯我enable了的,还是不行。而且是编译没报错,运行有问题。CP2K是9.1。

其实我在 centos7.6 上也成功编译过 9.1 静态版
不过 gcc 使用的是 --with-gcc=install,高版本 binutils 问题(http://bbs.keinsci.com/thread-28171-1-1.html)用的 devtoolset
PS:貌似 arch/local_static.psmp 还不大行,还是用了自己修改的 arch

1187

帖子

5

威望

2841

eV
积分
4129

Level 6 (一方通行)

14#
发表于 Post on 2022-4-7 18:17:32 | 只看该作者 Only view this author
highlight 发表于 2022-4-7 17:17
其实我在 centos7.6 上也成功编译过 9.1 静态版
不过 gcc 使用的是 --with-gcc=install,高版本 binutil ...

诶求问怎么修改的?我是用的自己编译的gcc-8.5.0,用这个gcc编译的openmpi 4.1.1,然后加载这两个环境,--with-openmpi=system最后成功的。

1060

帖子

0

威望

3256

eV
积分
4316

Level 6 (一方通行)

15#
发表于 Post on 2022-4-7 21:55:28 | 只看该作者 Only view this author
snljty 发表于 2022-4-7 12:17
诶求问怎么修改的?我是用的自己编译的gcc-8.5.0,用这个gcc编译的openmpi 4.1.1,然后加载这两个环境,-- ...

我用的服务器是 CentOS Linux release 7.4.1708 (Core),用 yum install devtoolset-9-gcc* 将 GCC 升级到 9.3.1 版,Intel 编译器是 2018.1.1 版

但是如果直接 source /YOUR_PATH/intel/parallel_studio_xe_2018/psxevars.sh intel64 大概率是不能顺利编译 CP2K-9.1 的

只有单独  source /YOUR_PATH/intel/mkl/bin/mklvars.sh intel64 才可以编译 CP2K-9.1,或者安装 2020 版的 MKL 也可以(就……很神奇,可能是 Intel 编译器里的 ifort, icc 或者 intel mpi 有影响?)

我编译 CP2K-9.1 的时候用的命令如下:./install_cp2k_toolchain.sh --with-gcc=install --with-openmpi=install --with-scalapack=install --with-libsmm=install --with-ptscotch=install --with-superlu=install --with-pexsi=install --with-quip=install --with-plumed=install

中途会遇到 libsxmm 编译的报错,但是可以通过在 scripts/stage4/install_libxsmm.sh 第 70 行以及第 76 添加 INTRINSICS=1 解决(讨论的链接如下)
http://bbs.keinsci.com/thread-28171-1-1.html#pid191152

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2024-11-23 21:11 , Processed in 0.175976 second(s), 21 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list