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.