首先在自己的电脑上 下载安装Mobaxterm软件,具体步骤参考博客《MobaXterm下载与安装》https://blog.csdn.net/weixin_45523107/article/details/119150865。
安装完成后桌面多了一个Mobaxterm的快捷方式,如图1所示。
本文以Windows系统为例,进行集群的使用介绍。
Step1.双击打开Mobaxterm软件,依次点击左上角的 Session->SSH->Remote host输入集群IP地址10.8.51.15、Specify username输入申请账号(比如我的账号是:y192314)->点击OK即可。
登录系统后界面如图所示。
2.3 配置软件环境
2.3.1 安装 Conda
Step1. 下载 Miniconda,输入以下命令下载最新的 Miniconda 安装包
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh ll
下载过程以及下载完成后,如图 2-3-1 所示。
Step2. 安装 Miniconda,安装 Miniconda 到自定义的目录中,需要注意的是这个目录在安装前不能存在。输入以下命令进行安装:
sh Miniconda3-latest-Linux-x86_64.sh -b -p ${HOME}/tools/miniconda3
安装过程如图 2-3-2 所示:
安装完成后可以在自定义安装目录下看到新增的 miniconda3 目录,如图 2-3-3 所示
ll
Setp3.将 miniconda 的环境变量写入~/.bashrc 文件中,从而能够使用 activate,或者conda install 这些命令。执行以下命令:
echo "export PATH=${HOME}/tools/miniconda3/bin:$PATH" >> ~/.bashrc
Step4. 执行~/.bashrc 文件,或者重新登录,让我们添加的 miniconda 的环境变量生效。执行以下命令:
source ~/.bashrc
Step5. 我们可以输入以下命令来我们的 miniconda 是否安装成功。
conda -V
如果上面语句返回了我们安装的 conda 版本,那么就表示我们的 miniconda 安装成功了。
2.4 配置 python 虚拟环境
本节主要讲解如何使用 miniconda 配置自己的虚拟环境。
2.4.1 修改镜像源
因为墙的存在,所以有时候我们配置环境,下载相关的包的时候会很慢,甚至超时。所以我们可以修改 conda 的镜像源。我们以添加清华镜像源为例。
Step1. 输入以下命令添加清华镜像
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2 conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge conda config --set show_channel_urls yes
添加完成后可以看到~/.condarc文中已经写入这些镜像源,如图 2-4-1 所示
cd /home/y192314/tools/miniconda3/#切换到自己的miniconda3目录 cat ~/.condarc
2.4.2 配置 conda 虚拟环境
(注:首先要明确自己代码需要的环境及版本号,我的DKT代码环境是pytorch1.2.0,CUDA10.0,python3.6.5)
此处笔者以自己的一份源码所需要的环境为例,配置一个 conda 的虚拟环境。
Step1. 创建一个名称为py365DKTPytorch的环境,使用的 python 版本为 3.6.5,如图所示。
conda create -n py365DKTPytorch python=3.6.5 conda env list#查看虚拟环境列表
删除下面图
Step2. 安装 pytorch1.2.0。我们上 pytorch 的官网https://pytorch.org/找到安装对应版本的pytorch 的命令行,然后将其复制到我们的命令行中进行安装。如图 2-4-3 所示。
此处特别提醒,以安装 pytorch1.2.0 为例,笔者在官网找到的命令是conda install pytorch1.2.0 torchvision0.4.0 cudatoolkit=10.0 -c pytorch
我们需要把该命令最后的-c pytorch 删除,因为这个参数指定了安装 pytorch
的源是 pytorch 的官网,会很慢。删掉后,会从我们设置的清华镜像下载 pytorch会快很多。
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0
source activate py365DKTPytorch#注意激活用source,不是conda conda install numpy#安装Readme.md要求需要的包 conda install torch conda install torchvision conda install tqdm pip install sklearn
2.5 上传代码
2.5.1 Windows 下
在 Windows 系统下使用文件传输工具mobaxterm上传代码,另外我们还可以使用 pycharm、vscode 使用远程调试功能,进行文件同步。笔者这里以 mobaxterm 为例,上传我需要运行的代码。
首先我们可以在 mobaxterm 窗口的左边看到当前所在的文件目录,点击 upload to current folder 按钮,在弹出的面板里选择要上传的zip格式的代码压缩包即可。如图所示。
图 2-5-2 是笔者在上传代码,并解压之后的代码目录。
cd /home/y192314/#切换目录 unzip DKT-DeepKnowledgeTracing-DKT-Pytorch-master.zip#解压文件 cd DKT-DeepKnowledgeTracing-DKT-Pytorch-master ll
2.6 作业调度
2.6.1 常用的 slurm 命令
2.6.1.1 sinfo 查看分区状态
我们可以通过 sinfo 命令来查看当前集群所有分区的状态,如图 2-6-1 所示,输出了当前集群不同分区的状态,表 2-6-1 给出了不同状态的描述。
sinfo
| STATE | 说明 |
|---|---|
| idle | 空闲 |
| mix | 节点的部分核心可用 |
| alloc | 占用 |
我分析:用第一个idle空闲的GPU,跑得快。
RGZN2 up infinite 3 idle gpu[05-07]
RGZN8 up infinite 14 idle cu[01-08,10-14,16]
2.6.1.2 编写脚本
首先我们编写我们的脚本,然后使用 sbatch 提交。如图 2-6-2 所示,为笔者编写的一个脚本。
touch job.sh #创建脚本。Linux指令创建文件job.sh(sh文件为执行程序),命令touch filename。注意这里的文件名可以是任意格式的文件名,可以是文本文件(txt),也可以是c,c++文件等,文件的后缀名取决于你文件的内容与功能。 #cd ./DKT/KnowledgeTracing/evaluation/ vim job.sh#编辑脚本。使用vi编辑器进入文本
接着按i开始编辑文本 #按i字母键进入insert模式进行内容编辑,编辑内容如下:
#!/bin/bash -l #参数名称:appPath 变量名称:$appPath应用路径 #SBATCH --job-name="DKT1" #SBATCH --partition=RGZN2 #SBATCH --qos=normal #SBATCH --nodes=1 #SBATCH --ntasks-per-node=1 #SBATCH --ntasks-per-core=1 #SBATCH --output=job.%j.out #SBATCH --error=joberror.%j.out #SBATCH --gpus=1 source activate py365DKTPytorch module add cuda/10.0 cd ./DKT/KnowledgeTracing/evaluation/ python run.py
#编辑完成后依次按ESC键、 :wq 、Enter键就可以保存并退出了。
我们可以明显的看出这个脚本可以分为两个部分,下面我们分别对这两个部分进行说明。
第一个部分是作业相关的配置,我们制定了作业的名称,作业运行的分区等等。总之它描述了我们的需求,部分参数说明见表 2-6-2,更多信息,请读者上网查阅,或者使用–hlep参数获得全部参数说明。
2.6.1.3 module
我们接着看上一节的脚本,我们已经介绍完了第一部分,现在来看第二个部分,这是我们要运行我们的程序,也就是我们要训练的模型。首先,我使用 conda 命令激活了我刚刚创建的虚拟环境,然后我使用 module 加载了我需要的版本的 cuda,因为我的 pytorch 版本对应的是 10.0 的 cuda。注意笔者编写的脚本是跟源码放在一个目录下的,所以我最后执行的python 命令并没有指定文件路径。我们可以使用 module avail 来获取当前集群所有可用的cuda 或者其他的 module,如图 2-6-3 所示展示了所有可用的 module
module avail
2.6.1.3 sbatch 提交作业
现在我们写好了我们的作业脚本,接下来我们就可以通过 sbatch 命令提交我们的作业,如图 2-6-4 所示,笔者提交了我们已经写好的脚本。
sbatch job.sh
2.6.1.4 squeue 查看队列中的作业
输入 squeue,集群的作业队列中的所有作业以及它们的状态,如图 2-6-5 所示。
squeue
我们看到我们的任务已经在运行了。已提交的作业的状态,见表 2-6-3
2.6.1.5 scontrol 查看作业的详细信息
如图 2-6-6 所示,展示了我们刚刚提交的作业的具体信息。
scontrol show job 10054
2.6.1.6 scancel 取消已经提交的作业
我们可以使用命令 scancel job_id 来取消指定的作业,如图 2-6-7 所示,我们 scancel 取消我们刚刚提交的作业,再用 squeue 查询作业队列时,已经没有我们的作业。
#scancel 10054 # scancel job_id
sacct -j 10054
Running#正在运行
COMPLETED#已完成运行
其他
#conda deactivate#离开虚拟环境
我的文件目录如下所示
/home/y192314/tools/miniconda3/
/home/y192314/tools/miniconda3/envs/py365DKTPytorch/python.exe#配置python环境所在目录
/home/y192314/DKT-DeepKnowledgeTracing-DKT-Pytorch-master/DKT/KnowledgeTracing/evaluation/run.py#脚本目录
参考文献
[1] 陕西师范大学高性能计算使用指南.pdf
[2] 北京大学高性能计算使用指南 https://hpc.pku.edu.cn/_book/
[3]MobaXterm软件下载官网https://mobaxterm.mobatek.net/



