【超算/先进计算学习】日报3

今日已完成任务列表


4-2、作业管理系统 slurm、调试器 GDB

遇到的问题及解决方案


任务完成详细笔记


作业管理系统 slurm

作业管理系统及常用用户命令

资源管理系统命令

  • 管理命令
    管理员操作和使用、管理节点以及管理员权限才能执行
  • 用户命令
    常用用户命令:

yhinfo / yhi:资源信息查询
yhalloc:资源申请 (强占)
yhrun:作业提交 (自动申请资源)
yhqueen / yhq:作业队列查询
yhcancel:作业取消
yhbatch:批处理作业 (输出被保存到 slurm-jobID.out 下)
yhacct:作业历史查询

节点状态查询/作业提交命令

  • 节点状态、资源信息查询 yhinfo / yhi

thcp1:分区名,之后使用 -p 命令指定
up:表明分区上线,可以使用
infinite:表明分区使用时间为无限长
266:处于某一状态的节点数量
STATE:节点状态

alloc:表示以及被分配的节点,已经被别人用了,现在不可用
resv:保留的节点,可能有问题或者其他,不可用
idle:空闲节点,表示可以使用的节点
down:节点被关机

NODELIST:处于该状态的节点编号

在这里插入图片描述

  • 作业提交
    yhrun -p [partitionName] -N [nodesNum] -n [totalProcs] -c [numThreadss] [binaryPath]

-p:指定分区
-N:指定程序使用的节点数
-n:指定程序使用的总进程数目,每个节点启动约 n/N 个进程,整除
-c:指定每个进程可使用的处理器个数,通常应该等于每进程派生的线程数
[binaryPath]:可执行文件名字,相对或绝对路径,后面可以继续带程序自身的运行时参数

  • 批处理作业
    yhbatch -p [partitionName] -N [nodesNum] [scriptPath]

scriptPath:shell 脚本文件,需要包含yhrun命令
【yhbatch 提交的作业终端关闭时不会受到影响,登录节点 down 时也不会受到影响】

作业队列查询/作业取消命令

  • 作业队列查询
    yhqueen / yhq [options]

-a:查询所有作业
-u :查询指定用户提交的作业
-n :查询指定名称的作业
-s :查询指定状态的作业
-p :查询指定分区的作业

在这里插入图片描述

JOBID:作业 ID 号,可以根据作业 ID 使用其他操作,如取消 yhcancel 等
PARTITION:分区名称
NAME:可执行文件名
USER:用户
ST:状态,R 表示 RUN,还有排队PD等
TIME:运行了多长时间
NODES:使用的几点数目
NODELIST:具体节点列表

  • 作业取消
    yhcancel [JOBID] / yhcancel name=[NAME]

当作业运行时间 (TIME) 远大于预期的运行时间时,可能是出现了问题,此时可以选择取消该作业

任务练习

对于一个可执行文件 saxpy.exe,通过 slurm 系统,编写 shell 脚本 yhrun.sh,通过 yhrun 命令把程序二进制文件提交到计算节点进行串行计算,使用 yhbatch 命令,提交 yhrun.sh 脚本,使程序在后台运行
yhrun.sh

#!/bin/bash
yhrun -c 1 -N 1 -n 1 ./saxpy.exe

执行命令

yhbatch -N 1 -p thcp1 ./yhrun.sh &

调试器 GDB

实时调试

在这里插入图片描述
在这里插入图片描述
如何进入调试环境运行程序

  • 源码编译阶段,需要添加调试选项 “-O0 -g”
    gcc -O0 -g -o exe file.c
  • 进入实时调试的方法
    1、先使用 gdb 命令进入 gdb 窗口,再使用 file 命令加载二进制文件:file exe [命令行参数]
    2、使用 gdb exe [命令行参数] 直接进入调试模式

l 展示代码
例如:展示第 10 行,l 10 会将其上下 5 行均展示
b [行号] 在指定行处打断点
r 运行程序
p [变量名称] 查看代码中指定变量的值
c 继续执行程序
q 退出程序
info break 查看所有断点信息
disable [断点编号] 禁用指定的断点
enable [断点编号] 恢复指定的断点
clear [断点编号] 删除指定断点
watch [变量名称] 跟踪指定变量

core 文件调试

  • core 文件
    core 文件 (core dump 文件),有问题的程序运行后,产生 “段错误” 时生成的具有堆栈信息的调试信息的文件
  • 生成 core 文件
    1、使用 ulimit -c 查看 core 开关,如果为 0 表示关闭,不会生成 core 文件
    2、使用 ulimit -c [filesize] 设置 core 文件大小,在最小设置为 4 之后才会生成 core 文件
    3、使用 ulimit -c unlimited 设置 core 文件大小为不限制 (常用)
  • core 文件的目录
    默认情况下一般 core 文件的生成目录为程序运行当前目录,用户无须自行修改

gdb -c:使用 core 文件记录的信息进入程序调试 (输入 I 可以显示更多崩溃点附近的代码)
Backstrace,简写 bt,查看崩溃/断点附近的程序调用栈信息
frame [n],简写 f [n],查看调用栈的 #n 层
down,显示程序调用的更深层
up,显示程序调用的外层主调 (函数)

对自己的表现是否满意


今天的学习内容较少,初次了解作业管理系统slurm,感觉这种远程计算的方式还是挺新鲜的,期待之后的学习内容 (≧∇≦)ノ

简述下次计划


下次想要进入对高性能传统优化技术的学习

其他反馈


每周只开放部分的学习阶段吗?

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼树C

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值