How to use a supercomputer

18 次查看(过去 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