필터 지우기
필터 지우기

Utilising Multicore on Linux Matlab 7.11 64-bit

조회 수: 5 (최근 30일)
Sanjay Manohar
Sanjay Manohar 2011년 3월 30일
I'm unable to get multicore working.
I am running the following in a script:
function partest
X=ones(10000);
for(a=1:100);
X.*X;
end
This is what my System Monitor shows: http://smanohar.com/matlab-multicore.png. As you can see, only one core is being used, despite the operation being element-wise!
I also get:
>> maxNumCompThreads
ans =
6
My system is:
Matlab: 7.11.0.584 R2010b, 64-bit (glnxa64)
OS: 64-bit Ubuntu 10.04, Kernel 2.6.32-29
CPU: Intel Xeon W3580, 6-core each @3.33 GHz
Why isn't it using all 6 CPUs? I thought that element-wise multiplication was parallellised?
Incidentally, Parallel toolbox is also installed. Under Parallel/Configurations Manager/local, when I press Start validation, the System monitor shows all cores are used for "Parallel Job" and "Matlabpool".

채택된 답변

Jiro Doke
Jiro Doke 2011년 4월 5일
Element-wise matrix operations are multithreaded by default in your MATLAB version. In fact, this has been true since R2008a.
For your problem, it seems like X.*X is too small of a computation to see the multithreaded effect. From your System Monitor image, the whole computation took about 20 seconds, which means that each loop (X.*X) is taking only about 0.2 seconds, so that's not long enough to see the effect. Note that for-loops are not multithreaded. To see the effect, you need to be looking at a long (single) computation. Try something like
X=ones(10000);
sqrt(X).^sqrt(X).^sqrt(X).^sqrt(X).^sqrt(X).^sqrt(X)
or something like that.
  댓글 수: 1
Sanjay Manohar
Sanjay Manohar 2011년 4월 13일
Aha! wonderful, thanks.
I tried a longer operation, as you suggested,
and it did indeed use all my CPUs!

댓글을 달려면 로그인하십시오.

추가 답변 (1개)

Murugavel Sivagnanam
Murugavel Sivagnanam 2011년 3월 31일
MALTAB by default is a single threaded process. Though you have multicore process, it does not use multiple cores to perform calculations.
Also the functions that you have written does not use any of the features of Parallel Computing Toolbox. Refer to the following documentation for more information on using the parallel computing toolbox.
  댓글 수: 3
Konrad Malkowski
Konrad Malkowski 2011년 4월 5일
Hi Sanjay,
Did you open the matlabpool?
Jiro Doke
Jiro Doke 2011년 4월 5일
Correction on this answer. In R2010b (since R2008a), MATLAB automatically multi-threads certain operations (linear algebra and element-wise computations).

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Introduction to Installation and Licensing에 대해 자세히 알아보기

제품

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by