Matlab Pool - Multiple Machines
Ältere Kommentare anzeigen
I have an iterative model which due to it's nature takes days to run. If we assume the model is already optimised the only way to decrease the runtime is by using a parfor.
The machine with Matlab on has two cores available, however I do have access to several other machines on the same network with multiple cores. My question is, how do I hook these other machines in to my Matlab pool, so far I have only been able to add local processors?
Antworten (2)
Titus Edelhofer
am 5 Aug. 2012
1 Stimme
Hi,
using the Parallel Computing Toolbox only gives access to start local workers only, i.e., on the same (physical) machine. So one thing you could do is to log on to the more powerful machine, start MATLAB there and run the program.
The MATLAB Distributed Computing Server (<http://www.mathworks.com/products/distriben>) allows you to distribute your computations across several machines.
Titus
4 Kommentare
Alex Gregory
am 5 Aug. 2012
Titus Edelhofer
am 5 Aug. 2012
The MATLAB Distributed Computing server is installed on the cluster machines. Then workers are started, this should all be done by the IT. From a user perspective nothing get's changed: you start matlabpool with a different configuration, the code itself is not changed.
Walter Roberson
am 5 Aug. 2012
Note: the additional machines must be fairly similar for DCS to work. Same operating system, some architecture, some 32 vs 64 bits.
Edric Ellis
am 7 Aug. 2012
Actually, MDCS does not require homogenous machine types or bitness - but running communicating jobs (such as MATLABPOOL) does. It's not recommended to mix worker types though. In fact, it's best to have the workers as similar as possible to avoid strange performance problems.
Walter Roberson
am 5 Aug. 2012
0 Stimmen
Caution: parallel computing is not always faster. Parallel processing has a lot of overhead to start up, so if the tasks do not happen to match the strengths of the parallel processing, the code can end up being much slower.
Roughly speaking, if you can make long stretches of computation be completely independent of each other, then you are more likely to get benefits from parallel processing. The opposite of this is tightly bound iterative code where each calculation depends heavily on calculations done quite recently: that kind of code benefits more from faster CPUs instead of from multiple cores. (And if you want faster CPUs, and your budget has some spare room, consider the systems from Liquid Nitrogen Overclocking)
Kategorien
Mehr zu Job and Task Creation finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!