HPC提交作业

本次登录使用HPC,主要是使用R进行pgmm计算。

  1. 设置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> 移除指定环境中的安装包
  2. 登录集群:

    命令 说明
    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
    参数 说明
    --job­name=<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://hpc.pku.edu.cn/_book/

    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/

    https://www.thinbug.com/q/50653937

    https://cloud.tencent.com/developer/ask/sof/459989

本文链接:

https://ma.ge/archives/568.html