UNIPRconfigCluster creates a cluster profile for MATLAB Parallel Server
The routine is designed to use the High Performance Computing Facilities of the University of Parma (HPCUNIPR), https://www.hpc.unipr.it/dokuwiki/doku.php?id=calcoloscientifico:userguide however, it is included in the general utilities of FSDA, because it can be easily extended to exploit other cloud services. UNIPRconfigCluster creates a cluster profile for MATLAB Parallel Server on HPCUNIPR and enables the current client (Windows) PC to become a member of the remote cluster.
PREREQUISITES: this routine assumes that:
1) The user has an account on the remote server (in this case the HPCUNIPR), has generated a SSH key pairs and has appended his/her public key on the remote server inside the file named "authorized_keys" which is located in the .ssh folder of the user. For more information to have/request an account on the HPCUNIPR cluster, please see the userguide at the web address https://www.hpc.unipr.it/dokuwiki/doku.php?id=calcoloscientifico:userguide 2) MATLAB addon "Parallel Computing Toolbox plugin for MATLAB Parallel Server with Slurm" has been installed on the local computer and that the parallel computing toolbox is also installed.
3) In the local computer you have mapped a network drive to your directory in the remote system. For example in the case of the University of Parma the remote directory (assuming the user is paolo.andrei) is \\sshfs\paolo.andrei@gui.hpc.unipr.it. On windows systems the software which enable to do this mapping are called SSHFS-Win · SSHFS for Windows and can be downloaded from the github address https://github.com/billziss-gh/sshfs-win. The two .msi files to install are called sshfs-win-3.5.20357-x64.msi and sshfs-win-3.5.20357-x86.msi.
Note that the default letter of the network drive is H: but it can be changed using option MapNetworkDrive 4) In the remote system you have created the path ~/parallel/matlab Using the varargin it is possible to specify the typical parameters of the SLURM workload manager (https://slurm.schedmd.com/) that is the requested number of workers, number of threads for CPU, number of tasks per node, the amount of RAM ....
UNIPRconfigCluster(
Use varargin to specify SLURM paramters
UNIPRconfigCluster('john.doe','tasksxnode', 1,...user
,
Name, Value
)