计算化学公社

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

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

[复制链接 Copy URL]

509

帖子

1

威望

4249

eV
积分
4778

Level 6 (一方通行)

跳转到指定楼层 Go to specific reply
楼主
最近有要试用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。

185

帖子

1

威望

4139

eV
积分
4344

Level 6 (一方通行)

19#
发表于 Post on 2022-4-8 12:41:21 | 只看该作者 Only view this author
snljty 发表于 2022-4-8 11:47
啊我是说我几乎从不直接source那个总的sh的,modulefiles写的都是用哪个加载哪个。

反正我编译的时候通过 inteloneapi.sh 全都加载后只调用 mkl 和 mpi 似乎没过啥大问题

1187

帖子

5

威望

2841

eV
积分
4129

Level 6 (一方通行)

18#
发表于 Post on 2022-4-8 11:47:42 | 只看该作者 Only view this author
highlight 发表于 2022-4-8 10:48
不是编译器环境,是 intel 套件环境,可以利用 MKL 和 Intel mpi,从早期版本经验上看会快一些
我就是用 ...

啊我是说我几乎从不直接source那个总的sh的,modulefiles写的都是用哪个加载哪个。

185

帖子

1

威望

4139

eV
积分
4344

Level 6 (一方通行)

17#
发表于 Post on 2022-4-8 10:48:55 | 只看该作者 Only view this author
本帖最后由 highlight 于 2022-4-8 10:50 编辑
snljty 发表于 2022-4-7 23:31
你都指定了用GNU编译器,干嘛还加载Intel编译器的环境...

不是编译器环境,是 intel 套件环境,可以利用 MKL 和 Intel mpi,从早期版本经验上看会快一些
我就是用了 intel oneapi 的 mkl 和 mpi,修改了 stage1/install_intelmpi.sh 调用 intel 编译器的错误(http://bbs.keinsci.com/thread-27675-1-1.html
静态版 arch 修改主要思路就是把原来 local.psmp 的 LIBS 里动态链接的 -lxxx 改成静态 $(PATH)/libxxx.a

1187

帖子

5

威望

2841

eV
积分
4129

Level 6 (一方通行)

16#
发表于 Post on 2022-4-7 23:31:59 | 只看该作者 Only view this author
本帖最后由 snljty 于 2022-4-8 08:35 编辑
乐平 发表于 2022-4-7 21:55
我用的服务器是 CentOS Linux release 7.4.1708 (Core),用 yum install devtoolset-9-gcc* 将 GCC 升级 ...

你都指定了用GNU编译器,干嘛还加载Intel编译器的环境...

1063

帖子

0

威望

3276

eV
积分
4339

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

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最后成功的。

185

帖子

1

威望

4139

eV
积分
4344

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

247

帖子

1

威望

2411

eV
积分
2678

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一次就编译成了
我唯一知道的就是我一无所知,但我是化学小迷弟

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。

185

帖子

1

威望

4139

eV
积分
4344

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 (一方通行)

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

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

343

帖子

1

威望

7002

eV
积分
7365

Level 6 (一方通行)

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

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目录下

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了。

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

GMT+8, 2024-11-27 11:09 , Processed in 0.218567 second(s), 22 queries , Gzip On.

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