performance - matlab bsxfun not multithreading? -
i using matlab r2011a , according documentation bsxfun
function multithreaded since r2009a (http://www.mathworks.com/help/techdoc/rn/br5k34y-1.html). when use bsxfun compare matrix against upper , lower bound this:
szs=10000; szt=50000; matt=rand(szt,3); mats=rand(szs,3); matsub=rand(szs,3); matslb=rand(szs,3); k=1:szs matchid = all([bsxfun(@lt,matt,matsub(k,:)) bsxfun(@gt,matt,matslb(k,:))],2); end
on task manager see 1 core of engaged. missing out or normal?
bsxfun
executes passed function in parallel launching threads inside same matlab process. using "task manager" in windows, can't see threads in execution, running processes.
just keep in mind supported multithreaded functions, speed applies if data large enough (but above threshold in example).
another option parallel computing toolbox. using matlabpool
function, can open new sessions of matlab in back, each in separate process. , when call parfor
distributes load on workers. approach scales when run on cluster of computers.
i think should possible use both in same code..
Comments
Post a Comment