- IP: 202.121.138.166
- 端口:8000
- 用户名:username
- 密码: password
ssh [email protected] -p 8000
scp -P 8000 localfilepath [email protected]:/nfsshare/home/username/...
可以使用软件传输:
- 查看集群状态
bhosts
- 查看队列
bqueues
- 查看节点运行情况
lsload
- 查看提交任务id及其状态
bjobs
- 查看运行中的任务的输出
bpeek <任务id>
- 终止任务
bkill <任务id>
- 提交任务
bsub <参数> <命令>
## for example
bsub -J hello python main.py
- 参数较复杂时,可以把参数和命令专门写在某个文件里,如
bsub < run.sh
run.sh
文件的具体内容如下
#/bin/bash
#BSUB -J hello
python main.py
参数 | 示例 | 含义 |
---|---|---|
-J NAME | -J hello | 指定任务名称为 hello |
-n 数字 | -n 1 | 指定1块CPU |
-e 文件路径 | -e /nfsshare/home/USER/log/hello_%J.err | 指定报错文件,其中%J代表任务ID |
-o 文件路径 | -o /nfsshare/home/USER/log/hello_%J.out | 指定输出文件,其中%J代表任务ID |
-q 队列名称 | -q gauss | 指定任务队列为GPU队列 |
-gpu | -gpu "num=x:mode=exclusive_process" | 指定使用x个gpu,并选择使用模式 |
- 队列部分,使用CPU填写cauchy,使用GPU填写gauss
- 大部分情况下选择num=1, 如果有并行化gpu运行代码可以选取使用多个gpu
下面给出一个run.sh的具体示例
#/bin/bash
#BSUB -J NAME
#BSUB -e /nfsshare/home/USER/log/NAME_%J.err
#BSUB -o /nfsshare/home/USER/log/NAME_%J.out
#BSUB -n 1
#BSUB -q gauss
#BSUB -gpu "num=1:mode=exclusive_process"
python main.py
大部分人最常跑的还是python代码,这里我总结一下集群上的python使用技巧。
建议自己配置属于自己的环境,大家的需求非常多样,集群上的python版本极有可能不满足大家的要求,建议自己配置自己的python环境,这里给出自定义python环境的参考,安装anaconda 教程请点击,其中需要注意的是,文件大概率无法使用命令直接下载,可以先下载到本地再使用 Terminus或scp上传
# 创建虚拟环境
conda create --name env python=3.7
# 激活虚拟环境
conda activate env
# 安装torch相关包
conda install pytorch==1.5.1 torchvision==0.6.1 cudatoolkit=10.1 -c pytorch -y
# 提交测试脚本,见run.sh, test_gpu.py, 注意需要在虚拟环境下提交任务
bsub < run.sh
有时候我们会碰到无法使用conda安装,只有pip安装的一些包,比如garage
, 可以在pip后面加上--user参数
pip install --user garage
集群的环境配置还是较为基础的,如果有一些个人定制话的软件需求,可以先参考 linux非root用户怎么装软件
如果仍然无法成功需要root权限,请在issue中提出。