鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

使用HPCRunner一键安装CDO

前置条件

待安装CDO应用的节点已挂载配置YUM源。

YUM源挂载配置建议使用全量的ISO Everything包。

安装步骤

  1. 使用PuTTY工具,以root用户登录待安装CDO应用的节点。
  2. 安装基础依赖包。执行如下命令:

    yum -y install git time zlib zlib-devel gcc gcc-c++ environment-modules python python3 python3-devel python3-libs python3-pip cmake make numactl numactl-devel numactl-libs rpmdevtools wget libtirpc libtirpc-devel unzip flex tar patch glibc-devel rpcbind csh perl-XML-LibXML xorg-x11-xauth curl curl-devel libcurl-devel libxml2-devel

  3. 克隆仓库。如已通过手动下载了贾维斯智能助手(HPCRunner),则忽略该步骤,否则执行如下命令:

    git clone https://gitee.com/openeuler/hpcrunner.git

    回显结果包含如下示例内容,表示HPCRunner克隆成功:

    ...
    Cloning into 'hpcrunner'...
    remote: Enumerating objects: 13018, done.
    remote: Counting objects: 100% (171/171), done.
    remote: Compressing objects: 100% (142/142), done.
    remote: Total 13018 (delta 89), reused 57 (delta 23), pack-reused 12847 (from 1)
    Receiving objects: 100% (13018/13018), 72.71 MiB | 2.57 MiB/s, done.
    Resolving deltas: 100% (6150/6150), done.
  4. 初始化HPCRunner。执行如下命令:

    cd hpcrunner

    source init.sh

    hpcrunner表示HPCRunner安装目录,可根据实际情况调整。

  5. 选择配置文件,执行如下命令:

    ./jarvis -use templates/cdo/1.9.8/cdo.arm.hpckit25.2.0.config

    回显结果包含如下示例内容,表示配置文件选择成功:

    ...
    Switch config file to templates/cdo/1.9.8/cdo.arm.hpckit25.2.0.config
    Successfully switched. config file saved in file .meta
  6. 下载CDO应用源码,执行如下命令:

    ./jarvis -d

    如已提前手动下载CDO应用且已放置到HPCRunner的downloads目录,则示例结果回显如下:

    ...
    FILE cdo-1.9.8.tar.gz already DOWNLOADED
    否则,示例结果回显如下:

    否则,示例结果回显如下:

    ...
    Saving to: ‘/home/hpcrunner/downloads/cdo-1.9.8.tar.gz’
    /home/hpcrun 100%[============================================================>]  10.29M   568KB/s    in 19s
    2025-10-13 15:26:44 (546 KB/s) - ‘/home/hpcrunner/downloads/cdo-1.9.8.tar.gz’ saved [10793380/10793380]
  7. 一键配置依赖环境。执行如下命令:

    ./jarvis -dp

    回显结果包含如下示例内容,表示一键配置依赖环境成功:

    ...
    SUCCESSFULLY EXECUTED AT 2025-10-13 08:51:01, CONGRATULATIONS!!!
  8. 一键进行编译。执行如下命令:

    ./jarvis -b

    回显结果包含如下示例内容,表示一键编译成功:

    ...
    SUCCESSFULLY EXECUTED AT 2025-10-13 08:51:31, CONGRATULATIONS!!!
  9. 一键进行安装测试,执行如下命令:

    ./jarvis -r

    回显结果包含如下示例内容,表示安装测试成功:

    ...
    Climate Data Operators version 1.9.8 (https://mpimet.mpg.de/cdo)
    System: aarch64-unknown-linux-gnu
    CXX Compiler: mpicxx -g -O2 -fopenmp
    CXX version : unknown
    C Compiler: mpicc -g -O2 -fopenmp
    C version : unknown
    F77 Compiler: mpif90 -g
    F77 version : unknown
    Features: 502GB 160threads C++17 Fortran DATA PTHREADS OpenMP HDF5 NC4/HDF5
    Libraries: HDF5/1.13.0
    Filetypes: srv ext ieg grb1 grb2 nc1 nc2 nc4 nc4c nc5
    CDI library version : 1.9.8
    cgrbex library version : 1.9.4
    ecCodes library version : 1.21.0
    NetCDF library version : 4.9.3 of Oct 13 2025 08:44:55 $
    hdf5 library version : 1.13.0
    exse library version : 1.4.1
    FILE library version : 1.8.3
    total time used: 2s
    SUCCESSFULLY EXECUTED AT 2025-10-13 09:02:49, CONGRATULATIONS!!!

运行和验证

通过验证源码自带的单元测试用例,确保核心功能模块的正确性和软件安装的完整性。以下是具体的测试步骤:

  1. 使用PuTTY工具,以root用户登录已安装CDO应用的节点。
  2. 加载环境变量。执行如下命令:

    cd ${JARVIS_ROOT}

    source init.sh

    source env.sh

    ${JARVIS_ROOT} 表示HPCRunner所在目录

  3. 执行如下命令,切换到CDO源码单元测试用例目录。

    cd ${JARVIS_ROOT}/software/apps/cdo-1.9.8/test

  4. 编写集成测试脚本。
    1. 打开文件“test_all.sh”

      vi test_all.sh

    2. 按“i”进入编辑模式,填充如下信息。
      #!/bin/bash
       
      echo 3 > /proc/sys/vm/drop_caches
      rm -f test.log error.log result.log
      touch test.log error.log result.log
      for i in *.test; do
          echo "Testing ${i}..." 2>&1 | tee -a test.log
          ./${i} > content.log 2>&1
          ret=$?
          cat content.log >> test.log
          if [ "$ret" -ne 0 ] || grep -q "not ok" content.log || grep -q "command not found" content.log || grep -q "error while loading" content.log; then
              echo "ERROR: TEST ${i} FAILED." 2>&1 | tee -a error.log
              cat content.log >> error.log
          else
              echo "TEST ${i} PASSED." 2>&1 | tee -a result.log
          fi
      done
      rm -rf content.log
    3. 修改完成后,按“Esc”,输入:wq!,按“Enter”保存并退出文件编辑。
  5. 执行集成测试脚本。执行如下命令:

    bash test_all.sh

    如遇“ERROR: TEST tsformat.test FAILED.”错误,可参见《故障排除》相关章节。

  6. 验证通过说明。
    1. 集成测试脚本的回显结果应类似以下示例:
      Testing Afterburner.test..
      TEST Afterburner.test PASSED.
      Testing Arithc.test..
      TEST Arithc.test PASSED. 
      Testing Arith.test..
      TEST Arith.test PASSED. 
      Testing Cat.test..
      TEST Cat.test PASSED.
      ...
    2. 生成的test.log和result.log文件应包含内容,而error.log文件应为空。
    3. result.log文件应包含60行,每行均为“TEST XXX.test PASSED.”样式。