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?
No products are associated with this question.
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.
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)