Back to the main page.

Bug 2926 - qsubcellfun doesn't forward memoverhead setting to qsubfeval

Status CLOSED FIXED
Reported 2015-07-13 12:02:00 +0200
Modified 2015-07-15 13:31:08 +0200
Product: FieldTrip
Component: qsub
Version: unspecified
Hardware: All
Operating System: All
Importance: P5 normal
Assigned to: Robert Oostenveld
URL:
Tags:
Depends on:
Blocks:
See also:

Tobias Navarro Schroeder - 2015-07-13 12:02:57 +0200

qsubcellfun accepts optional input for 'memoverhead', however, this is not being used subsequently (e.g. line 354 and line 357). Suggested Fix: original line 354: [curjobid curputtime] = qsubfeval(fcomp, argin{:}, 'memreq', memreq, 'timreq', timreq, 'diary', diary, 'batch', batch, 'batchid', batchid, 'backend', backend, 'options', submitoptions, 'queue', queue, 'matlabcmd', matlabcmd, 'display', display, 'jvm', jvm, 'nargout', numargout, 'whichfunction', whichfunction); fixed line 354: [curjobid curputtime] = qsubfeval(fcomp, argin{:}, 'memreq', memreq, 'memoverhead', memoverhead, 'timreq', timreq, 'diary', diary, 'batch', batch, 'batchid', batchid, 'backend', backend, 'options', submitoptions, 'queue', queue, 'matlabcmd', matlabcmd, 'display', display, 'jvm', jvm, 'nargout', numargout, 'whichfunction', whichfunction);


Tobias Navarro Schroeder - 2015-07-13 13:37:04 +0200

compiled functions should not get any memoverhead, since they don't require matlab.


Robert Oostenveld - 2015-07-14 17:25:35 +0200

you got me puzzled for a bit, it is actually qsubfeval that has memoverhead, but qsubcellfun does not have it (yet) but should have it (and pass it on). Also timoverhead is missing. I fixed it, it should be on home/common in 15 minutes. mac011> svn commit Sending qsubcellfun.m Transmitting file data . Committed revision 10534.


Robert Oostenveld - 2015-07-14 17:42:27 +0200

(In reply to Tobias Navarro Schroeder from comment #1) Execution of compiled functions still requires to start up the MATLAB Compiler Runtime environment (which is basically a full-blown MATLAB instance without the GUI and without any toolboxes). So it is not really smaller (nor faster, *) than a regular MATLAB. Consequently, you should specify a timoverhead and memoverhead there as well. The only advantage is that you don't need licenses and can use all of the cluster (i.e. the 'batch' queue instead of the 'matlab' queue). *) The first time you start a compiled "executable" the time overhead can be quite large, since the compiled "executable" needs to be unzipped. The result of unzipping is a directory somewhere under ~/.mcrCacheXX that contains all the files which are subsequently used by the MCR.


Robert Oostenveld - 2015-07-15 13:31:08 +0200

closed several bugs at once that were recently fixed