---
title: HPC调试器功能介绍
description: "高性能计算（High-Performance Computing）是指利用大规模、高速、并行处理的计算机系统来解决复杂的科学、工程和商业问题的计算方法和技术。高性能计算的目标是通过利用大量的计算资源和并行处理能力，以高效、快速、准确的方式进行计算，从而加快问题的求解速度和提高计算的精度。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/debugging/debugger/KunpengDevKitCli_0121.html
sourcePath: /source/zh/kunpengdevps/debugging/debugger/KunpengDevKitCli_0121.html
indexId: 2de83a2dbdb00496c27ba3198ea55dd4b06c7a915676c6fdde6d2cc2cd95087a69
---
# HPC调试器功能介绍

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

HPC详细内容请参见《Kunpeng HPC Solution 解决方案描述(https://support.huawei.com/enterprise/zh/doc/EDOC1100454741/8484b898?idPath=23710424|251364417|251364851|252309137|262039693)》。

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模式：

```
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模式：

```
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 2: xx.xx.xx.xx 3: xx.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调试器交互界面，相关调试操作可参见调试状态命令、调试动作命令。
