温馨提示×

CentOS下Fortran版本如何升级

小樊
44
2025-12-07 20:22:22
栏目: 智能运维

CentOS 下升级 Fortran 的可选方案

  • 使用 SCL/DevToolSet(推荐,系统兼容性好,CentOS 7/8 均适用)
  • 使用 Intel oneAPI HPC Toolkit(ifx/ifort,需许可证)
  • 源码编译 GCC(获取最新版本,灵活但耗时)
  • 使用 IBM XL Fortran(仅限特定平台与许可)

方案一 使用 SCL DevToolSet 升级 gfortran(推荐)

  • 适用于 CentOS 7/8,不改变系统默认编译器,按需启用新工具链。
  • 安装与启用步骤:
    1. 安装 SCL 源与工具
      • CentOS 7:sudo yum install -y centos-release-scl
      • CentOS 8:sudo dnf install -y centos-release-scl
    2. 安装所需版本的 DevToolSet(含 gfortran)
      • 例如安装 devtoolset-9(提供 GCC 9.x 与 gfortran 9)
        • sudo yum install -y devtoolset-9-gcc-gfortran
      • 其他版本:devtoolset-7、devtoolset-10、devtoolset-11 等,按需求选择
    3. 启用新工具链(临时生效)
      • scl enable devtoolset-9 bash
    4. 验证版本
      • gcc --version
      • gfortran --version
    5. 设为登录即启用(可选,永久生效)
      • echo “source /opt/rh/devtoolset-9/enable” >> /etc/profile.d/devtoolset.sh
      • source /etc/profile.d/devtoolset.sh
  • 说明:启用后仅对当前会话或按上述脚本加载的会话生效,系统自带旧版 gcc/gfortran 保持不变,便于兼容既有项目。

方案二 使用 Intel oneAPI HPC Toolkit 安装 ifx/ifort

  • 适用于需要 Intel 高性能 Fortran 编译器(ifx/ifort)的场景。
  • 基本步骤:
    1. Intel 官方下载并安装 Intel oneAPI HPC Toolkit(包含 ifx/ifort)
    2. 按安装向导完成配置,确保许可证有效
    3. 使用模块或设置环境变量加载工具链
    4. 验证:ifx --version 或 ifort --version
  • 说明:该方案与 GCC 工具链并行,适合需要 Intel 优化与并行库(如 MKL、MPI)的 HPC 工作负载。

方案三 从源码编译安装 GCC(获取最新 gfortran)

  • 适用于需要 特定版本最新版本 的场景(如科研/新特性需求)。
  • 基本步骤(以安装到 /usr/local/gcc-XX 为例):
    1. 安装依赖
      • sudo yum groupinstall -y “Development Tools”
      • sudo yum install -y gmp-devel mpfr-devel libmpc-devel
    2. 下载并解压 GCC 源码(示例:gcc-11.4.0.tar.gz
      • wget https://ftp.gnu.org/gnu/gcc/gcc-11.4.0/gcc-11.4.0.tar.gz
      • tar xf gcc-11.4.0.tar.gz && cd gcc-11.4.0
    3. 下载依赖项
      • ./contrib/download_prerequisites
    4. 配置、编译与安装
      • mkdir build && cd build
      • …/configure --enable-languages=c,c++,fortran --disable-multilib --prefix=/usr/local/gcc-11.4.0
      • make -j$(nproc)
      • sudo make install
    5. 配置环境(示例)
      • echo ‘export PATH=/usr/local/gcc-11.4.0/bin:$PATH’ | sudo tee /etc/profile.d/gcc11.sh
      • echo ‘export LD_LIBRARY_PATH=/usr/local/gcc-11.4.0/lib64:$LD_LIBRARY_PATH’ | sudo tee -a /etc/profile.d/gcc11.sh
      • source /etc/profile.d/gcc11.sh
    6. 验证
      • gcc --version
      • gfortran --version
  • 说明:源码编译耗时较长,但版本可控,适合对编译器版本有精确要求的用户。

方案四 使用 IBM XL Fortran(仅限特定平台与许可)

  • 适用于 IBM Power(ppc64le) 等平台且持有 IBM XL Fortran 许可的场景。
  • 升级要点(以 V15.1.6 为例):
    • 安装许可证包:rpm -Uvh xlf-license.15.1.6-*.ppc64le.rpm
    • 运行 xlf_configure 接受许可并重新配置编译器
  • 说明:该流程针对 RHEL/CentOS/SLES 上的 XL Fortran,不适用于 x86_64 上的 GNU gfortran。

版本验证与注意事项

  • 验证命令
    • gfortran --version
    • gcc --version
    • 如使用 Intel/IBM 编译器,分别执行 ifx/ifort 或 xlf 的版本查询
  • 注意事项
    • 升级编译器可能影响依赖旧版 ABI/运行库的既有程序,建议先在测试环境验证,或使用容器/虚拟机隔离环境
    • 使用 SCL 时,新工具链仅在启用后生效;如需全局默认,请配置 /etc/profile.d/*.sh 脚本
    • 源码编译请合理设置安装前缀与库路径,避免与系统编译器冲突

0