Pku.edu.cn



新集群使用手册2019v1.10

2019年6月18日

13:33

 

 

新集群使用说明:

一、新集群介绍

生命等科学部分,目前仅有lustre3文件系统

cn_nl 核心数28,96G内存,一个任务大约3.2G内存,节点数52

gpu_2l 显卡为2个 128G内存,节点数6

gpu_4l 显卡为4个 192G内存,节点数20

gpu_8l 显卡为8个 384G内存,节点数1

工学院部分,目前仅有lustre3文件系统

cn_ne 核心数28,96G内存,一个任务大约3.2G内存,节点数160

gpu_4e 显卡为4个 192G内存,节点数20

高老师部分,目前仅有lustre3文件系统和gpfs2文件系统

cn_bio 核心数20,192G内存,一个任务大约9.6G内存,节点数8

新集群机器表一:qos以xiao_pkuhpc为例

|分区名 |CPU |核数 |内存 |每核/每卡(G |Qos |Account |

| |GPU | |(G) |) | | |

|login05 |128 |E5-2670v2 |10+10 |  |投任务 |  |

|login06 |64 |E5-2670v2 |10+10 |  |投任务 |目前在旧集群,不能投,可以查看旧文件 |

|login07 |128 |E5-2670v2 |10+10 |  |投任务 |  |

| | | | | |文件传输 | |

|login10 |128 |E5-2670v2 |10+10 |  |投任务 |  |

| | | | | |文件传输 | |

|login12 |96 |Gold 6132 |14+14 |GV100 |投任务 |GPU卡可编译gpu程序 |

| | | | |(32G) | | |

|login13 |384 |Gold 5115 |10+10 |TeslaP4 |投任务 |2GPU卡可编译gpu程序 |

| | | | |(8G) |  | |

 

 

 

 二、新集群队列

1、新旧集群继承和出现的问题:

1)文件同步

目前旧集群只有 /home 和 /apps 保留。所以不要传送任何其他文件夹文件

可以从login06复制文件到login12,比如 rsync -arvP file login12:/home/youname 或者 scp -r file login12:/home/youname

高老师集群可以拷贝到login13上,login13上还有gpfs2

2)队列和程序问题

以前的任务脚本,以前的分区都可以运行,不用更改,可以直接投递,免费测试期间,cpu限制在800核以内

a、登陆节点为 login05 login07 login12 ,目前都可以上网。

b、大家都测试下登录login12,有不能登陆login12的请联系我们,现在方婷休假,大家可以等等,用login05/07

c、login12 新集群编译器,含gpu

d、如果跑程序出现多次段错误,请重新编译,编译时务必使用/appsnew/source 下的环境,编译的时候 用什么环境,跑的时候也用什么环境,必须一致, 可以用 ldd 程序 ,去看所用的库

e、mpi提交脚本参考附件16页以后对应的mpi,千万不要用mpiexec.hydra -bootstrap slurm 去提交

f、所有的用户都可以免费用部分新集群的gpu节点。对应的分区gpu_4e gpu_4l,GPU节点为,程序提供GPU加速用,非GPU加速任务,请务必不要提交,每个用户可以交2-3个任务

g、login06和login10为旧的系统,没有可以用的节点计算,不能提交任务。如果非常紧急,需要在旧节点计算,可以告诉我们

h、新集群cnnl/e,部分gpu_4e/l,gpu_2l,gpu_8l,目前只接受申请测试。

j、新集群已经挂载相应的lustre1 和lustre2 文件系统

k、source /appsnew/source/intel2019.sh 这在以前旧的分区会出现段错误,如果能用就用,这个会快些。不能用就用 source /apps/source/intel-2018.sh去编译。

l、Gold 6132的CPU和E5-26系统的CPU差异比较大,所以如果出现段错误的时候,或者找不到库:

使用E5-26系统的CPU请选择在 login05 -login10(login6 和login10暂时不能使用)编译, 使用Gold 6132等在login12,login13上编译,对应的分区见表新集群列表的cpu栏目

m、注意9.0版本的cudnn库的不同,10版本后cudnn库固定了,都包含了,详细见/appsnew/source下的cuda文件

n、旧集群的mpi脚本默认是intel2013 ,所以在脚本里运行程序前还得加source /apps/source/intel-2013.sh

因为旧集群,很多程序已经无法编译,所用只能更新,带来的不变敬请谅解。

现在为测试期,,为感谢大家的支持,测试期期间所用的机时免费,为感谢大家的支持,测试期期间所用的机时最高免费800cpu。

关于 cn-short,cn-large,fat4way,fat8way,分区的脚本, 如果没有mpi提交脚本就不用改,继续用旧的脚本,如果有用mpi,需要改mpiexec.hydra -bootstrap slurm $程序这行, 然后提交,具体真没改,参考前面文件amber提交的各个mpi的案例。

2、非工学院方面提交任务

sinfo或者pkuinfo是查看节点信息,其中c01b05n[02-03,07]表示c01b05n02、c01b05n03、c01b05n07三个节点,状态栏 STATE显示alloc是该节点完全被占用,mix表示部分被占用,idle空闲,drain表示节点被晾起来了。

squeue或者pkuqueue 显示全部任务,sq显示自己的任务,JOBID表示任务号,PARTITION分区,NAME任务名字,USER用户名 STST列PD表示在等待,R表示运行, TIME为运行时间11-20:42:05表示运行11天20小时,NODES运行节点,NODELIST(REASON)不能马上运行的原因。

 

scancel或者pkucancel +JOBID

批量删除任务:

sq-1同时显示自己的任务号和以用于删除的任务序列如下图:

 

[pic]

 

sq-1 sle #其中sle为关键词:

最后一行为任务id;

执行 scancel或者pkucancel 复制最后一行id 就可以批量删除任务

 

 

 

pkujob + JOBID 显示运行任务的详细信息

showqos 查看自己的账号,qos,可运行的cpu或节点数,和可提交的任务数。

 

[pic]

新的gpu比如gpu_2l,gpu_4l,gpu_8l,gpu_4e,是以节点和GPU卡来调度的。

 

1)cn-nl

a、登陆login12

b、进入所要运行的文件夹

运行pkurun-cnnl 1 28 "sleep11;pwd;hostname"

其中1为节点,28为核心数(这里应该用一个核心就够)

注意如果是脚本为pkurun-cnnl 1 28 ./run

使用法1、对于单进程的脚本直接执行pkurun-cnnl 1 1 "sleep11;pwd;hostname"

使用法2、对于需要多占内存的脚本执行pkurun-cnnl 1 2 "sleep11;pwd;hostname",

每一个可以占3.2G左右内存,这里使用2*3.2G

使用法3、在所在的文件夹里,有 job.srp的文件如下,可以修改使用

tang_pkuhpc@login12:testnew $ cat job.srp131356

#!/bin/bash

#SBATCH -J pwd131356

#SBATCH -p cn_nl

#SBATCH -N 2

#SBATCH -o pwd131356_%j.out

#SBATCH -e pwd131356_%j.err

#SBATCH --no-requeue

#SBATCH -A tang_g1

#SBATCH --qos=tangcnnl

#SBATCH -c 28

pkurun pwd;hostname;sleep 11

注意如果是非mpi的话为#SBATCH -c 28

如果是mpi的话为:

#SBATCH -n 28 表示为number of tasks to run

#SBATCH --ntasks-per-node=28 表示为 number of tasks to invoke on each node

-o 为输出文件名,-e为输出错误

-N 为节点数量

-A 为账号如tang_pkuhpc 那么这里就是 tang_g1

--qos 为分区对应的qos

-p 为分区

-J 为任务名字,

%j格式化任务号

--no-requeue 任务中断,恢复后不会重新计算

c、指定节点提交:

pkurun-cnnl -w s11b01n[01-02] 2 23 "pwd;hostname;sleep 11"

或者在前面的脚本#SBATCH -N 2后

加入#SBATCH -w s11b01n[01-02]

2)gpu_4l(其他gpu_2l,gpu_8l 类似)

a、登陆login12

b、进入所要运行的文件夹

pkurun-g4c 1 2 nvidia-smi

其中1为节点,2为Gpu核心数(这里1-3的脚本为下)

tang_pkuhpc@login12:testnew $ cat job.srp144115

#!/bin/bash

#SBATCH -J nvi144115

#SBATCH -p gpu_4l

#SBATCH -N 1

#SBATCH -o nvi144115_%j.out

#SBATCH -e nvi144115_%j.err

#SBATCH --no-requeue

#SBATCH -A tang_g1

#SBATCH --qos=tangg4c

#SBATCH --gres=gpu:3

#SBATCH --overcommit

#SBATCH --mincpus=21

pkurun nvidia-smi

其中:

--overcommit允许在申请的cpu上面开更多的tasks

--mincpus指定开几个硬件核心

使用1GPU的脚本为:

tang_pkuhpc@login12:testnew $ cat job.srp144115

#!/bin/bash

#SBATCH -J nvi144115

#SBATCH -p gpu_4l

#SBATCH -N 1

#SBATCH -o nvi144115_%j.out

#SBATCH -e nvi144115_%j.err

#SBATCH --no-requeue

#SBATCH -A tang_g1

#SBATCH --qos=tangg4c

#SBATCH --gres=gpu:1

#SBATCH --overcommit

#SBATCH --mincpus=7

pkurun nvidia-smi

 

使用4GPU的脚本为:

tang_pkuhpc@login12:testnew $ cat job.srp144415

#!/bin/bash

#SBATCH -J nvi144415

#SBATCH -p gpu_4l

#SBATCH -N 1

#SBATCH -o nvi144415_%j.out

#SBATCH -e nvi144415_%j.err

#SBATCH --no-requeue

#SBATCH -A tang_g1

#SBATCH --qos=tangg4c

#SBATCH --gres=gpu:4

#SBATCH --exclusive

pkurun nvidia-smi

使用2个以上gpu节点的时候默认为4个gpu都使用,

pkurun-g4c 2 4 nvidia-smi

所以pkurun-g4c 2 3 nvidia-smi的4是无效的,都会使用4去替代

gpu_2l和gpu_8l 不建议跨节点使用

 

3、工学院方面提交任务

1)cn-nl

a、登陆login12

b、进入所要运行的文件夹

运行coe-cnne 1 28 "sleep11;pwd;hostname"

其中1为节点,28为核心数(这里应该用一个核心就够)

注意如果是脚本为pkurun-cnnl 1 28 ./run

使用法1、对于单进程的脚本直接执行coe-cnne 1 1 "sleep11;pwd;hostname"

使用法2、对于需要多占内存的脚本执行coe-cnne 1 2 "sleep11;pwd;hostname",

每一个可以占3.2G左右内存,这里使用2*3.2G

使用法3、在所在的文件夹里,有 job.srp的文件如下,可以修改使用

[xiao_pkuhpc@login12 testnew]$ cat job.srp010629

#!/bin/bash

#SBATCH -J sle010629

#SBATCH -p cn-ne

#SBATCH -N 1

#SBATCH -o sle010629_%j.out

#SBATCH -e sle010629_%j.err

#SBATCH --no-requeue

#SBATCH -A xiao_cg2

#SBATCH --qos=xiaoq

#SBATCH -c 28

pkurun pwd;hostname;sleep 11

注意如果是非mpi的话为#SBATCH -c 28

#SBATCH -n 28 表示为number of tasks to run

#SBATCH --ntasks-per-node=28 表示为 number of tasks to invoke on each node

 

c、指定节点提交:

pkurun-cnnl -w s11b01n[01-02] 2 23 "pwd;hostname;sleep 11"

或者在前面的脚本#SBATCH -N 2后

加入#SBATCH -w s11b01n[01-02]

 

2)gpu_4e(工学院主要是4卡gpu节点)

a、登陆login12

b、进入所要运行的文件夹

coe-g4c 1 2 nvidia-smi

其中1为节点,2为Gpu核心数(这里1-3的脚本为下)

[xiao_pkuhpc@login12 testnew]$ cat job.srp015043

#!/bin/bash

#SBATCH -J nvi015043

#SBATCH -p gpu_4e

#SBATCH -N 1

#SBATCH -o nvi015043_%j.out

#SBATCH -e nvi015043_%j.err

#SBATCH --no-requeue

#SBATCH -A xiao_cgg2

#SBATCH --qos=xiaogq

#SBATCH --gres=gpu:3

#SBATCH --overcommit

#SBATCH --mincpus=9

pkurun nvidia-smi

其中:

--overcommit允许在申请的cpu上面开更多的tasks

--mincpus指定开几个硬件核心

使用4GPU的脚本为:

[xiao_pkuhpc@login12 testnew]$ cat job.srp015205

#!/bin/bash

#SBATCH -J nvi015205

#SBATCH -p gpu_4e

#SBATCH -N 1

#SBATCH -o nvi015205_%j.out

#SBATCH -e nvi015205_%j.err

#SBATCH --no-requeue

#SBATCH -A xiao_cgg2

#SBATCH --qos=xiaogq

#SBATCH --gres=gpu:4

#SBATCH --exclusive

pkurun nvidia-smi

使用2个以上gpu节点的时候默认为4个gpu都使用,

coe-g4c 2 4 nvidia-smi

所以coe-g4c 2 3 nvidia-smi的4是无效的,都会使用4去替代

 

4、高老师方面提交任务

pkurun-bio 1 2 sleep 11 具体参考工学院部分的“1)cn-nl”

 

分区中cn-short,cn-long有些开的节点为cn_nl中临时划分过来的

 

 

三、新集群软件和软件安装编译

 

新集群的东西都在 /appsnew/下

/appsnew/source/下为安装好的软件包,使用的时候需要source下(配置下环境)

旧的在/apps,/apps/source

新的生物信息部分app在/appsnew/bioapps/下 (编译由高歌老师组曹智杰完成)

1、使用不同版本的gcc

比如source /appsnew/source/gcc-8.3.0c99.sh

[pic]

 

gcc-8.3.0c99.sh和gcc-8.3.0.sh区别在于使用了c99标准进行编译

2、使用不同版本的python

如图是3.5.7

[pic]

 

3、使用不同版本的conda

source /appsnew/source/Miniconda2-2.7.sh

[pic]

 

[pic]

 

4、使用不同版本的深度学习框架(由来老师组徐悠俊博士后和北极星计算平台刘涛完成)

比如source /appsnew/source/Tensorflow1.13_Keras2.2_Pytorch1.1_py3.5.7_cuda10.sh

[pic]

5、使用不同版本的R

比如 source /appsnew/source/R-3.5.3.sh

[pic]

还有MRO-3.5.2.sh

6、使用不同版本的java

比如source /appsnew/source/java_jdk-11.0.3.sh 还有12版本的,i686以及openjdk12.0.1.sh

7、使用不同版本的fftw

比如:

source /appsnew/source/fftw-2.1.5gcc.sh

source /appsnew/source/fftw-2.1.5intel2019.sh

还有3.3.8版本的

fftw-3.3.8gcc.sh

fftw-3.3.8intel2019.sh

8、使用不同版本的boost

如上source下

[pic]

9、使用PGI编译器

pgi2019-llvm.sh

pgi2019.sh ---nollvm

10、使用不同版本的gsl

同上:

gsl-2.5.sh

gsl-1.16.sh

11、使用更高版本的:

cmake-3.14.3.sh

automake-1.16.sh

gnuplot-5.2.6.sh

zlib-1.2.11.sh

12、CUDA库

cuda-10.0.sh

cuda-10.1.sh

以下不支持2018,2019intel编译器,使用2015或者2013编译器编译

cuda-7.0.28.sh

cuda-7.5.sh

cuda-8.0.61.sh

cuda-9.0-cudnnv7.1.sh

cuda-9.0-cudnnv7.4.2.24.sh

cuda-9.0.sh

cuda-9.1-cudnnv7.1.sh

cuda-9.1.sh

cuda-9.2-cudnnv7.1.sh

cuda-9.2-cudnnv7.4.2.24.sh

cuda-9.2.sh

注意9.0版本的cudnn库的不同,10版本后cudnn库固定了,就包含了

 

四、MPI编译和任务提交(由北极星计算平台张武生(清华大学mpi教师)和陈芳进共同完成)

1、intel2019(2013和2018放在/apps/source 下)

示例在这个文件夹下/lustre3/example/newmpi/intel2019

可以将其中的/lustre3/example/newmpi/mpi-2.c 拷贝到自己的任意个文件下,进行如下操作

1)编译:

cd /lustre3/example/newmpi/intel2019

source /appsnew/source/intel2019.sh

mpiicc -o beijixing ../mpi-2.c

2)提交任务(同章节 二):

方法1;pkurun-cnnl 2 28 ./beijixing

[test_pkuhpc@login12 intel2019]$ cat job.srp235935

#!/bin/bash

#SBATCH -J bei235935

#SBATCH -p cn_nl

#SBATCH -N 2

#SBATCH -o bei235935_%j.out

#SBATCH -e bei235935_%j.err

#SBATCH --no-requeue

#SBATCH -A test_g1

#SBATCH --qos=testcnnl

#SBATCH --ntasks-per-node=28

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

. /appsnew/source/intel2019.sh

mpirun -n $SLURM_NTASKS ./beijixing

$SLURM_NTASKS为使用的cpu数,可以自己定义

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts 为显示在那个节点计算

 

方法2;直接修改脚本见前面(二、1-2)

2、intel2013

示例在这个文件夹下/lustre3/example/newmpi/intel2013

可以将其中的/lustre3/example/newmpi/mpi-2.c 拷贝到自己的任意个文件下,进行如下操作

1)编译:

cd /lustre3/example/newmpi/intel2013

source /apps/source/intel-2013.sh

mpiicc -o beijixing ../mpi-2.c

2)提交任务(同章节 二):

方法1;pkurun-cnnl 2 28 ./beijixing

[test_pkuhpc@login12 intel2013]$ cat job.srp000038

#!/bin/bash

#SBATCH -J bei000038

#SBATCH -p cn_nl

#SBATCH -N 2

#SBATCH -o bei000038_%j.out

#SBATCH -e bei000038_%j.err

#SBATCH --no-requeue

#SBATCH -A test_g1

#SBATCH --qos=testcnnl

#SBATCH --ntasks-per-node=28

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

. /apps/source/intel-2013.sh

mpirun -n $SLURM_NTASKS -IB ./beijixing

$SLURM_NTASKS为使用的cpu数,可以自己定义

-IB 表示选择IB的rdma网络,不加会慢些

执行上述脚本后会生产带ccc+数字的文件夹,里面会有个文件

方法2;直接修改脚本见前面(二、1-2)

3、intel2018

示例在这个文件夹下/lustre3/example/newmpi/intel2018

可以将其中的/lustre3/example/newmpi/mpi-2.c 拷贝到自己的任意个文件下,进行如下操作

1)编译:

cd /lustre3/example/newmpi/intel2018

source /apps/source/intel-2018.sh

mpiicc -o beijixing ../mpi-2.c

2)提交任务(同章节 二):

方法1;pkurun-cnnl 2 28 ./beijixing

[test_pkuhpc@login12 intel2018]$ cat job.srp000133

#!/bin/bash

#SBATCH -J bei000133

#SBATCH -p cn_nl

#SBATCH -N 2

#SBATCH -o bei000133_%j.out

#SBATCH -e bei000133_%j.err

#SBATCH --no-requeue

#SBATCH -A test_g1

#SBATCH --qos=testcnnl

#SBATCH --ntasks-per-node=28

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

. /apps/source/intel-2018.sh

mpiexec.hydra -rdma -n $SLURM_NTASKS ./beijixing

$SLURM_NTASKS为使用的cpu数,可以自己定义

-rdma表示选择IB的rdma网络,不加影响不大

方法2;直接修改脚本见前面(二、1-2)

4、mvapich2-2.3.1-gcc

示例在这个文件夹下/lustre3/example/newmpi/mvapich2-2.3.1-gcc

可以将其中的/lustre3/example/newmpi/mpi-2.c 拷贝到自己的任意个文件下,进行如下操作

1)编译:

cd /lustre3/example/newmpi/mvapich2-2.3.1-gcc

source /appsnew/source/mvapich2-2.3.1-gcc.sh

mpicc -o beijixing ../mpi-2.c

2)提交任务(同章节 二):

方法1;pkurun-cnnl 2 28 ./beijixing

[test_pkuhpc@login12 mvapich2-2.3.1-gcc]$ cat job.srp000206

#!/bin/bash

#SBATCH -J bei000206

#SBATCH -p cn_nl

#SBATCH -N 2

#SBATCH -o bei000206_%j.out

#SBATCH -e bei000206_%j.err

#SBATCH --no-requeue

#SBATCH -A test_g1

#SBATCH --qos=testcnnl

#SBATCH --ntasks-per-node=28

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

. /appsnew/source/mvapich2-2.3.1-gcc.sh

mpiexec.hydra -n $SLURM_NTASKS ./beijixing

$SLURM_NTASKS为使用的cpu数,可以自己定义

方法2;直接修改脚本见前面(二、1-2)

5、openmpi-4.0.1和其他版本的openmpi

示例在这个文件夹下 cd /lustre3/example/newmpi/openmpi-4.0.1-gcc

可以将其中的/lustre3/example/newmpi/mpi-2.c 拷贝到自己的任意个文件下,进行如下操作

1)编译:

cd /lustre3/example/newmpi/openmpi-4.0.1-gcc

source /appsnew/source/openmpi-4.0.1-gcc.sh

mpicc -o beijixing ../mpi-2.c

2)提交任务(同章节 二):

方法1;pkurun-cnnl 2 28 ./beijixing

[test_pkuhpc@login12 openmpi-4.0.1-gcc]$ cat job.srp000536

#!/bin/bash

#SBATCH -J bei000536

#SBATCH -p cn_nl

#SBATCH -N 2

#SBATCH -o bei000536_%j.out

#SBATCH -e bei000536_%j.err

#SBATCH --no-requeue

#SBATCH -A test_g1

#SBATCH --qos=testcnnl

#SBATCH --ntasks-per-node=28

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

. /appsnew/source/openmpi-4.0.1-gcc.sh

mpirun -n $SLURM_NTASKS -quiet --mca pml ob1 --mca btl_openib_allow_ib true ./beijixing

$SLURM_NTASKS为使用的cpu数,可以自己定义

方法2;直接修改脚本见前面(二、1-2)

3)其他版本的openmpi

2.1.6:

source /appsnew/source/openmpi-2.1.6-gcc.sh

3.1.4:

source /appsnew/source/openmpi-3.1.4-gcc.sh

其他步骤同前面1),2)

 

五、程序编译示例

(一)octopus(由北极星高性能计算平台、康维老师组学生高静丽共同完成)

cd /lustre3/example/config

这里可以进入你自己创建的文件夹,示例文件夹是没有写的权限

解压程序包

tar -xvf octopus-9.0.tar.gz

mkdir /lustre3/example/config/octopus9.0-intel2019

进入目录

cd octopus-9.0/

1、intel2019编译:

配置环境:

source /appsnew/source/intel2019.sh

source /appsnew/source/automake-1.15.sh

./configure --prefix=/lustre3/example/config/octopus9.0-intel2019 \

-enable-mpi CC=mpiicc FC=mpiifort \

--with-libxc-prefix=/appsnew/usr/libxc/libxc-4.3.4-intel2019 \

--with-blas=/appsnew/usr/blas/BLAS-3.8.0-intel2019/blas_LINUX.a \

--with-lapack=/appsnew/usr/lapack/lapack-3.8.0-intel2019/liblapack.a \

--with-gsl-prefix=/appsnew/usr/gsl/gsl-2.5-intel2019/ \

--with-fftw-prefix=/appsnew/usr/fftw/fftw-3.3.8intel2019

注意

\ 表示没有完 ,后面还有

--prefix 安装路径

-enable-mpi 为允许mpi

CC=mpiicc FC=mpiifort 选择的c和fc

--with-lapack --with-blas 选择的库 。。。

编译:

清除旧的编译内容;编译,-j18 为使用18个mcpcom fortcom去编译;安装文件

make clean ;

make -j18;

make install

安装完后在/lustre3/example/config/octopus9.0-intel2019/bin/下

库查看:使用ldd

ldd /lustre3/example/config/octopus9.0-intel2019/bin/octopus

[pic]

这里可以查看到使用intel编译器,但是少了库:

[pic]

所以要在运行的脚本里加上,如下几行,特别是

source /appsnew/source/intel2019.sh

export LD_LIBRARY_PATH=/appsnew/usr/gsl/gsl-2.5-intel2019/lib:$LD_LIBRARY_PATH

export PATH=$PATH:/lustre3/example/config/octopus9.0-intel2019/bin/

再ldd 就有了

[pic]

千万不要忘记$PATH,这里是先执行环境的,然后再执行用户设定路径的命令。后面则相反

export PATH=/lustre3/example/config/octopus9.0-intel2019/bin:/$PATH

脚本示例:

cat chenfj/intel2019/submit.sh-96-node

#!/bin/bash

#SBATCH -J k-34chenfj

#SBATCH -p cn_nl

#SBATCH -N 96

#SBATCH -o display96_%j.out

#SBATCH -e pwd131356_%j.err

#SBATCH --no-requeue

#SBATCH -A aaa_g1

#SBATCH --ntasks-per-node=28

#SBATCH --qos=aaacnnl

source /appsnew/source/intel2019.sh

export LD_LIBRARY_PATH=/appsnew/usr/gsl/gsl-2.5-intel2019/lib:$LD_LIBRARY_PATH

export PATH=$PATH:/lustre3/example/config/octopus9.0-intel2019/bin/

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

mpiexec.hydra -n $SLURM_NTASKS octopus > /etc/rc.d/rc.local

echo "nvidia-smi -c 3" >> /etc/rc.d/rc.local

As of AMBER 18, with modern 2018 or later GPUs, you are unlikely to see benefit beyond a single GPU, although the design of AMBER is such that it makes sense from a cost perspective to put 4 or 8 GPUs in a single node and run multiple independent simulations on a single node

来自

 

 

总结:amber18 最好用双卡节点跑,并且使用一个卡跑

 

三、relion (欧阳颀物理组博士后余大启提供,脚本和编译,测试陈芳进)

(一)编译环境

Relion是由MRC的S. Scheres主导开发的开源软件,下载的github代码库地址为:。考虑到用Intel MPI编译效果一般最佳,本集群目前提供了Intel 2018和Intel2019并行编译器编译的支持GPU计算的版本和纯CPU版本。

|编译器版本 |/appsnew/CryoEMapps/ 路径 |适用队列 |

|Intel2019+Cuda |relion3.0.7_cuda10.1_intelmkl2019u4 |gpu_4l |

|Intel2018+Cuda |relion3.0.7_cuda10.1_intelmkl2018 |gpu_4l |

|Intel2019 |relion3.0.7_cpu_intelmkl2019 |cn_nl |

|Intel2018 |relion3.0.7_cpu_intelmkl2019 |cn_nl |

推荐尽可能使用Intel2019并行编译器和Cuda10.1编译的版本在GPU节点上运行。当然一些不能用GPU加速的任务也需要不带Cuda的版本在CPU节点上运行。使用过程中,可参考这里尽可能针对自己的体系进行性能,内存限制等方面调优:

一般来说,让进程尽可能开在单独的一个物理CPU上会是比较合理的选择。

(二)提交脚本

/lustre3/qi_pkuhpc/test/relion_benchmark/EMPIAR_10253_v2_1node/4GPUs/example

这里提供了一个例子:

 

#!/bin/bash

#SBATCH -J relion

#SBATCH -p gpu_4l

#SBATCH -N 1

##SBATCH --nodelist=s10b00n01

#SBATCH -o relion_%j.out

#SBATCH -e relion_%j.err

#SBATCH -A xx_g1

#SBATCH --qos=qig4c

#SBATCH --gres=gpu:4

#SBATCH --exclusive

 

starttime=`date +"%s"`

 

 

export I_MPI_DEBUG=20

ulimit -s unlimited

source /appsnew/source/cuda-10.1.sh

source /appsnew/source/intel2019.sh

source /appsnew/opt/intel/intel2019/mkl/bin/mklvars.sh intel64

export PATH=/appsnew/CryoEMapps/relion3.0.7_cuda10.1_intelmkl2019u4/bin:$PATH

export LD_LIBRARY_PATH=/appsnew/CryoEMapps/relion3.0.7_cuda10.1_intelmkl2019u4/lib:$LD_LIBRARY_PATH

nvidia-smi

echo "MAX_TASKS_PER_NODE:" $MAX_TASKS_PER_NODE

echo $CUDA_VISIBLE_DEVICES

echo $PATH

echo $LD_LIBRARY_PATH

ngpupernodes=`echo $CUDA_VISIBLE_DEVICES | awk -F',' '{print NF}'`

nprocsnode1=`echo $ngpupernodes | awk '{print $1+1}'`

nprocs=$nprocsnode1

hosts=`scontrol show hostname $SLURM_JOB_NODELIST`

host1=`echo "$hosts" | head -n 1`

gpustring1=`echo $CUDA_VISIBLE_DEVICES | sed 's/,/:/g'`

gpustring="$gpustring1"

echo "$host1:$nprocsnode1" > machinefile_${SLURM_JOB_ID}

for host in `echo "$hosts" | awk '{if(NR>1)print $0}'`; do

echo "$host:$ngpupernodes" >> machinefile_${SLURM_JOB_ID}

nprocs=`echo $nprocs $ngpupernodes | awk '{print $1+$2}'`

gpustring="$gpustring:$gpustring1"

done

echo "CUDA_VISIBLE_DEVICES:$CUDA_VISIBLE_DEVICES"

echo "gpustring:$gpustring"

mkdir -p autorefine/round01

mpiexec.hydra -bootstrap slurm -np $nprocs -machinefile machinefile_${SLURM_JOB_ID} relion_refine_mpi --o autorefine/round01/cryosparc_exp001887_006 --auto_refine --split_random_halves --i cryosparc_exp001887_006.star --angpix 1.059 --particle_diameter 140 --ref emd_0605.mrc --firstiter_cc --ini_high 40 --dont_combine_weights_via_disc --pool 28 --ctf --ctf_corrected_ref --flatten_solvent --zero_mask --oversampling 1 --healpix_order 2 --auto_local_healpix_order 4 --offset_range 3 --offset_step 1 --sym C1 --low_resol_join_halves 40 --norm --scale --j 10 --gpu $gpustring > autorefine_round01_cryosparc_exp001887_006.log

endtime=`date +"%s"`

usedtime=`echo $starttime $endtime | awk '{print strtonum($2)-strtonum($1)}'`

echo "Used time: $usedtime" > timeused.log

提交脚本如下:

 

 

(三)测试结果

所有测试均在gpu_4l节点上运行。

因为Relion属于支持GPU加速计算的程序,用GPU的加速比可以达到很高,但是仍然有相当一部分计算需要依赖CPU。我们首先测试了同样多的GPU的情况下CPU核心数对计算效率的影响。测试使用2个GPU作为加速卡,使用Intel编译器的环境变量I_MPI_THREAD_MAX和I_MPI_PIN_DOMAIN来控制使用的CPU核心数,结果如下图所示。

[pic]

 

 因此,在GPU加速卡一定的情况下应尽可能多地使用CPU,最好能保证每个进程使用7个核心以上。

 

我们还测试了不同数目的GPU加速卡对程序的加速情况。

 

[pic]

 

[pic]

可见,增加GPU数量能加速运算,对于常用的100k左右颗粒的数据,性价比比较高的方案应该是使用8块卡(gpu_4l上的2个节点),而对于更大规模的计算,则推荐使用更多(20-40卡)以获取更快计算速度。

 

 

 

四、gromacs,(欧阳颀物理组博士后余大启提供脚本和编译,)

(一)中小体系测试(卢海龙课题组博后邓亚骏):

Gromacs 2019.2测试报告

 

本次共测试了3个gromacs算例,都分别用1个gpu_4l节点和2个cn_nl节点(1个GPU节点4个卡,对应cn_nl 2个节点)进行了测试。gpu_4l节点4个gpu卡全部占用,cuda版本为10.1,intel编译器为intel 2019。cn_nl为每节点的28个核全部占用,intel编译器为intel 2019。脚本见下。

 

gpu加速脚本:

 

#!/bin/bash

#SBATCH -J dyj19.2_gpu

#SBATCH -p gpu_4l

#SBATCH -N 1

#SBATCH --gres=gpu:4

#SBATCH -o gmx_%j.out

#SBATCH -e gmx_%j.err

#SBATCH -A hlu_g1

#SBATCH --qos=hlug4c

#SBATCH --exclusive

 

export I_MPI_DEBUG=20

 

#export PATH=/appsnew/usr/gcc/gcc-8.3.0/bin:$PATH

#export LD_LIBRARY_PATH=/appsnew/usr/gcc/gcc-8.3.0/lib64:$LD_LIBRARY_PATH

#source /appsnew/source/cuda-10.1.sh

#source /appsnew/source/intel2019.sh

#source /appsnew/opt/intel/intel2019/mkl/bin/mklvars.sh intel64

source /appsnew/mdapps/gromacs2019.2_cuda10.1_intelmkl2019u4/bin/GMXRC2.bash

hosts=`scontrol show hostname $SLURM_JOB_NODELIST`

numprocs=`echo "$hosts" | wc -l | awk '{print $1*4}'`

 

numprocs2=$SLURM_CPUS_ON_NODE

host1=`echo "$hosts" | head -n 1`

gpustring="0123"

echo "$host1:13" > machinefile_${SLURM_JOB_ID}

for host in `echo "$hosts" | awk '{if(NR>1)print $0}'`; do

echo "$host:13" >> machinefile_${SLURM_JOB_ID}

gpustring="$gpustring0123"

numprocs2=`echo $numprocs2 $SLURM_CPUS_ON_NODE | awk '{print $1+$2}'`

done

nvidia-smi

 

export OMP_NUM_THREADS=7

gmx grompp -f md4.mdp -c md3.gro -t md3.cpt -p sio2_ -o md4.tpr

mpirun -np $numprocs -machinefile machinefile_${SLURM_JOB_ID} mdrun_mpi -deffnm md4 -ntomp $OMP_NUM_THREADS -gpu_id 0123 -nb gpu -pme gpu -pmefft gpu -npme 1 -v

#mpirun -np 28 -machinefile machinefile_${SLURM_JOB_ID} mdrun_mpi -deffnm md4 -ntomp 2 -gputasks 0000111122223 -nb gpu -pme gpu -pmefft gpu -npme 1 -v

 

 

cn_nl测试脚本:

 

#!/bin/bash

#SBATCH -J dyj19

#SBATCH -p cn_nl

#SBATCH -N 2

#SBATCH -o dyj_%j.out

#SBATCH -e dyj_%j.err

#SBATCH --no-requeue

#SBATCH -A hlu_g1

#SBATCH --qos=hlucnnl

#SBATCH --ntasks-per-node=28

source /appsnew/source/intel2019.sh

source /appsnew/mdapps/gromacs2019.2_intelmkl2019u4/bin/GMXRC2.bash

gmx grompp -f cnnl_md4.mdp -c md3.gro -t md3.cpt -p sio2_ -o cnnl_md4.tpr

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

mpirun -n $SLURM_NTASKS mdrun_mpi -deffnm cnnl_md4

 

 

测试结果:

 

|算例 |原子数 |gpu_4l速度 (ns/day) |cn_nl速度 (ns/day) |gpu_4l / cn_nl速度比 |

|1 |79728 |112.183 |17.795 |6.304 |

|2 |108528 |90.978 |12.086 |7.528 |

|3 |93168 |96.823 |10.518 |9.205 |

 

 

总结:

通过上表可知,1个gpu_4l节点的计算速度远大于2个cn_nl节点,速度比在6.3倍~9.2倍。对于此次测试的不同算例,加速比是不同的,这可能与算例本身、不同gpu_4l / cn_nl 节点的计算效率等因素有关。

 

 

(二)大规模,来老师组聂小玉提供体系,测试由陈芳进和聂小玉共同完成:

source /appsnew/mdapps/gromacs2019.2_intelmkl2019u4/bin/GMXRC2.bash

 

 

 

 

source /appsnew/mdapps/gromacs2019.2_intelmkl2019u4/bin/GMXRC2.bash

 

 

使用cpu计算的时候包括cn_nl 和cpu还是用:

. /appsnew/mdapps/gromacs2019.3_cpu_intelmkl2019_cnscompat/bin/GMXRC2.bash

提交脚本:

#!/bin/bash

#SBATCH -J gmx

#SBATCH -p gpu_4l

#SBATCH -N 2

#SBATCH --gres=gpu:4

#SBATCH -o gmx_%j.out

#SBATCH -e gmx_%j.err

#SBATCH -A qi_g1

#SBATCH --qos=qig4c

#SBATCH --exclusive

 

export I_MPI_DEBUG=20

gmx grompp -f md.mdp -c mini.gro -p sio2_ -o md.tpr

mpirun mdrun_mpi -deffnm md

对于cn-nl节点,建议还是使用原来的cpu版本,应该更快点,gromacs官网是觉得那个mdrun_mpi2对应的编译选项更快



 

 

 

使用gpu计算:

 

#!/bin/bash

#SBATCH -J gmx

#SBATCH -p gpu_4l

#SBATCH -N 2

#SBATCH --gres=gpu:4

#SBATCH -o gmx_%j.out

#SBATCH -e gmx_%j.err

#SBATCH -A qi_g1

#SBATCH --qos=qig4c

#SBATCH --exclusive

 

export I_MPI_DEBUG=20

 

#export PATH=/appsnew/usr/gcc/gcc-8.3.0/bin:$PATH

#export LD_LIBRARY_PATH=/appsnew/usr/gcc/gcc-8.3.0/lib64:$LD_LIBRARY_PATH

#source /appsnew/source/cuda-10.1.sh

#source /appsnew/source/intel2019.sh

#source /appsnew/opt/intel/intel2019/mkl/bin/mklvars.sh intel64

source /appsnew/mdapps/gromacs2019.3_cpu_intelmkl2019_cnscompat/bin/GMXRC2.bash

hosts=`scontrol show hostname $SLURM_JOB_NODELIST`

numprocs=`echo "$hosts" | wc -l | awk '{print $1*4}'`

 

numprocs2=$SLURM_CPUS_ON_NODE

host1=`echo "$hosts" | head -n 1`

gpustring="0123"

echo "$host1:13" > machinefile_${SLURM_JOB_ID}

for host in `echo "$hosts" | awk '{if(NR>1)print $0}'`; do

echo "$host:13" >> machinefile_${SLURM_JOB_ID}

gpustring="$gpustring0123"

numprocs2=`echo $numprocs2 $SLURM_CPUS_ON_NODE | awk '{print $1+$2}'`

done

nvidia-smi

 

export OMP_NUM_THREADS=7

mpirun -np $numprocs -machinefile machinefile_${SLURM_JOB_ID} mdrun_mpi -s benchRIB.tpr -ntomp $OMP_NUM_THREADS -gpu_id 0123 -nb gpu -pme gpu -pmefft gpu -npme 1 -v

#mpirun -np 26 -machinefile machinefile_${SLURM_JOB_ID} mdrun_mpi -s benchRIB.tpr -ntomp 2 -gputasks 0000111122223 -nb gpu -pme gpu -pmefft gpu -npme 1 -v

待续

.

.

.

五、深度学习(来鲁华老师化学组博士后提供脚本和编译,测试):

 

  |Titan Xp |  |Telsa P100 |  | Telsa V100 |  |  |  | |  |GPU 1 |GPU 2 |GPU 1 |GPU2 |GPU 1 |GPU 2 |GPU 3 |GPU 4 | |Cuda |10.1 |10.1 |9.0 |9.0 |10.0 |10.0 |10.0 |10.0 | |Cudnn |7.6 |7.6 |7.0 |7.0 |7.4 |7.4 |7.4 |7.4 | |Mem. usage |100% |100% |100% |100% |100% |100% |100% |100% | |mem |11G |11G*2 |16G |16G*2 |32G |32G*2 |32G*3 |32G*4 | |Time |81.6s |57s |83.5s |58.9s |54.0s |43.2s |32.5s |31.1s | | 

 

我们用MNIST数据库以及利用Keras框架进行12个循环的全内存训练测试。发现Telsa v100在单卡的情况下,比先前的Titan XP和 Tesla P100快了约33%。在双卡情况下,比先前的Titan XP和 Tesla P100快了约25%。 3卡和4卡的测试中,比双卡快了约23%。 在多次测试中发现3卡和4卡的计算速度并没有明显的区别。

但是深度学习的多GPU模式的时候,需要把需要计算的内存数据和模型分配到每一块卡上,才能真正跑起多GPU的任务。如下所示:

def to_multi_gpu(model, n_gpus=2):

if n_gpus ==1:

return model

 

with tf.device('/cpu:0'):

x = Input(model.input_shape[1:])

towers = []

for g in range(n_gpus):

with tf.device('/gpu:' + str(g)):

slice_g = Lambda(slice_batch, lambda shape: shape, arguments={'n_gpus':n_gpus, 'part':g})(x)

towers.append(model(slice_g))

 

with tf.device('/cpu:0'):

# Deprecated

#merged = merge(towers, mode='concat', concat_axis=0)

merged = Concatenate(axis=0)(towers)

return Model(inputs=[x], outputs=merged)

 

以下是python在login 12 GPU上面的运行脚本:

>cat template_submit.sh

#!/bin/bash

#SBATCH -J pyt013355

#SBATCH -p gpu_4l

#SBATCH -N 1

#SBATCH -o pyt013355_%j.out

#SBATCH -e pyt013355_%j.err

#SBATCH --no-requeue

#SBATCH -A lhlai_g1

#SBATCH --qos=lhlaig4c

#SBATCH --gres=gpu:4

#SBATCH --overcommit

#SBATCH --mincpus=7

 

#Activate Basic py-env

#source /appsnew/source/Tensorflow1.13_Keras2.2_Pytorch1.1_py3.7.3_cuda9.sh

source /appsnew/source/Tensorflow1.13_Keras2.2_Pytorch1.1_py3.5.7_cuda10.sh

 

 

#Activate user defined rc environment

#source /path/to/your_rc_env.sh

 

# Show running info

echo "MAX_TASKS_PER_NODE:" $MAX_TASKS_PER_NODE

echo $CUDA_VISIBLE_DEVICES

echo $PATH

echo $LD_LIBRARY_PATH

 

ngpupernodes=`echo $CUDA_VISIBLE_DEVICES | awk -F',' '{print NF}'`

nprocsnode1=`echo $ngpupernodes | awk '{print $1+1}'`

nprocs=$nprocsnode1

hosts=`scontrol show hostname $SLURM_JOB_NODELIST`

numprocs=`echo "$hosts" | wc -l | awk '{print int($1*strtonum('"$ngpupernodes"')+1)}'`

host1=`echo "$hosts" | head -n 1`

gpustring1=`echo $CUDA_VISIBLE_DEVICES | sed 's/,/:/g'`

gpustring="$gpustring1"

echo "$host1:$nprocsnode1" > machinefile_${SLURM_JOB_ID}

for host in `echo "$hosts" | awk '{if(NR>1)print $0}'`; do

echo "$host:$ngpupernodes" >> machinefile_${SLURM_JOB_ID}

nprocs=`echo $nprocs $ngpupernodes | awk '{print $1+$2}'`

gpustring="$gpustring:$gpustring1"

done

 

 

echo "CUDA_VISIBLE_DEVICES:$CUDA_VISIBLE_DEVICES"

#gpustring=0:1

echo "gpustring:$gpustring"

 

python mnist_cnn.py $nprocsnode1 50000

 

endtime=`date +"%s"`

usedtime=`echo $starttime $endtime | awk '{print strtonum($2)-strtonum($1)}'`

echo "Used time: $usedtime" > timeused.log

 

其中#SBATCH --gres=gpu:4表示需要使用的核数;

python mnist_cnn.py $nprocsnode1 50000 提交的运行脚本,50000是脚本所需要的参数。

#Activate Basic py-env 是选择自己需要激活使用的python配置环境

# Activate user defined rc environment, 以及需要加载其他自定义的文件安装环境文件,如

export PYTHONPATH=/lustre3/lhlai_pkuhpc/yjxu/software/rdkit-py37/lib/python3.7/site-packages:$PYTHONPATH

export LD_LIBRARY_PATH=/lustre3/lhlai_pkuhpc/yjxu/software/rdkit-py37/lib:$LD_LIBRARY_PATH

 

六、octopus测试报告(工学院康维老师学生高静丽,提供编译,脚本,测试由高静丽和陈芳进共同完成):

 

七、vasp测试(王洋洋老师提供模型和脚本,编译陈芳进)

vasp版本目录:

编译是注意下将arch/makefile.include.linux_intel中的-openmp 改为-qopenmp;

2019编译器还需改:MPI_INC = /appsnew/opt/intel/intel2019/compilers_and_libraries_2019.4.243/linux/mpi/intel64/include/

参考/appsnew/physapps/vasp/vasp-5.4.4/vasp-5.4.4.intel2019_cuda10.1/makefile.includecuda

/appsnew/physapps/vasp/vasp-5.4.4/vasp-5.4.4.intel2018_cuda10.1/bin

/appsnew/physapps/vasp/vasp-5.4.4/vasp-5.4.4.intel2019_cuda10.1/bin

gpu和cpu并行版本均在bin目录下,单机版本在上面目录的bin_serial文件夹下

(注意cuda9.2 以下支持不了2018intel编译器)

source /appsnew/source/vasp-5.4.4.intel2018_cuda10.1.sh

source /appsnew/source/vasp-5.4.4.intel2019_cuda10.1.sh

source /appsnew/source/vasp-5.4.4.intel2015_cuda9.2.sh

由于vasp特性要求:

1节点使用20核,余8核

2节点使用50核,余6核

3节点使用80核,余4核

4节点使用110核,余2核

5节点使用140核,余0核 2018 多次跑得很卡

6节点使用160核,余8核

7节点使用190核,余6核 2018 多次跑得很卡

8节点使用220核,余4核 跑不起来 跑几步就很卡,2019 2018 2015 均是

9节点使用250核,余2核

10节点使用280核,余0核

……………….

检查输出脚本;长时间脚本不到10000字节的

for i in `sq |grep cn_nl |awk '{print $1 }'`;do sq |grep $i;ls -l `sjob $i |grep StdOut |awk -F= '{print $2}'` |awk '{print $5,$NF}' ;done

(一)脚本

1、intel2018 CPU脚本参考

1节点脚本

#!/bin/bash

#SBATCH -J vas230054

#SBATCH -p cn_nl

#SBATCH -N 1

#SBATCH -o vas230054_%j.out

#SBATCH -e vas230054_%j.err

#SBATCH --no-requeue

#SBATCH -A wangyangy_g1

#SBATCH --qos=wangyangycnnl

#SBATCH -n 20

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

source /appsnew/source/vasp-5.4.4.intel2018_cuda10.1.sh

mpirun -n $SLURM_NTASKS vasp_std

5节点脚本:

#!/bin/bash

#SBATCH -J vas230054

#SBATCH -p cn_nl

#SBATCH -N 5

#SBATCH -o vas230054_%j.out

#SBATCH -e vas230054_%j.err

#SBATCH --no-requeue

#SBATCH -A wangyangy_g1

#SBATCH --qos=wangyangycnnl

#SBATCH --ntasks-per-node=28

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

source /appsnew/source/vasp-5.4.4.intel2018_cuda10.1.sh

mpirun -n $SLURM_NTASKS vasp_std

或者

#!/bin/bash

#SBATCH -J vas230054

#SBATCH -p cn_nl

#SBATCH -N 5

#SBATCH -o vas230054_%j.out

#SBATCH -e vas230054_%j.err

#SBATCH --no-requeue

#SBATCH -A wangyangy_g1

#SBATCH --qos=wangyangycnnl

#SBATCH --ntasks-per-node=28

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

source /appsnew/source/vasp-5.4.4.intel2018_cuda10.1.sh

mpirun -n 140 vasp_std

也可也这么写

#!/bin/bash

#SBATCH -J vas230054

#SBATCH -p cn_nl

#SBATCH -N 5

#SBATCH -o vas230054_%j.out

#SBATCH -e vas230054_%j.err

#SBATCH --no-requeue

#SBATCH -A wangyangy_g1

#SBATCH --qos=wangyangycnnl

#SBATCH -n 140

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

source /appsnew/source/vasp-5.4.4.intel2018_cuda10.1.sh

mpirun -n $SLURM_NTASKS vasp_std

2、2019intel CPU脚本参考

5节点脚本

#!/bin/bash

#SBATCH -J vas230054

#SBATCH -p cn_nl

#SBATCH -N 5

#SBATCH -o vas230054_%j.out

#SBATCH -e vas230054_%j.err

#SBATCH --no-requeue

#SBATCH -A wangyangy_g1

#SBATCH --qos=wangyangycnnl

#SBATCH -n 140

hosts=`scontrol show hostname $SLURM_JOB_NODELIST` ;echo $hosts

source /appsnew/source/vasp-5.4.4.intel2019_cuda10.1.sh

mpirun -n $SLURM_NTASKS vasp_std

尽量不用#SBATCH --ntasks-per-node=28,会报错:

/appsnew/opt/intel/intel2019/compilers_and_libraries_2019.4.243/linux/mpi/intel64/bin/mpirun:\

line 103: 316819 Segmentation fault (core dumped) mpiexec.hydra "$@" 0 ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download