计算化学公社

标题: ORCA在slurm任务系统里的资源分配 [打印本页]

作者
Author:
Charles_Gao    时间: 2018-1-18 17:48
标题: ORCA在slurm任务系统里的资源分配
由于近期敝校计算中心把大部分nodes从PBS搬到slurm,只留了一些年久失修的老机器在PBS。因此我也只能在slurm下使用orca了。
事实证明搬迁工作十分顺利,由于不提供openmpi2.0.2,我尝试了2.1.1(ifortran编译的),运行十分顺利。

我有一个问题:slurm的脚本语句有些不同,对于orca来说,.sh文件需要设定 任务数 (ntasks-per-node)才能实现并行。那么cpus-per-task是什么意思呢?设定这个值对orca的运行速度是否有影响?

作者
Author:
bluewhale    时间: 2018-1-18 20:57
例如,可能用到的地方如下:
# Set the number of cores available per process
# if the $SLURM_CPUS_PER_TASK variable is not zero length
if [ ! -z  $SLURM_CPUS_PER_TASK ] ; then
    export OMP_NUM_THREADS=$SLURM_CPUS_PER_TASK
else
    # $SLURM_CPUS_PER_TASK is a zero length
    # The default value is a core per task
    export OMP_NUM_THREADS=1
fi
作者
Author:
kyuu    时间: 2018-1-19 08:23
本帖最后由 kyuu 于 2018-1-19 08:34 编辑

#SBATCH --nodes=1  节点数
#SBATCH --ntasks=12 CPU数量(并行任务数量)
#SBATCH --cpus-per-task=1 多线程,不需要,设成1
另:Orca并行需要使用全路径

作者
Author:
Charles_Gao    时间: 2018-1-23 23:39
kyuu 发表于 2018-1-19 08:23
#SBATCH --nodes=1  节点数
#SBATCH --ntasks=12 CPU数量(并行任务数量)
#SBATCH --cpus-per-task=1 多 ...

谢谢您!请问ntasks是怎么设置呢,像PBS里一样大于PAL数就行了嘛
作者
Author:
kyuu    时间: 2018-1-24 11:27
Charles_Gao 发表于 2018-1-23 23:39
谢谢您!请问ntasks是怎么设置呢,像PBS里一样大于PAL数就行了嘛

You should declare the same number of cores in slurm as the PAL number in your input file
作者
Author:
498746012    时间: 2021-3-12 21:08
kyuu 发表于 2018-1-24 11:27
You should declare the same number of cores in slurm as the PAL number in your input file

老师打扰了,下边的slurm脚本orca计算单个节点可以运行,但是跨节点的时候总是一个节点在算,其他节点top都没有计算进程,如何简单的修改下边的slurm脚本可以跨节点运行呀?

#!/bin/bash
#
#SBATCH --nodes=3               # allocate 1 nodes for the job
#SBATCH --ntasks-per-node=3     # allocate 20 cores for the job
#SBATCH --time=72:00:00
#SBATCH -o output.%J.out # the file to write stdout for job
#SBATCH -e output.%J.err # the file to write stderr for job
#SBATCH --job-name=a.inp

input=a.inp

jobname=$(echo "${input%.*}")

# start
export PATH=$PATH:/home/guojd/openmpi313/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/guojd/openmpi313/lib
export PATH=$PATH:/home/guojd/orca421
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/guojd/orca421
export RSH_COMMAND="ssh -x"

scratch="/tmp/$USER/$SLURM_JOB_ID"

if [ ! -d $scratch ]; then
    mkdir -p $scratch
fi

export GAUSS_SCRDIR=$scratch

# run Gaussian 09
time /home/guojd/orca421/orca $input 2>&1 | tee $jobname.out

if [ -f $scratch/*.chk ]; then
    cp $scratch/*.chk $SLURM_SUBMIT_DIR
fi

rm -rf $scratch
作者
Author:
abin    时间: 2021-3-12 21:16
498746012 发表于 2021-3-12 21:08
老师打扰了,下边的slurm脚本orca计算单个节点可以运行,但是跨节点的时候总是一个节点在算,其他节点top ...

orca部分计算,
读写硬盘很厉害。
你这个脚本,想弄死谁呀?

你要了三个机器,
每个机器跑三个核心。
为什么如此喜欢奇数的方案呢?

slurm和orca均有说明如何用各种调度器。
或者搜索,orca+slurm。

作者
Author:
498746012    时间: 2021-3-12 23:24
本帖最后由 498746012 于 2021-3-12 23:26 编辑
abin 发表于 2021-3-12 21:16
orca部分计算,
读写硬盘很厉害。
你这个脚本,想弄死谁呀?

谢谢老师,情况是这样的,我的计算一个节点用一个核所有内存都用上但是还是内存不够,所以通过多个节点并行来达到所需要的内存




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3