We have several linux workstation and each of them has matlab installed on it. They share the same data file system (NFS). Unfortunately we do not have the distributed computing toolbox and the management is not planning to buy it. So I am trying to find a workaround to use the workstations in parallel for my computation. I could think of 3 ideas, and I'd like to get some suggestions and comments from the community.
1) execute matlab via ssh: ssh user@host 'matlab -nodisplay -r "myfun(1,2,3)" '. This would require a script to handle the different connections and feed new data to each as soon as computation is over. There are few issues though.
- How to get the output of the function? An easy solution is to write the result to a MAT file. When the whole computation is over, the resulting MAT files can be aggregated in one consistent result.
- this implies restarting matlab each time, which is a waste of time
2) use the C interface to matlab, in particular the engopen call, which, under unix, accepts the host name as argument to open a matlab session on a remote machine. The main program in charge of distributing the computation would then have to be written in C. This would solve the problem of reopening and closing a matlab session for each iteration...