How to use a supercomputer

조회 수: 26 (최근 30일)
Maz
Maz 2013년 3월 18일
Hi there,
I'm working on a code which has several loops. I need to run this code for very small increments, however, when I estimated the time for this, it gave me roughly 512 days. This has been done on my computer which has only 2 cores. I have now access to a 64 and higher core supercomputer. But when I use parallel computing using parfor and matlabpool, I cannot open more than 8 cores. It doesn't really change a lot the simulations' time. I was wondering if anyone can help me use up all the 64 or higher cores for my program. Please let me know if there is anyway to activate all the possible cores to run my program in a parallel manner.
Thank you,

답변 (6개)

Walter Roberson
Walter Roberson 2013년 3월 18일
A later version of MATLAB would permit 12 cores.
Beyond that you need to use the Distributed Computing Toolbox.
  댓글 수: 1
Jan
Jan 2013년 3월 19일
Maz has written:
Thanks Walter. If I have this toolbox installed, do you think I would be able to activate all the cores on the sever using the same command (matlabpool)? Or I should do it in another way which I'm not aware of!
[Please post comments in the comment section, and not as answer - Thanks!]

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


Jan
Jan 2013년 3월 19일
편집: Jan 2013년 3월 19일
I suggest to post the relevant part of the code at first. When increasing the number of cores from 2 to 8 does not decrease the runtime significantly, expanding to 64 cores will not help much more. But I haven't seen a code, which could not profit from the massive knowhow of the forum members. While improvements of the code can increase the program by a factor of 1000, 64 cores can be 32 times faster only in the absolute not realistic best case.

Maz
Maz 2013년 3월 19일
편집: Maz 2013년 3월 19일
The code just computes some recursive relations, it is not fancy, but it has several for loops, something like this:
for alpha=1...
for beta=1...
for gamma=1...
for delta=1...
. . .
x(n+1)=f1(x(n),y(n),z(n),t(n));
y(n+1)=f2(x(n),y(n),z(n),t(n));
z(n+1)=f3(x(n),y(n),z(n),t(n));
t(n+1)=f4(x(n),y(n),z(n),t(n));
. . .
end
end
end
end
That's clear the complexity is really high. Apart from the two innermost loops, the remaining for-loops can be calculated using parallel computations.

Maz
Maz 2013년 4월 9일
It seems there is Distributed Computing Toolbox 6.1 installed on the server, but I don't know how to use, can anyone help me regarding this issue?
  댓글 수: 1
Jason Ross
Jason Ross 2013년 4월 9일
I'm assuming there is an administrator who set this up, you can probably get the fastest response from them as to how things are set up and how to submit jobs.

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


Maz
Maz 2013년 4월 11일
편집: Maz 2013년 4월 11일
yes I asked them, they told they installed it but they don't know how it works!

Jason Ross
Jason Ross 2013년 4월 12일
Basic outline of how to connect to a MDCS server using PCT:
  • If you have a recent enough MATLAB, use "Discover Clusters" under the Parallel Menu and see if your cluster shows up. Validate the profile when prompted to do so to make sure the cluster is indeed configured correctly.
  • Ask your admin staff if they have a cluster profile they used to validate that the cluster was working properly. They should be able to save/export it and then you can import it.
  • If you don't have Discover Clusters, make a new MDCS profile using the Profile Manager, filling in the required blanks and then validating it at the end.
When the cluster validates, you should be good to go. The easiest way to try out your code on the cluster is to set your profile as the default and just run your m-code. If you've got it working with the local profile already, it's highly likely that it will "just work" on the cluster. The only thing you may need to do is add file or folder dependencies in the cluster profile if you have external dependencies you need on the cluster.

카테고리

Help CenterFile Exchange에서 MATLAB Parallel Server에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by