Run serial code on parallel cluster interactively

2 次查看(过去 30 天)
Hi, I need help from the experts.
Suppose I have a slow machine, and I have an access to a fast parallel cluster. Let say my code is fully serial - no parallel language constructs like parfor or spmd. If I want to run the code on the cluster, of course I can submit a batch job using batch function. But, what if I want to run interactively? So far, interactive processing only allows parallel programming, but if my machine is extremely slow, using even one worker on the cluster is still benificial.
What I do currently is using this workaround:
parpool('MyCluster', 1);
spmd (1)
MyVariable = myFunction.
end
MyVariable = MyVariable{:}
I am looking for a more elegant (official?) solution. Using an spmd as a workaround is far from elegant: (i) codes need to be enclosed by spmd blocks, (ii) variables created in spmd blocks are Composite objects that must be indexed by curly braces first before they can be used/displayed normally.
Please help and suggest a better way. Thanks!
  6 个评论
Damian Pietrus
Damian Pietrus 2024-1-16
Yes, if you wanted to launch MATLAB directly on a compute node, you'd have to connect to it via RDP or SSH depending on it's operating system. You'd then treat it the same as any other MATLAB session, though I'll warn again that you should be cautious of resource contention if you were to try this.
I've put in an internal enhancement request for this type of interactive workflow from a remote client with MATLAB Job Scheduler so our dev team can take it under consideration.
Khairul Adib Yusof
Khairul Adib Yusof 2024-1-17
Thank you Damian for the tremendous help! Looking forward to a better implementation of parallel computing in this manner.

请先登录,再进行评论。

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Third-Party Cluster Configuration 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by