在matlab r2012a中使用qsub提交作业

时间:2013-04-19 10:49:43

标签: matlab qsub parfor

我正在运行一个代码,其中包含一个循环,我将分割任务并使用 qsub 作为不同的作业发送。例如我打电话:

function searchweights()
    startup
    distrJobs('UseMAR',false);
    distrJobs('UseMAR',true);
  end;
  function distrJobs(varargin)
    fprintf('entered distrJobs');
    UseMAR = false;
    w = {[0,3.^(-9:0)],[0,2.^(-7:1)]}; % grids
    for i = 1:2:numel(varargin)
      if strcmp(varargin{i},'wgrid'), w = varargin{i+1}; end
      if strcmp(varargin{i},'UseMAR'), UseMAR = varargin{i+1}; end
    end
    fprintf(' get cross validation accuracy for each grid point');
    [w1,w2] = ndgrid(w{1},w{2});
    n = numel(w1);
    for i = 1%:n
    command = sprintf('qsub  optionFile "crossvalid([%f,%f],''Xpred.mat'',''/data5/natraj/SWeight/SWeight_%d_%d.mat'',%d)"', w1(i), w2(i), UseMAR, i, UseMAR) 
    system(command);
    end;
  end;

我的交叉验证功能如下:

  function crossvalid(w,infile,outfile, UseMAR)
            startup
            load(infile);
            [A,R] = sbu.ClothParser.cross_validation(X, 'weights',[w(1),w(2)], 'UseMAR', UseMAR);
            save( outfile, 'A', 'R');
          end;

但是在我运行searchweights函数之后,qsub命令似乎根本没有运行,即它没有进入“crossvalid”函数。它在错误文件中给出了这个错误:/ data5 / natraj / matlab2012a / bin / matlab:不匹配。

*(/ data5 / natraj / matlab2012a / bin / matlab是我的matlab可执行文件)

我没有得到真正导致此错误的内容,我该怎么办呢?

操作系统是Linux。

编辑:问题似乎与qsub有关。当我使用parfor运行相同的for循环时,它正在运行。

0 个答案:

没有答案