HPC提交作业
本次登录使用HPC,主要是使用R进行pgmm计算。
-
设置conda环境:
ls -a vim ~/.bashrc export PATH=/opt/app/anaconda3/bin:$PATH :wq source ~/.bashrc # 集群自带conda的base environment为只读目录,有些软件包无法conda安装,所以可以自主安装miniconda到自己用户目录下进行安装包。 cp /opt/app/installer/Miniconda3-py37_4.9.2-Linux-x86_64.sh /home/udxxxx/ chmod u+x Miniconda3-py37_4.9.2-Linux-x86_64.sh ./Miniconda3-py37_4.9.2-Linux-x86_64.sh # 一路确认安装,conda init默认设置为no,使用miniconda自主安装软件包时,将miniconda加入bashrc,注释掉系统自带anaconda3。使用完,可以切换回自带anaconda,注释掉miniconda3即可。 vim ~/.bashrc export PATH=/home/udxxxx/miniconda3/bin:$PATH :wq source ~/.bashrc
目前采用这种手动切换miniconda的思路解决conda安装包权限不足的问题,网上亦有解决方案提出更换默认anaconda的包和环境的缓存路径,尝试修改后,貌似没有成功,没有再做测试。具体参见Ubuntu18.04下 修改conda环境和缓存默认路径和How to change the path of conda base
命令 说明 conda –V
查看conda版本 conda –h
查看conda帮助 conda update conda
更新conda conda create --name <env_name> <package_names>
使用conda创建新的环境 source activate <env_name>
激活创建的环境 conda info --envs
显示已创建的环境 conda create --name <new_env_name> --clone <old_env_name>
复制环境 deactivate <env_name>
退出环境 conda remove --name <env_name> --all
删除环境 conda install --name <env_name> <package_name>
在指定环境中安装包 conda list
列出已安装的包 conda update <package_name>
更新当前环境中的安装包 conda remove <package_name>
移除当前环境中的安装包 conda remove -n <env_name> <package_name>
移除指定环境中的安装包 -
登录集群:
命令 说明 sinfo
查看节点与分区状态 squeue
查看队列状态 scancel
取消作业 sacct
查看历史作业信息 salloc
分配资源 sbatch
提交批处理作业 scontrol
系统控制 srun
执行作业 ### 交互作业 salloc --comment=hpc --partition=fat ssh fat1 # 退出节点,需要两次exit exit exit # 再次确认是否退出节点 squeue -u ${USER}
### 批量作业 建立bat文件时,记得删除本行 #!/bin/bash ### 设置该作业的作业名 #SBATCH --job-name=pgmm ### 指定该作业需要2个节点数 #SBATCH --nodes=2 ### 每个节点所运行的进程数为40 #SBATCH --ntasks-per-node=40 ### 作业最大的运行时间,超过时间后作业资源会被SLURM回收 #SBATCH --time=2:00:00 ### 指定从哪个项目扣费。如果没有这条参数,则从个人账户扣费 #SBATCH --comment=hpc ### 程序的执行命令 mpirun hostname --- 以上可保存为run.bat ### slurm资源管理系统命令 ### 运行命令方式: sbatch ./run.bat --- sbatch run.sh srun sh test.sh #分别运行对应的sh脚本 srun python test.py #运行python程序 srun Rscript test.R #运行R程序 python test.py
参数 说明 --jobname=<name>
设定作业名称 --nodes=<n>
设定作业需要的节点数。如果没有指定,默认分配足够的节点来满足 --ntasks=<n>
和--cpus-per-task=<ncpus>
参数的要求。--ntasks-per-node=<ntasks>
设定每个节点上的任务数。要和 –nodes=<n>
同时配合使用。--ntasks=<n>
设定最多启动的任务数。 --cpus-per-task=<ncpus>
设定每个任务所需要的CPU核数。如果没有指定,默认为每个任务分配一个CPU核。一般运行OpenMP等多线程程序时需要,普通MPI程序不需要。 --comment=TestProject
指定从哪个项目扣费,注意要将 TestProject
替换成项目名称。如果不写这条参数,默认从个人账户扣费。参考链接:
https://hpc.hust.edu.cn/help/app/conda.html
https://blog.csdn.net/m0_37316673/article/details/107161038
https://blog.csdn.net/qq_31910613/article/details/102993478
https://luckyshi.cn/index.php/softwares/2020/luckyshi/396/