2.0.Programming Tools

由于本次作业需要一定的计算资源支持,我们为各个小组提供了集群账户。大作业需要使用python完成,推荐读者使用python3。建议使用pycharm进行代码的编辑、运行和调试。可以参考以下的PyCharm 连接远程服务器,ssh远程连接P-cluster。

1) PyCharm 连接远程服务器

注:只有professional版才有ssh 远程连接的功能,社区版没有。 可参考学生如何免费试用Pycharm专业版

1.1) 打开PyCharm 的Preferences

1.2) 设置远程服务器&设置账号密码

  • Build,Execition,Deployment -> Deployment。

  • 点击左上角的“+”键,给server取名。

  • type 选择 SFTP

  • 点击SSH configuration 设置HostUsernamepassword

  • Test Connection检查连接是否正常,如出现问题,可能是上步SSH设置问题。

  • 设置Root path,点击上方的mappings,设置本地映射目录和远程映射目录。

  • 设置好后apply

1.3) 设置python解释器

  • Preferences -> Project:xxxx -> Python interpreter

  • 点击设置,再点击add,在Python Interpreter中设置调用的python路径

  • 点击SSH Interpreter,选择Existing server configuration

  • 选择我们刚刚设置好的SSH configuration

  • next,实现PyCharm远程服务器的连接。

1.4) 文件的传输以及Terminal的打开

  • 选择左上角的tools->Deployment

  • uploaddownload能够实现文件在本机和服务器上的互传。

  • Tools->start SSH session

  • 选择需要连接的服务器

  • 随后在下方的Terminal处,即可进行linux 操作。

2) 使用Cluster队列提交任务

具体可参考1.2-cluster4) How to use cluster部分。这里简单介绍一下:

我们的作业需要P-cluster上完成,cluster是为多用户同时使用而设计,包含多个运算节点。为了不发生多用户同时使用相同运算节点造成拥堵和死机,需要按照queue(队列)进行使用。简而言之,本次作用中所有需要集群后台处理或大规模运算的Shell script(.sh)都需要在脚本包含以下部分:

### 1. 提交任务部分,任务的说明
#!/bin/bash
#SBATCH -J tophat_test
#SBATCH -p CN_BIOT
#SBATCH --nodes=1
#SBATCH --ntasks=4
#SBATCH --output=%j.out
#SBATCH --error=%j.err

### 2. 声明该脚本中所用到的所有软件的路径,并export到PATH变量中
export PATH=/WORK/teaching/bin:$PATH

### 3. 运行代码部分

2.1) 提交任务部分

Name

mean

#SBATCH -J

给该任务命名,可自行定义

#SBATCH -p CN_BIOT

使用CN_BIOT这个队列

#SBATCH --nodes=1

使用的节点数为1

#SBATCH --ntasks=4

使用的任务线程数为4

#SBATCH --output=%j.out

运行日志输出到当前目录中,以.out结尾,以JOBID为名

#SBATCH --error=%j.err

运行错误日志输出到当前目录中,以 .err 结尾,以JOBID为名

2.2) 声明所用软件路径部分

export PATH=/WORK/teaching/bin:$PATH/WORK/teaching/bin为所用到的软件所在目录的路径,如有多个软件路径,路径之间用:相隔,例如export PATH=/data/zhaoyizi/software/anaconda3/envs/Riboshape/bin:/data/zhaoyizi/software/shapemapper-2.1.5:$PATH

2.3) 运行代码部分

该部分输入实际的运行代码。 如果是python脚本需要提交的集群中运算,可以在2部分,声明python(环境)所在路径。在此部分写入python /path_to_your_python_script/XXX.py,R脚本同理。

2.4) 提交、查看、取消任务

在完成脚本的编辑后,使用sbatch提交任务。

  • 使用sbatch命令提交任务

    sbatch test1.sh

    提交任务后,会在当前目录下,生成.out.err文件,less .out/.err文件可以查看任务运行状况和是否出错。

  • squeue查看队列信息

JOBID

PARTITION

NAME

USER

ST

TIME

NODES

NODELIST

任务ID

队列名称

任务名称

用户名

脚本类型

运行时间

节点数

节点名

  • scancel取消任务

    scancel jobid

Attention :用shell脚本提交python脚本或R脚本任务到队列时,注意写绝对路径。相对路径可能会报错。

Last updated