MATLAB: Do concurrent processes, run in individuals windows, on multiple cores, require multiple licenes

concurrent processeslicensing

Enabling a process for a customer. Will be suggesting that they buy a multi-core workstation and drive much of the application to a GPU, however the best use of resources will be to create concurrent processes. Does this require a license for each launched process?

Best Answer

You will defintely need to have the Parallel Computing Toolbox to access the GPU from MATLAB. The 12 core limit is for the "local" schedeuler, which is also part of the Parallel Computing Toolbox. This will enable the use of parfor, spmd, job/task and batch constructs that will allow parallel/distributed computing.
If you are going to buy a workstation and try and use all 12 cores, keep the following in mind:
  • Make sure you are counting real cores, not "virtualized" or "hyper-threaded" ones. If you are doing compute-heavy work, you will be using the FPU and tasks will queue up on the processor waiting for math operations to complete.
  • Use 2 GB RAM per worker process and one worker per core as a starting point. If you want to run 12 workers, start with 24 GB RAM and go up from there.
  • Starting a matlabpool is very similar to starting an instance of MATLAB. If you are going to be doing this a lot, consider specing out a SSD in the workstation (at least for the OS and applications), as application start-up time will be reduced considerably versus a spinning hard drive.
And if you want to just open multiple windows, you can do that with base MATLAB.