HPC调试器功能介绍
高性能计算(High-Performance Computing)是指利用大规模、高速、并行处理的计算机系统来解决复杂的科学、工程和商业问题的计算方法和技术。高性能计算的目标是通过利用大量的计算资源和并行处理能力,以高效、快速、准确的方式进行计算,从而加快问题的求解速度和提高计算的精度。
HPC详细内容请参见《Kunpeng HPC Solution 解决方法描述》。
HPC调试器提供HPC场景多节点并行调试能力,支持以Launch、Attach模式调试MPI、MPI+OpenMP应用。
前提条件
命令功能
支持对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] |
参数说明
参数 |
参数选项 |
参数说明 |
|---|---|---|
-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。
|
-e/--env |
- |
可选参数,设置环境变量,设置时需使用英文双引号引起来。有以下3种方式可选,可根据实际情况进行修改。
例如:“export PATH=$PATH:/path/to/mpi” |
-a/--args |
- |
可选参数,设置待调试程序运行参数,若存在多个参数需使用空格隔开。 |
-n/--threads |
- |
可选参数,输入的OpenMP应用thread数量,取值范围1~1024。 |
参数 |
参数选项 |
参数说明 |
|---|---|---|
-h/--help |
- |
可选参数,获取帮助信息。 |
-w/--workload |
- |
必选参数,待调试程序可执行文件路径。 例如:/home/test/mpi_demo |
-s/--source |
- |
必选参数,待调试程序源码文件目录。 例如:/home/test |
-r/--run-mode |
- |
必选参数,指定程序的运行方式,仅支持Slurm调度器运行方式。
|
-j/--job |
- |
必选参数,指定job ID。 |
-p/--port |
- |
必选参数,Agent Server运行端口号,设置后用于上报启动信息。 |
-l/--log-level |
0/1/2/3 |
可选参数,设置日志级别,默认为1。
|
-e/--env |
- |
可选参数,设置环境变量,设置时需使用英文双引号引起来。有以下3种方式可选,可根据实际情况进行修改。
例如:“export PATH=$PATH:/path/to/mpi” |
安装证书
若使用debugger工具,需先安装工具后再安装证书,安装证书是保证节点之间的通信安全,安装完成后即可使用。这里以RPM包安装方式为例:
- 安装RPM包。
1rpm -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
- 验证是否安装成功。
1rpm -qa | grep devkit
若回显中有已安装包名则安装成功。
1 2
devkit-debugger-x.x.x-1.aarch64 devkit-x.x.x-1.aarch64
- 使自动补全命令生效。重新登录终端或在终端执行以下命令。
1source /etc/bash_completion.d/devkit.sh
- 安装证书。
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命令行工具路径。
- 配置需要通信的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”文件夹。
- 查看rpc_cert目录结构。
1ll 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
使用示例
- 编译mpi_demo.c。
1 2
cd /home/test/ mpicc -g -o mpi_demo mpi_demo.c
编译后会生成mpi_demo可执行文件。
- 以“/home/test/mpi_demo”文件为例进行HPC程序调试。