Server运行中有用的命令
Published:
都是泪…
前置操作
面对一个新设备时,提前进行一些设定可以避免踩坑。
- 把
-rm
定义为-rm -i
,确保删除文件前会询问 - git备份,确保误删了也能找回来
- 为不同compute node安排不同Gurobi license。可以把licenses都放在同一个文件夹(如Gurobi_licenses)下,分别保存为gurobi_node1.lic和gurobi_node2.lic
SLURM 命令
SLURM可以帮助我们自动进行任务的资源分配。
- 查看CPU占用情况:
sinfo -N -o "%N %C %c"
输出说明:%N
:节点名称(例如 gpu114, gpu115)%C
:CPU 分配状态,格式为 A/I/O/T(已分配/空闲/其他/总计核心数)%c
:每个节点的总 CPU 核心数
- SLURM shell script
#!/bin/bash #SBATCH --job-name=resourse-alloc-outside-box # Name for your job #SBATCH --ntasks=1 # Number of tasks #SBATCH --cpus-per-task=30 # 线程数 #SBATCH --nodes=1 # Request 1 compute node #SBATCH --time=2-00:00:00 # Request 2 days runtime (D-HH:MM:SS) #SBATCH --output=debug/%j_output.log # Save output to a log file #SBATCH --error=debug/%j_error.log
- sbatch会把任务分配到空闲的节点。(除非申请WLS)需要为不同compute node安排不同Gurobi license,
# 根据节点名称设置 GRB_LICENSE_FILE
echo $SLURM_NODELIST
if [ "$SLURM_NODELIST" == "gpu114" ]; then
export GRB_LICENSE_FILE=/xxx/gurobi_node1.lic
elif [ "$SLURM_NODELIST" == "gpu115" ]; then
export GRB_LICENSE_FILE=/xxx/gurobi_node2.lic
fi