使用示例
工具可同多瑙调度器一起使用,详情请见HPC命令行工具协同多瑙调度器使用。
hpccollector使用示例
使用hpccollector工具下发任务分为单任务、多任务和指定任务三种模式,每次运行分为:环境检查、参数检查,任务运行,打包汇报结果,结束任务等阶段。
- 单任务下发模式
单任务模式通过命令行参数指定单个任务的详细参数,任务运行结束,会在安装目录(INSTALL_PATH)生成当前命令的taskfile,方便修改复杂参数。
单任务下发模式下,提供三种任务类型的示例请参见表1,均假设:安装路径为INSTALL_PATH,shared folder路径为/mysharedir,集群mpirun路径为/hpc/mpirun。 - 多任务下发模式
基于单任务模式中的三种任务,增加一键下发多任务方式;在taskfile中定义任务运行的必须参数,使用-tf参数运行任务。定义的多任务将串行方式运行,多个任务结果将在report阶段汇总输出,并将成功的任务压缩为一个压缩包放在package路径下,并汇报路径。
使用命令:INSTALL_PATH/hpccollector -tf /INSTALL_PATH/task_file.txt
如使用工具模板中的模板,此时系统将依次下发采集系统、统计、精细化分析任务各一个。
- 指定任务下发模式
基于task_file定义的任务及任务参数,使用-tf参数同时也可指定task_file中单个任务下发;每个任务会以"# Task 1"类型的编号作为任务唯一标识。
指定任务时,需要在task_file文件后以“:”作为指定任务的符号,后面加任务id,id为指定任务的标识"# Task 1"中的1;以“# Task 1”为例,使用命令:INSTALL_PATH/hpccollector -tf /INSTALL_PATH/task_file.txt:1;任务将下发task_file中“# Task 1”任务。
- 任务的停止和取消
表2 命令的中断形式和效果 形式
效果
中断正在采集的任务进入分析阶段
将会提前结束采集态的任务,并且基于现有采集到的数据进行数据分析,在任务处于采集阶段时按下Ctrl+Z组合键即可;若在分析阶段时按下此组合键,将不做任何响应,继续原有的分析操作。
取消正在运行的任务
在任务结束前按下Ctrl+C组合键会丢弃当前的任务,不管任务处于采集还是分析阶段,任务都将被丢弃。
Ctrl+Z按下后,终端会显示出类似下面的输出:
[1]+ Stopped ./hpccollector -tf /home/commline_tool/taskfile/lammps.txt
hpcmanager使用示例
hpcmanager为工具程序,可在sever端管理各个节点的任务,对任务执行查询、取消和停止操作,工具参数如表3所示。
- 查询任务
使用命令INSTALL_PATH/hpcmanager -q,查询结果如下:
+--+----------+------------------+---------------+-------------------+-------------------+----------+--------+ |id|task_type |application |application_arg|start_time |end_time |duration_s|status | +--+----------+------------------+---------------+-------------------+-------------------+----------+--------+ |1 |system |- |- |2023-05-17 11:01:36|- |300 |Canceled| +--+----------+------------------+---------------+-------------------+-------------------+----------+--------+ |2 |system |- |- |2023-05-17 11:01:44|2023-05-17 11:01:53|300 |Success | +--+----------+------------------+---------------+-------------------+-------------------+----------+--------+ |3 |system |- |- |2023-05-17 11:02:11|2023-05-17 11:02:52|300 |Success | +--+----------+------------------+---------------+-------------------+-------------------+----------+--------+ Enter 'id' to query the task details. Use 'q' to exit:
界面显示所有任务的简单信息,且提供用户交互,输入任务“id”可查询任务详细信息;详细信息查询结果如下:
[Hyper Tuner MPI 23.0.0] [task_file_pattern] task_type = statistics mpirun_command = /opt/FENG/hmpi/bin/mpirun mpirun_arg = --allow-run-as-root -H 1.2.3.4:4 application = /opt/testdemo/ring application_arg = mpi_only = 0 sys_sampling = 0 subtask_time = 1 profile_level = summary critical_path = 0 duration_s = 300 delay_s = 0 unlimited = 0 [run_time_info] start_time = 2023-05-17 16:09:32 end_time = 2023-05-17 16:09:37 status = Success package_path = /home/Hyper-Tuner_linux_HPC-Tools/package/mpitask_20230517-160937.tar report_command = runtime_taskfile = /home/Hyper-Tuner_linux_HPC-Tools/task_file.txt
- 取消任务
取消任务即取消正在运行的任务,不管任务处于采集还是分析阶段,任务都将被丢弃。
因命令行任务仅支持同时只有一个任务在运行,即使用-c参数取消当前正在执行的任务;使用命令如下:INSTALL_PATH/hpcmanager -c
当前没有正在运行的任务时则提示:“No task is running.”
任务取消成功后提示:“The task has been canceled.”
- 停止任务
停止任务即中断正在采集的任务进入分析阶段,该操作会提前结束采集态的任务,并且基于现有的采集数据进行数据分析,在任务处于采集阶段时使用-a参数;使用命令如下:INSTALL_PATH/hpcmanager -a
当前没有正在运行的任务时则提示:“No task is running.”
任务停止并分析成功后提示:“Task 1 Finished.”
check_latency_bandwidth使用示例
使用check_latency_bandwidth工具需先配置cmd-file文件,cmd-file文件详细参数配置如表3所示。
以下示例的执行时间均为24小时,超过此执行时长将抛出异常。
- 使用stream benchmark时(type参数选择stream),cmd-file文件内容:
type stream min-core 2 max-core 129 stream-input /home/stream5.10/stream_c.exe
- 使用osu benchmark时(type参数选择osu),cmd-file文件内容:
type osu osu-bw /home/osu/osu-micro-benchmarks-7.0.1/c/mpi/pt2pt/osu_bw point-osu-np 2 point-osu-n 1 point-host xx.xx.xx.xx,xx.xx.xx.xx mpi-path /home/openmpi-4.1.4-install/bin/mpirun osu-latency /home/Kosu/osu-micro-benchmarks-7.0.1/c/mpi/pt2pt/osu_latency osu-alltoall /home/osu/osu-micro-benchmarks-7.0.1/c/mpi/collective/osu_alltoall cluster-osu-np 2 cluster-osu-n 1 cluster-hostfile /home/hostfile osu-bcast /home/osu/osu-micro-benchmarks-7.0.1/c/mpi/collective/osu_bcast osu-bcast-other-settings "xxxxxxxxxxx"
- 使用stream benchmark和osu benchmark时(type参数选择all),cmd-file文件内容:
type all min-core 2 max-core 129 stream-input /home/stream5.10/stream_c.exe type osu osu-bw /home/osu/osu-micro-benchmarks-7.0.1/c/mpi/pt2pt/osu_bw point-osu-np 2 point-osu-n 1 point-host xx.xx.xx.xx,xx.xx.xx.xx mpi-path /home/openmpi-4.1.4-install/bin/mpirun osu-latency /home/Kosu/osu-micro-benchmarks-7.0.1/c/mpi/pt2pt/osu_latency osu-alltoall /home/osu/osu-micro-benchmarks-7.0.1/c/mpi/collective/osu_alltoall cluster-osu-np 2 cluster-osu-n 1 cluster-hostfile /home/hostfile osu-bcast /home/osu/osu-micro-benchmarks-7.0.1/c/mpi/collective/osu_bcast osu-bcast-other-settings "xxxxxxxxxxx"
执行工具采集,使用./check_latency_bandwidth --cmd-file /home/cmd_file.txt --log /home/命令,其中--log参数不设置时默认为工具所在路径。采集结果如图1和图3所示。
参数 |
参数说明 |
---|---|
type |
配置需采集的类型;必选项,可选all,osu,stream。 |
min-core |
stream benchmark拉起用例的最小的核数。 |
max-core |
stream benchmark拉起用例的最终的核数。 |
stream-input |
stream benchmark用例的路径。 |
mpi-path |
mpirun的路径。 |
osu-bw |
点对点通信带宽测试的用例路径。 |
osu-latency |
点对点通信延时测试的用例路径。 |
osu-alltoall |
集群通信带宽测试的用例路径。 |
osu-bcast |
集群通信延时测试的用例路径。 |
point-osu-np |
点对点通信mpirun的-np参数。 |
point-osu-n |
点对点通信mpirun的-N参数。 |
cluster-osu-np |
集群通信mpirun的-np参数。 |
cluster-osu-n |
集群通信mpirun的-N参数。 |
point-hostfile |
点对点通信hostfile文件路径。 |
cluster-hostfile |
集群通信hostfile文件路径。 |
point-host |
点对点通信中host参数,多个host请用','分隔。 |
cluster-host |
集群通信中host参数,多个host请用','分隔。 |
osu-bcast-other-settings |
osu_bcast用例添加的额外配置,将会直接被添加到命令行中, 请放到双引号里面。 |
osu-bw-other-settings |
osu_bw用例添加的额外配置,将会直接被添加到命令行中, 请放到双引号里面。 |
osu-latency-other-settings |
osu_latency用例添加的额外配置,将会直接被添加到命令行中, 请放到双引号里面。 |
osu-alltoall-other-setting |
osu_alltoall用例添加的额外配置,将会直接被添加到命令行中, 请放到双引号里面。 |
hpcdld使用示例
hpcdld工具为查询死锁检查工具,便于查找节点是否存在阻塞的情况,工具参数说明如表7所示。
- 环境变量中python版本须为python3。
- 推荐使用8.3.1-11.oe1版本的gdb,高版本可能出现不兼容问题。
- --host指定的node列表的第一个节点IP地址须和-i/--master-ip参数指定的IP地址一致,且-i/--master-ip须为本机IP地址。
- 运行任务
多节点运行示例:./hpcdld -mp /home/installed/OPENMPI/bin/mpirun -sf /home/nfs_share_folder_xs --host xx.xx.xx.01:2,xx.xx.xx.02:2 -i xx.xx.xx.01 /home/nfs_share_folder_xs/matrix_multiply_deadlock_ompi
------------- Deadlock Detected! ------------- ranks 0-1,3: /home/PerfToolsResearch-hpctool_1_18_0_rc1/hpctool/lib64/python/utest/data/testapps/mpi/matrix_multiply_deadlock.cpp:191 ranks 2: /home/PerfToolsResearch-hpctool_1_18_0_rc1/hpctool/lib64/python/utest/data/testapps/mpi/matrix_multiply_deadlock.cpp:192 ---------------------------------------------- hpctool <all> :
当前为交互模式,等待用户选择rank编号,以下为查看rank 2的详细信息。
hpctool <all> : select 2 hpctool <2> : bt hpctool <2> (gdb) #0 0x0000fffff617a198 in nanosleep () from /lib64/libc.so.6 hpctool <2> #1 0x0000fffff61a2b98 in usleep () from /lib64/libc.so.6 hpctool <2> #2 0x0000fffff65ef794 in ompi_mpi_finalize () hpctool <2> from /opt/soft/openmpi/lib/libmpi.so.40 hpctool <2> #3 0x0000fffff671b314 in MPI_Finalize () hpctool <2> from /home/deadlock_tool/Hyper-Tuner_linux_HPC-Tools/malluma/../malluma_lib/lib64/libmpicollector_ompi.so hpctool <2> #4 0x0000000000401090 in main (argc=1, argv=0xffffffffe208) hpctool <2> at /home/PerfToolsResearch-hpctool_1_18_0_rc1/hpctool/lib64/python/utest/data/testapps/mpi/matrix_multiply_deadlock.cpp:192
输入“select 2” ,hpctool后的“<>”内的数字变为2,表示当前为rank 2,再次输入bt(意为backtrace)回车,即看到rank 2的栈信息。