用户工具

站点工具


adf:并行数的设置

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
adf:并行数的设置 [2016/03/02 21:42] liu.junadf:并行数的设置 [2016/05/10 23:00] (当前版本) – 移除 liu.jun
行 1: 行 1:
-====== 如何进行ADF并行计算 ====== 
  
-ADF已经自动包含了MPI等并行运算工具,不需要额外的编译。事实上重新编译对计算速度影响也很小。 
- 
-**一,使用图形界面提交任务(适合于Linux系统单个工作站、Windows系统;不适合于Linux集群、超算中心)** 
- 
- 
-使用图形界面提交任务,环境变量中NSCM的设置不能直接起效,而被图形界面中的Sequential或者interactive两种Queue中的NSCM所覆盖。改动方式: 
- 
-ADFjobs界面:Queue — Edit Queue — Sequential,将export NSCM"改为export NSCM=N" (其中N为希望设置的并行数,例如4、8、14等等。N必须小于或等于license许可并行数) 
- 
-另外,可以将Queue — Edit Queue — interactive,中的export NSCM"改为export NSCM=N"(其中N为希望设置的并行数,例如4、8、14等等。N必须小于或等于license许可并行数) 
- 
-Sequential和interactive的区别: 
- 
-前者:所有任务次第执行 
- 
-后者:所有任务一起运行 
- 
-在ADFinput界面使用File — run提交,则默认采用Sequential方式。如果要改成Interactive方式运行,可以在ADFjobs界面,选中需要运行的任务,然后为它们指定为Interactive队列(指定方式:按住Shift键,选中多个任务后,Queue — Interactive),然后在这些任务呗选中的状态下,点击jobs — run,那么被选中的任务就按照Interactive的方式运行。 
- 
-**二,使用命令行提交(适合没有图形界面的单个工作站、集群、超算中心)** 
- 
-备注:*表示文件名,例如water.run文件,如下省略为*.run,在使用的时候使用具体名字代替*即可。 
- 
-**1 单个工作站,直接运行*.run文件:** 
- 
-  *   上传*.run文件到目标文件夹; 
-  *   cd 目标文件夹 
-  *   dos2unix *.run 
-  *   chmod 700 *.run 
-  *   nohup ./*.run >*.out & 
-  *   ctrl d退出,关闭命令行窗口。注意,如果不按ctrl d退出,直接关闭命令行窗口,则任务也自动被关闭。 
-  *   监测计算进度:tail -f /目标文件夹/logfile 
- 
-如果不设置NSCM,那么提交任务的时候,自动以该节点最大核数并行,无论是否有其他进程在运行中。 
- 
-如果要指定并行数,则在任务提交前命令行执行export NSCM=N即可,N表示您希望的并行数。 
- 
-在这种运行方式下,系统的NSCM直接生效。即环境变量中设置的NSCM=N,则运行的时候,并行数即为N。N不能大于license允许的核数。如果没有设置NSCM,那么NSCM则自动赋值为运行计算的计算机的总核数。 
- 
-如果是使用*.run文件提交,运行完毕之后,手工修改logfile为*.logfile,TAPE21改名为*.t21,out改名为*.out。 
- 
-**2 集群通过PBS或LSF脚本提交任务,提交*.job或者*.run均可:** 
- 
-**0)**首先,在本地Windows服务器,运行一下该任务,运行几秒之后即可kill该任务,从而产生job文件。 
- 
-**1)**上传*.job文件某个工作目录(完整目录不能含空格、中文字符),并将PBS脚本文件或者LSF脚本文件也放置在该目录(脚本内容介绍见下方)。 
- 
-**2)**修改*.job文件中的一个路径参数:*.job文件如果是在Windows准备的,那么有一个执行路径提交到Linux集群之后,需要改动为集群中工作目录的值。例如,在本地Windows产生的*.job文件包含如下一段: 
- 
-  # -------------------------------------------------------------------------------- 
-  # on a batch system, the start.cmd will replace the next line to set DIRN properly 
-  # since the batch system may make a copy of the job script 
-  # -------------------------------------------------------------------------------- 
- 
-  DIRN="D:/ADF_DATA" 
- 
-如果当前工作目录(也就是上传到集群的*.job和*.pid文件所在的路径),例如为/home/test/adf/,则将"D:/ADF_DATA"替换为“/home/test/adf/”,并保存即可。另外如果引用了*.t21文件(例如restart、片段分析等任务),需要将对应的*.t21文件上传上来,并需要将*.t21的路径改为实际Linux系统下的路径。 
- 
-如果是在集群上通过ADFGUI保存任务到工作目录,那么这个值应该是不用修改的。 
- 
-如果是进行片段分析计算,那么就会产生“片段数+1”个job文件,应该把所有的job文件都上传上去,并修改其中的主job文件,片段的job文件不需要修改。修改主job文件中所有关于Windows系统下,任务所在目录改为Linux系统下,任务所在目录。 
- 
-**3)**修改文件权限和格式: 
- 
-  dos2*unix *job 
-  chmod 700 *job 
-   
-**4)**通过bsub ./*.lsf或者./*.pbs提交任务。 
- 
-PBS或LSF脚本内容:  
- 
-需要将ADF的环境变量写入脚本,如下是一个LSF脚本范例(最后两行是关于ADF软件及运行的): 
- 
-  #!/bin/sh 
-  APP_NAME=intelg_small 
-  NP=16 
-  NP_PER_NODE=4 
-  RUN="RAW" 
-  source /home-gg/users/nscc1143/ADF/adf2014.06/adfrc.sh 
-  /home-gg/users/nscc1143/ADF/*.job >out 
- 
-**PBS脚本也是类似的,只需要在标准脚本的基础上,写入最后两行相关的内容即可。**以下为PBS脚本的例子: 
- 
-  #!/bin/bash 
-  #PBS -N cc  
-  #PBS -l nodes=1:ppn=20 
-  #PBS -q long 
-  #PBS -j oe 
-  #PBS -l walltime=168:00:00 
-  NPROCS=`wc -l < $PBS_NODEFILE` 
-  cd $PBS_O_WORKDIR 
-  cat $PBS_NODEFILE > machinefile 
-  source /home-gg/users/nscc1143/ADF/adf2014.10/adfrc.sh 
-  /home-gg/users/nscc1143/ADF/*.job >out 
- 
-通过*.job这种方式提交任务,则不需要手动修改logfile、TAPE21、out。事实上在Linux工作站上也可以这样提交,但工作站一般不会安装PBS或者LSF,因此只需要上传*.job,并按第2)、3)步修改之后,直接通过./*.job运行即可。 
- 
-对于片段分析这样的多job文件任务,最后一行写入的应该是主job文件的文件名。主job文件会在运行的过程中自动调用各个片段计算的job文件。 
- 
-**如果运行有问题,可以咨询support@fermitech.com.cn。** 
adf/并行数的设置.1456926138.txt.gz · 最后更改: 2016/03/02 21:42 由 liu.jun

© 2014-2022 费米科技(京ICP备14023855号