MPI(Message Passing Interface)是消息传递并行程序设计的标准之一,当前通用的是MPI1.1规范。需要安装OpenMPI或者是MPICH实现MPI标准。
调试MPI应用无需打开“OpenMP应用”参数。
参数 |
说明 |
---|---|
远程服务器配置 |
进行HPC并行应用调试的目标服务器。 |
Linux用户名 |
输入启动MPI应用的Linux用户名称。
说明:
root用户拥有最高权限,为了避免给系统带来不必要的风险,建议使用非root用户进行调试。 |
Linux用户密码 |
使用的Linux用户密码。 |
记住密码 |
勾选后可记住当前远程服务器Linux用户密码。 |
SSH端口 |
输入启动MPI应用的服务器SSH端口号。 |
应用程序 |
输入的MPI应用,支持动态检索并显示应用程序路径。
请给Linux用户添加当前MPI应用的可读权限以及应用所在目录的可读、可写和可执行权限。
说明:
|
应用程序参数(可选) |
传递给应用程序运行的参数,若存在多个参数需使用空格隔开。 请给Linux用户添加应用程序所在目录的可读、可写、可执行权限及应用程序所在目录父目录的可执行权限。 |
应用程序源码路径 |
源码和MPI应用存放的共享路径,支持动态检索并显示应用程序源码工作目录。
|
环境变量设置(可选) |
输入运行HPC并行应用所需要的环境变量,有以下3种方式可选择,可根据实际情况进行修改。
|
调试启动方式 |
调试启动方式可选:
说明:
mpirun命令运行方式使用mpirun运行命令,mpirun是一个重要的工具,用作启动MPI并行应用程序,并提供进程之间的通信和清理工作等功能。 多瑙调度器是华为全自研的HPC集群调度器,提供大规模集群下的高资源利用率、高吞吐量的作业调度能力。 Slurm是一个开源的、高度可定制的、可扩展的、高性能的作业调度系统,它能够很好地提供资源管理和任务调度功能,广泛用于高性能计算、集群计算领域,如物理、化学、生物学、天文学等领域。 |
MPI运行命令行 |
输入的mpirun命令以及对应的命令参数,rank数目为1~2048。 |
多瑙调度器运行命令行 |
输入的多瑙调度器命令以及对应的命令参数。 |
Slurm调度器运行命令行 |
输入的Slurm调度器命令以及对应的命令参数。 |
OpenMP应用(可选) |
勾选后,需要输入OpenMP线程数。 |
OpenMP线程数(可选) |
输入的OpenMP应用thread数量。 |
死锁检测(可选) |
勾选后,需要输入死锁超时时间。 |
死锁超时时间(s)(可选) |
死锁超时时间,默认为10秒,取值范围10~60。 |
操作 |
操作描述 |
---|---|
继续 |
点击执行到下一个断点 |
暂停 |
点击中断正在执行的程序 |
单步跳过 |
点击执行到下一行 |
单步调试 |
点击步入函数 |
单步跳出 |
点击步出函数 |
重启 |
点击后重新启动调试 |
停止 |
点击后停止调试 |
支持添加条件断点(表达式、命中次数),条件断点支持修改、启用、禁用和删除。表达式断点是指表达式成立时中断该程序,命中次数断点是指命中指定的次数时中断该程序(当大于等于设置的命中次数时,均可进入断点中)。
鼠标悬浮到菱形上,显示通信子组变化的详细信息。
若未单击按钮,调试过程中发生死锁,右下角弹框会提示检测到死锁,如图12所示,单击“查看详情”,跳转到死锁页面,查看通信组死锁的详细信息。
在RANK信息区域,单击按钮,开启后对通信子组的创建和清除进行采集,并在VS Code面板上显示变化概览。
在通信子组变化概览页面中,单击“通信子组创建”、“通信子组清除”或“通信子组创建并清除”,可以不查看对应相关信息。
死锁是指两个或多个进程各自在等待另一个进程释放资源,或两个或多个进程在循环链中等待资源的情况。在MPI应用中进行点对点通信时,MPI点对点函数顺序不当则会发生死锁的现象。
Fortran是目前国际上广泛流行的一种高级语言,适用于科学计算。Fortran也是一种编译型语言,源代码必须通过编译器以生成的可以运行的机器可执行文件。安装编译器GFortran参考链接:https://gcc.gnu.org/fortran/。
Fortran90程序是一种分块形式的程序,整个程序由若干个程序模块组成,各模块都有相似的语句组织形式,其中主程序起整体控制作用,各辅程序模块各自完成问题中的一个算法。Fortran95是对Fortran90的补充,两者差别不大,都可支持调试。
由于毕昇编译器和Fortran自身的语法特性,在调试毕昇编译器编译的Fortran应用时会出现进入到汇编且无法打断点和查看调试信息的情况。
调试MPI应用无需打开“OpenMP应用”参数。
Fortran文件扩展名为.f90,.f90是现代Fortran源文件的标准文件扩展名。 90指的是1990年的第一个现代Fortran标准。
参数 |
说明 |
---|---|
远程服务器配置 |
进行HPC并行应用调试的目标服务器。 |
Linux用户名 |
输入启动MPI应用的Linux用户名称。
说明:
root用户拥有最高权限,为了避免给系统带来不必要的风险,建议使用非root用户进行调试。 |
Linux用户密码 |
使用的Linux用户密码。 |
记住密码 |
勾选后可记住当前远程服务器Linux用户密码。 |
SSH端口 |
输入启动MPI应用的服务器SSH端口号。 |
应用程序 |
输入的MPI应用,支持动态检索并显示应用程序路径。
请给Linux用户添加当前MPI应用的可读权限以及应用所在目录的可读、可写和可执行权限。
说明:
|
应用程序参数(可选) |
传递给应用程序运行的参数,若存在多个参数需使用空格隔开。 请给Linux用户添加应用程序所在目录的可读、可写、可执行权限及应用程序所在目录父目录的可执行权限。 |
应用程序源码路径 |
源码和MPI应用存放的共享路径,支持动态检索并显示应用程序源码路径。
|
环境变量设置(可选) |
输入运行HPC并行应用所需要的环境变量,有以下3种方式可选,可根据实际情况进行修改。
|
调试启动方式 |
调试启动方式可选:
说明:
mpirun命令运行方式使用mpirun运行命令,mpirun是一个重要的工具,用作启动MPI并行应用程序,并提供进程之间的通信和清理工作等功能。 多瑙调度器是华为全自研的HPC集群调度器,提供大规模集群下的高资源利用率、高吞吐量的作业调度能力。 Slurm是一个开源的、高度可定制的、可扩展的、高性能的作业调度系统,它能够很好地提供资源管理和任务调度功能,广泛用于高性能计算、集群计算领域,如物理、化学、生物学、天文学等领域。 |
MPI运行命令行 |
输入的mpirun命令以及对应的命令参数,rank数目为1~2048。 |
多瑙调度器运行命令行 |
输入的多瑙调度器命令以及对应的命令参数。 |
Slurm调度器运行命令行 |
输入的Slurm调度器命令以及对应的命令参数。 |
OpenMP应用(可选) |
勾选后,需要输入OpenMP线程数。 |
OpenMP线程数(可选) |
输入的OpenMP应用thread数量。 |
死锁检测(可选) |
勾选后,需要输入死锁超时时间。 |
死锁超时时间(s)(可选) |
死锁超时时间,默认为10秒,取值范围10~60。 |
操作 |
操作描述 |
---|---|
继续 |
点击执行到下一个断点 |
暂停 |
点击中断正在执行的程序 |
单步跳过 |
点击执行到下一行 |
单步调试 |
点击步入函数 |
单步跳出 |
点击步出函数 |
重启 |
点击后重新启动调试 |
停止 |
点击后停止调试 |
支持添加条件断点(表达式、命中次数),条件断点支持修改、启用、禁用和删除。表达式断点是指表达式成立时中断该程序,命中次数断点是指命中指定的次数时中断该程序(当大于等于设置的命中次数时,均可进入断点中)。
鼠标悬浮到菱形上,显示通信子组变化的详细信息。
在RANK信息区域,单击按钮,点击后在界面下方展示通信子组的创建和清除信息。
在通信子组变化概览页面中,单击“通信子组创建”、“通信子组清除”或“通信子组创建并清除”,可以不查看对应相关信息。