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

HPC调试器功能介绍

高性能计算(High-Performance Computing)是指利用大规模、高速、并行处理的计算机系统来解决复杂的科学、工程和商业问题的计算方法和技术。高性能计算的目标是通过利用大量的计算资源和并行处理能力,以高效、快速、准确的方式进行计算,从而加快问题的求解速度和提高计算的精度。

HPC详细内容请参见《Kunpeng HPC Solution 解决方法描述》。

HPC调试器提供HPC场景多节点并行调试能力,支持以Launch、Attach模式调试MPI、MPI+OpenMP应用。

前提条件

  • 已参照安装工具安装HPC调试器。
  • 使用压缩包安装工具时,请解压后切换至工具目录使用,采用./方式执行命令,例如./devkit debugger -h。使用RPM包安装工具时,可直接执行命令,例如devkit debugger -h。本章示例均为RPM包安装使用。
  • 已安装调试HPC程序需要的证书,详细内容可参见安装证书

命令功能

支持对MPI及MPI+OpenMP程序进行Launch调试,仅支持mpirun命令运行方式。

支持对MPI及MPI+OpenMP程序进行Attach调试,仅支持Slurm调度器的srun运行方式。

Launch调试通过调试器直接启动并管理程序全生命周期,一般用于本地开发中的全周期调试;而Attach调试则是将调试器实时附加到已运行进程,适用于无法直接启动或需动态介入的调试场景。

支持的编程语言包括C、C++和Fortran。

命令格式

Launch模式:

1
debugger launch [-h | --help] {-w APP_WORKLOAD | --workload APP_WORKLOAD} {-s SOURCE_PATH | --source SOURCE_PATH} {-m MPIRUN_CMD | --mpicmd MPIRUN_CMD} {-p RPC_SERVER_PORT | --port RPC_SERVER_PORT} [-l {0,1,2,3} | --log-level {0,1,2,3}] [-e ENVIRONMENT_VARIABLES | --env ENVIRONMENT_VARIABLES] [-a APP_ARGS | --args APP_ARGS] [-n THREAD_NUM | --threads THREAD_NUM]

Attach模式:

1
debugger attach [-h | --help] {-w APP_WORKLOAD | --workload APP_WORKLOAD} {-s SOURCE_PATH | --source SOURCE_PATH}{-r RUN_MODE | --run-mode RUN_MODE}{-j JOB_ID | --job JOB_ID} {-p RPC_SERVER_PORT | --port RPC_SERVER_PORT} [-l {0,1,2,3} | --log-level {0,1,2,3}] [-e ENVIRONMENT_VARIABLES | --env ENVIRONMENT_VARIABLES]

参数说明

表1 Launch模式参数说明

参数

参数选项

参数说明

-h/--help

-

可选参数,获取帮助信息。

-w/--workload

-

必选参数,待调试程序可执行文件路径。

例如:/home/test/mpi_demo

-s/--source

-

必选参数,待调试程序源码文件目录。

例如:/home/test

-m/--mpicmd

-

必选参数,需执行的mpirun命令,需使用英文双引号引起来。

例如:“mpirun --allow-run-as-root -np 4”

-p/--port

-

必选参数,Agent Server运行端口号,设置后用于上报启动信息。

-l/--log-level

0/1/2/3

可选参数,设置日志级别,默认为1。

  • 0:日志级别为DEBUG。
  • 1:日志级别为INFO。
  • 2:日志级别为WARNING。
  • 3:日志级别为ERROR。

-e/--env

-

可选参数,设置环境变量,设置时需使用英文双引号引起来。有以下3种方式可选,可根据实际情况进行修改。

  • export PATH=$PATH:/path/to/mpi
  • source /configure/mpi/path/file
  • module load /mpi/modulefiles

例如:“export PATH=$PATH:/path/to/mpi”

-a/--args

-

可选参数,设置待调试程序运行参数,若存在多个参数需使用空格隔开。

-n/--threads

-

可选参数,输入的OpenMP应用thread数量,取值范围1~1024。

表2 Attach模式参数说明

参数

参数选项

参数说明

-h/--help

-

可选参数,获取帮助信息。

-w/--workload

-

必选参数,待调试程序可执行文件路径。

例如:/home/test/mpi_demo

-s/--source

-

必选参数,待调试程序源码文件目录。

例如:/home/test

-r/--run-mode

-

必选参数,指定程序的运行方式,仅支持Slurm调度器运行方式。

  • slurm

-j/--job

-

必选参数,指定job ID。

-p/--port

-

必选参数,Agent Server运行端口号,设置后用于上报启动信息。

-l/--log-level

0/1/2/3

可选参数,设置日志级别,默认为1。

  • 0:日志级别为DEBUG。
  • 1:日志级别为INFO。
  • 2:日志级别为WARNING。
  • 3:日志级别为ERROR。

-e/--env

-

可选参数,设置环境变量,设置时需使用英文双引号引起来。有以下3种方式可选,可根据实际情况进行修改。

  • export PATH=$PATH:/path/to/mpi
  • source /configure/mpi/path/file
  • module load /mpi/modulefiles

例如:“export PATH=$PATH:/path/to/mpi”

安装证书

若使用debugger工具,需先安装工具后再安装证书,安装证书是保证节点之间的通信安全,安装完成后即可使用。这里以RPM包安装方式为例:

  1. 安装RPM包。
    1
    rpm -ivh devkit-x.x.x-1.aarch64.rpm devkit-debugger-x.x.x-1.aarch64.rpm 
    

    返回信息如下:

    1
    2
    3
    4
    5
    6
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:devkit-x.x.x-1                  ################################# [ 50%]
    devkit installed
       2:devkit-debugger-x.x.x-1         ################################# [100%]
    devkit-debugger installed
    
  2. 验证是否安装成功。
    1
    rpm -qa | grep devkit
    

    若回显中有已安装包名则安装成功。

    1
    2
    devkit-debugger-x.x.x-1.aarch64
    devkit-x.x.x-1.aarch64
    
  3. 使自动补全命令生效。
    重新登录终端或在终端执行以下命令。
    1
    source /etc/bash_completion.d/devkit.sh
    
  4. 安装证书。
    1
    2
    cd /usr/local/devkit/debugger/
    ./install_rpc_cert
    
    • “/usr/local/”为工具默认安装路径。
    • 若以TAR包方式安装工具,install_rpc_cert可执行文件在“/Path_to_Devkit_CLI/debugger/”路径下。“/Path_to_Devkit_CLI/”是DevKit命令行工具路径。
  5. 配置需要通信的IP地址。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    === IP Selection ===
    
    Available IP addresses:
    1: xx.xx.xx.xx
    2xx.xx.xx.xx
    3xx.xx.xx.xx
    
    Select IP [default 1]: 
    
    Selected IP: xx.xx.xx.xx
    The agent rpc certificate generated successfully.
    

    在配置IP地址时,从回显的Available IP addresses中进行选择,若不选择直接回车,默认选择第一个IP地址。

    安装后会在当前目录下生成“rpc_cert”文件夹。

  6. 查看rpc_cert目录结构。
    1
    ll rpc_cert
    

    目录结构如下:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    rpc_cert/
    ├── client.key             #客户端密钥(加密)
    ├── client_passwd          #客户端密钥解密的密码
       ├── common
       └── zeus
    ├── debugger_ca.pem       #根证书    
    ├── debugger_client.pem     #客户端证书
    ├── debugger_server.pem    #服务端证书
    ├── server.key             
    └── server_passwd
        ├── common
        └── zeus
    

使用示例

  1. 编译mpi_demo.c。
    1
    2
    cd /home/test/
    mpicc -g -o mpi_demo mpi_demo.c
    

    编译后会生成mpi_demo可执行文件。

  2. “/home/test/mpi_demo”文件为例进行HPC程序调试。
    • Launch模式启动程序:
      1
      devkit debugger launch -w /home/test/mpi_demo -s /home/test/ -m "mpirun --allow-run-as-root -np 4" -p 9982
      
    • Attach模式启动程序:
      devkit debugger attach -w /home/test/mpi_demo -s /home/test/ -r slurm -j <job ID> -p 9982

    程序启动后,进入到HPC调试器交互界面,相关调试操作可参见调试状态命令调试动作命令