Unexpected speedup when running script in barebones matlab
古いコメントを表示
I have a function I've been running for the last several months, which typically takes around 2 hours to run. In order to run it on our cluster I'm now calling the same function in a headless matlab, using the following command from a terminal:
matlab -nosplash -nojvm -singleCompThread -nodesktop -r "myFunc(1,20)"
where I would otherwise use this command from within matlab:
myFunc(1,20)
While I expected this to run slightly faster (~10%) due to removing the overhead of the matlab GUI, the code is now running in under 15 minutes, about 8x faster than normal. This speedup is consistent accross several computers, including the linux cluster and two windows desktops.
My question is: are there any known reasons the same code should run this much faster, and is can I be confident that the results from running the code this way are the same as before?
For a little more detail, my function is effectively shuffling a 2d matrix of 1's and 0's, attempting to match particular distribution requirements. Most of the runtime is spent in Matlabs conv2 function, followed by find and randi.
4 件のコメント
per isakson
2014 年 7 月 28 日
編集済み: per isakson
2014 年 7 月 28 日
I cannot reproduce your result. The only reason for an 8x increase in performance that I can think of is the extra memory available to the Matlab process. Did your process run low on memory when started in the Matlab GUI?
Nelis
2014 年 9 月 3 日
Titus Edelhofer
2014 年 9 月 3 日
Interesting observation... Have you tried to run your desktop MATLAB with singleCompThread flag as well?
Nelis
2014 年 9 月 9 日
回答 (0 件)
カテゴリ
ヘルプ センター および File Exchange で Startup and Shutdown についてさらに検索
製品
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!