在一个工作中创建多个任务或创建多个作业每一个任务吗?
4视图(30天)
显示旧的评论
我想运行多个完全独立的脚本,它只与对方通过1或2参数,同时,所以我把主要部分写成一个函数并传递参数createJob和createTask遵循:
% Run_DMRG_HubbardKondo
UList = (1、2、4、8);
J_UList = [1, 0:0.2:2];
c = parcluster;
c。NumThreads = 3;
j = createJob (c);
为国际单位= 1:元素个数(UList)
为iJ_U = 1:元素个数(J_UList)
t = createTask (j @DMRG_HubbardKondo 0, {{UList (iU) J_UList (iJ_U)}});
结束
结束
提交(j);
等待(j,“完成”)
删除(j);
清晰的j t
退出
函数DMRG_HubbardKondo (U_Job J_U_Job)
…%(跳过)
结束
如果我多次createJob createTask每一个?我知道有一些选项类似于createJob attachedfile。但对
独立性
createJob和createTask之间,有什么区别?我问关于独立性的原因是里面有setenv DMRG_HubbardKondo函数为:
函数DMRG_HubbardKondo (U_Job J_U_Job)
…%(跳过)
DirTmp =“/ tmp /天鹅”;
setenv (“LMA”DirTmp)
帕拉。DateStr = DateStr (datetime (“现在”),30);
% RCDir命名参数和datetime
帕拉。RCDir = [DirTmp,' / RCStore '、Para.DateStr sprintf (“U % .4gJ % .4g”(U_Job J_U_Job])];
k = [strfind Para.Symm,“俗”),strfind (Para.Symm,“v”));
如果~ isempty (k)
RC = Para.RCDir
如果存在(RC,“dir”)= = 0
mkdir (RC);如果不存在%创造
流([RC,“。\ n”])
结束
setenv (“RC_STORE”、RC);
setenv (“CG_VERBOSE”,' 0 ');
结束
…%(跳过)
结束
主要部分DMRG_HubbardKondo将使用一些mex-compiled功能像
wigner-eckart定理
。具体地说,它将生成和检索数据(cg系数)RCDir在每一个步骤。我想这些
mex-compiled
函数会找到相应的RCDir由“
采用
“我想知道
createJob / createTask是否正常工作
。
我知道
sbatch工作
通过编写一个脚本:
函数GenSubmitsh(分区、nodeNo TLim NCore, mem, logName, JobName, ParaName, ScriptName)
如果isnan (nodeNo)
nodeStr =“# # SBATCH——节点列表=汽车\ n ';
其他的
nodeStr = sprintf (“# SBATCH——节点列表=节点% g \ n ',nodeNo);
结束
Submitsh = sprintf ([
“# !/bin/bash - l \ n”,…
“# SBATCH——分区= % s \ n ',…
nodeStr,…
“# SBATCH——排除= node1051 \ n ',…
# SBATCH——时间= % s \ n ',…
“# SBATCH——节点= 1 \ n”,…
“# SBATCH——ntasks = 1 \ n”,…
“# SBATCH——cpus-per-task = % g \ n ',…
“# SBATCH——mem = % s \ n ',…
“# SBATCH——输出= % s \ n ',…
“# SBATCH——作业名= % s \ n ',…
' \ n ',…
“# #不删除或改变这条线在GU_CLUSTER \ n”,…
'出口OMP_NUM_THREADS # # = $ SLURM_CPUS_PER_TASK \ n ',…
' \ n ',…
“回声”工作开始“\ n”,…
“日期\ n”,…
' \ n ',…
“matlab -nodesktop -nojvm -nodisplay - r " ParaName = " % s " % s " \ n ",…
' \ n ',…
“回声”工作完成“\ n”,…
“日期\ n”),…
分区,TLim NCore, mem、logName JobName, ParaName, ScriptName);
文件标识= fopen (“Submit.sh”,' w ');
流(文件标识,' % s ',Submitsh);
文件关闭(文件标识);
结束
我希望createJob将等同于工作(即。完全独立的)。
总之,我的问题是:
- 区别在一个工作中创建多个任务,每个都有一个任务创建多个工作。
- createJob / createTask工作为我的函数吗?