计算化学公社

 找回密码 Forget password
 注册 Register
楼主 Author: 乐平
打印 Print 上一主题 Last thread 下一主题 Next thread

[CP2K] 在 Ubuntu 20.04 LTS 桌面系统 GNU 成功编译 CP2K-9.1

[复制链接 Copy URL]

82

帖子

0

威望

596

eV
积分
678

Level 4 (黑子)

31#
发表于 Post on 2022-4-18 21:21:50 来自手机 | 只看该作者 Only view this author
直接toolchain安装

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

32#
 楼主 Author| 发表于 Post on 2022-4-19 10:17:44 | 只看该作者 Only view this author
本帖最后由 乐平 于 2022-4-19 04:39 编辑
leeru 发表于 2022-4-18 15:21
直接toolchain安装

那就是说,把
  1. cp2k-9.1/tools/toolchain/scripts/stage1/install_intelmpi.sh
复制代码

里面
  1. echo "==================== Finding Intel MPI from system paths ===================="
  2. check_command mpirun "intelmpi" && MPIRUN="$(command -v mpirun)" || exit
  3. check_command mpiicc "intelmpi" && MPICC="$(command -v mpiicc)" || exit
  4. check_command mpiifort "intelmpi" && MPIFC="$(command -v mpiifort)" || exit
  5. if [ $(command -v mpiicpc >&- 2>&-) ]; then
  6.     check_command mpiicpc "intelmpi" && MPICXX="$(command -v mpiicpc)"
  7. elif [ $(command -v mpic++ >&- 2>&-) ]; then
  8.     check_command mpic++ "intelmpi" && MPICXX="$(command -v mpic++)"
  9. else
  10.     check_command mpicxx "intelmpi" && MPICXX="$(command -v mpicxx)" || exit
  11. fi
  12. add_include_from_paths INTELMPI_CFLAGS "mpi.h" $INCLUDE_PATHS
  13. add_lib_from_paths INTELMPI_LDFLAGS "libmpi.*" $LIB_PATHS
  14. check_lib -lmpi "intelmpi"
  15. check_lib -lmpicxx "intelmpi"
  16. ;;
  17. __DONTUSE__) ;;
复制代码


所有的 mpiicc, mpiifort, 都替换成 mpicc, mpif90 ?


那 mpiicpc 需要修改吗?  如果需要修改,应该修改成什么呢?




185

帖子

1

威望

4133

eV
积分
4338

Level 6 (一方通行)

33#
发表于 Post on 2022-4-19 11:57:20 | 只看该作者 Only view this author
本帖最后由 highlight 于 2022-4-19 11:58 编辑
乐平 发表于 2022-4-19 10:17
那就是说,把
里面
  1.      check_command mpicc "intelmpi" && MPICC="$(command -v mpicc)" || exit
  2.      check_command mpif90 "intelmpi" && MPIFC="$(command -v mpif90)" || exit
  3.      # if [ $(command -v mpiicpc >&- 2>&-) ]; then
  4.      #  check_command mpiicpc "intelmpi" && MPICXX="$(command -v mpiicpc)"
  5.      # elif [ $(command -v mpic++ >&- 2>&-) ]; then
  6.      #  check_command mpic++ "intelmpi" && MPICXX="$(command -v mpic++)"
  7.      #else
  8.         check_command mpicxx "intelmpi" && MPICXX="$(command -v mpicxx)" || exit
  9.      # fi
复制代码

另外 scripts/common_vars.sh 里 50 行 mpic++ 换成 mpicxx

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

34#
 楼主 Author| 发表于 Post on 2022-4-19 14:48:01 | 只看该作者 Only view this author
本帖最后由 乐平 于 2022-4-19 08:55 编辑
highlight 发表于 2022-4-19 05:57
另外 scripts/common_vars.sh 里 50 行 mpic++ 换成 mpicxx

谢谢!
按照您的提示将 scripts/stage1/install_interlmpi 中的 mpiicc 修改为 mpicc ,将 mpiifort 改为 mpif90
并将 scripts/common_vars.sh 中 export MPICXX=${MPICXX:-mpic++} 改为 export MPICXX=${MPICXX:-mpicxx}

编译的命令是
  1. ./install_cp2k_toolchain.sh --math-mode=mkl --with-gcc=install --mpi-mode=intelmpi --with-pexsi=install --with-elpa=install --with-ptscotch=install --with-superlu=install --with-quip=install --with-plumed=install
复制代码


但是在 install elpa 这一步报错了……
  1. ==================== Installing ELPA ====================
  2. elpa-2021.11.001.tar.gz is found
  3. patching file nvcc_wrap
  4. Installing from scratch into /public/home/lxb/software/cp2k9_intelmpi/tools/toolchain/install/elpa-2021.11.001/cpu
  5. ERROR: (./scripts/stage5/install_elpa.sh, line 111) Non-zero exit code detected.
复制代码


查看 build/elpa-2021.11.001/build_cpu/configure.log 文件,报错信息是

  1. checking for library containing bi_f77_init... no
  2. checking for library containing blacs_gridinit... none required
  3. checking for library containing blacs_gridinit... (cached) none required
  4. checking for library containing pdtran... none required
  5. checking whether we can link a Fortran program with all blacs/scalapack... yes
  6. checking whether we can use the intrinsic Fortran function "get_environment_variable"... yes
  7. checking whether BAND_TO_FLULL_BLOCKING is requested... yes
  8. checking whether a Nvidia GPU compute capability is specified... yes
  9. checking whether Fortran mpi module can be used... no
  10. configure: error: Could not compile a Fortran program with an 'use mpi' statement. You can try again with --disable-mpi-module
复制代码


从提示的信息来看,不能用 mpi 模式……


之前没有用 intelmpi,而是 --with-openmpi=install 不会在 elpa 这一步报错。

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

35#
发表于 Post on 2022-4-19 14:55:10 | 只看该作者 Only view this author
elpa 使用intel无法直接编译,需做部分修正。
High-Performance Computing for You
为您专属定制的高性能计算解决方案

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

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

36#
 楼主 Author| 发表于 Post on 2022-4-19 15:03:46 | 只看该作者 Only view this author
abin 发表于 2022-4-19 08:55
elpa 使用intel无法直接编译,需做部分修正。

有趣

在 scripts/stage5/install_elpa.sh 中 35 至 42 代码段中看到 elpa only works with MPI switched on

  1. 35 # elpa only works with MPI switched on
  2. 36 if [ $MPI_MODE = no ]; then
  3. 37   report_warning $LINENO "MPI is disabled, skipping elpa installation"
  4. 38   cat << EOF > "${BUILDDIR}/setup_elpa"
  5. 39 with_elpa="__FALSE__"
  6. 40 EOF
  7. 41   exit 0
  8. 42 fi
复制代码


但是在 build/elpa-2021.11.001/build_cpu/configure.log 文件的报错信息中却看到

  1. configure: error: Could not compile a Fortran program with an 'use mpi' statement. You can try again with --disable-mpi-module
复制代码


一边说 elpa 必须要 MPI 才能运行,一边又说 --disable-mpi-module 。

真是呵呵呵……

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

37#
 楼主 Author| 发表于 Post on 2022-4-19 15:15:00 | 只看该作者 Only view this author
abin 发表于 2022-4-19 08:55
elpa 使用intel无法直接编译,需做部分修正。

请问,需要部分修正是指在下面的代码中

  1. ../configure --prefix="${pkg_install_dir}/${TARGET}/" \
  2.           --libdir="${pkg_install_dir}/${TARGET}/lib" \
  3.           --enable-openmp=yes \
  4.           --enable-shared=no \
  5.           --enable-static=yes \
复制代码

加上 --disable-mpi-module \ 吗?

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

38#
 楼主 Author| 发表于 Post on 2022-4-19 15:25:19 | 只看该作者 Only view this author
乐平 发表于 2022-4-19 09:15
请问,需要部分修正是指在下面的代码中

不行……

  1. ../configure --prefix="${pkg_install_dir}/${TARGET}/" \
  2.           --libdir="${pkg_install_dir}/${TARGET}/lib" \
  3.           --enable-openmp=yes \
  4.           --enable-shared=no \
  5.           --enable-static=yes \
  6.           --disable-mpi-module \
复制代码


不是正确方法,依旧报错……

2301

帖子

1

威望

5473

eV
积分
7794

Level 6 (一方通行)

39#
发表于 Post on 2022-4-19 15:44:44 | 只看该作者 Only view this author
乐平 发表于 2022-4-19 15:15
请问,需要部分修正是指在下面的代码中

不记得了……
你先试试用intel编译elpa 呗,如有必要……

没有elpa ,也能用的……
High-Performance Computing for You
为您专属定制的高性能计算解决方案

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

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

40#
 楼主 Author| 发表于 Post on 2022-4-19 16:33:16 | 只看该作者 Only view this author
本帖最后由 乐平 于 2022-4-19 10:39 编辑
gog 发表于 2022-4-11 03:41
9.1版本?还是7.1?这么修改,太复杂了。我搞不懂。
如何用yum 升级 binutil?自定义路径编辑编译?
调 ...

其实直接用
  1. yum install centos-release-scl
  2. yum install devtoolset-9-gcc*
复制代码

gcc 升级到 9.3.1, binutil 就跟着升级到 2.32 了

或者
  1. yum install devtoolset-11-gcc*
复制代码
gcc 升级到 11.2.1, binutil 就跟着升级到 2.32 了

你可以用
  1. ld -v
复制代码

查看版本号,升级之前查看一次,升级之后调用 gcc
  1. scl enable devtoolset-9 bash
复制代码
或者
  1. scl enable devtoolset-11 bash
复制代码

再 ld -v 查看,就知道 binutil 升级好了。



185

帖子

1

威望

4133

eV
积分
4338

Level 6 (一方通行)

41#
发表于 Post on 2022-4-19 16:51:57 | 只看该作者 Only view this author
乐平 发表于 2022-4-19 14:48
谢谢!
按照您的提示将 scripts/stage1/install_interlmpi 中的 mpiicc 修改为 mpicc ,将 mpiifort 改 ...

注意  --with-gcc=install --mpi-mode=intelmpi 时的输出
install_cp2k_toolchain.sh 里有这么一段
  1.   if [ "$with_gcc" = "__INSTALL__" ]; then
  2.     echo "You have chosen to install GCC, therefore MPI libraries will have to be installed too"
  3.      with_openmpi="__INSTALL__"
  4.      with_mpich="__INSTALL__"
  5.      with_intelmpi="__DONTUSE__"
  6.   fi
  7. fi
复制代码

懂了吧

1060

帖子

0

威望

3254

eV
积分
4314

Level 6 (一方通行)

42#
 楼主 Author| 发表于 Post on 2022-4-19 18:54:18 | 只看该作者 Only view this author
本帖最后由 乐平 于 2022-4-19 13:06 编辑
highlight 发表于 2022-4-19 10:51
注意  --with-gcc=install --mpi-mode=intelmpi 时的输出
install_cp2k_toolchain.sh 里有 ...

谢谢提示!

install_cp2k_toolchain.sh 里还有
  1.   elif (mpirun --version 2>&1 | grep -s -q "Intel"); then
  2.     echo "MPI is detected and it appears to be Intel MPI"
  3.     with_gcc=__DONTUSE__
  4.     export MPI_MODE=intelmpi
复制代码


似乎 gcc=install 和 intelmpi 是互斥的?

我也尝试过  --with-gcc=system  --mpi-mode=intelmpi 的组合(gcc 11.2.1 版),运行到 install libint 会报错……

82

帖子

0

威望

596

eV
积分
678

Level 4 (黑子)

43#
发表于 Post on 2022-4-19 23:15:06 来自手机 | 只看该作者 Only view this author
我这边测试过很多组合,devtoolset编译过程没有任何报错,就是运行psmp时显示coredamp,不能运行

328

帖子

0

威望

1916

eV
积分
2244

Level 5 (御坂)

44#
发表于 Post on 2022-4-20 08:14:46 | 只看该作者 Only view this author
乐平 发表于 2022-4-19 16:33
其实直接用

gcc 升级到 9.3.1, binutil 就跟着升级到 2.32 了

运行不能通过呢。coredamped

185

帖子

1

威望

4133

eV
积分
4338

Level 6 (一方通行)

45#
发表于 Post on 2022-4-20 09:05:18 | 只看该作者 Only view this author
乐平 发表于 2022-4-19 18:54
谢谢提示!

install_cp2k_toolchain.sh 里还有

你把这里注释掉不就行
可能是编译器版本,也可能是安装的时候配置问题吧, -with-gcc=install 是 11.2.0

本版积分规则 Credits rule

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

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

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