[Matlab Parallel Server] what happens if we assign more than 1 core to a worker, say 5 cores to a single worker, is that a possibility?

I am trying to setup matlab parallel server for my company, and I want to know if assigning multiple cores to a single worker is a possibility or feasible/optimal. Basically how the licensing works, any help is appreciated.

 Réponse acceptée

I do not know if it affects licensing, but assigning more than one core to a worker is certainly possible.
More cores per worker enables automatically parallelization of a number of mathematical operations.
For example if you have A+B where A and B are matrices, then automatic parallelization will divide the arrays into as many sections as there are available cores, and then the + operation would be carried out by section, one section per core.
Not all operations can be automatically run in parallel. For example if you had a loop,
for K = 1 : 1e6; C(K) = A(K) + B(K); end
then it might have to be run in serial. However, some (undefined) coding structures can be automatically detected and run in parallel when they look like they would run in serial.
If you are operating on "small" arrays, then automatic parallelization might not kick in. Automatic parallelization requires some overhead to set up, and MATLAB is smart enough to estimate whether the amount of work that would be saved by running in parallel would make it worthwhile to run in parallel. As a rough estimate, historically the breakpoint for simple operations like A+B was around 10000 elements, with smaller arrays being handled on a single core.
Some mathematical library calls such as svd() and eig() automatically use multiple cores when they are available.
Generally speaking, the more your code looks like mathematical operations on large arrays, the more likely it is that automatic parallelization will be beneficial; the more your code looks like loops operating on one scalar at a time, the less likely it is that automatic parallelization will do any good.

3 commentaires

Thanks for the answer, I want to specifically know if it affects the licensing, can you tell me where can I get an answer quick. Thanks.
I think you would need to talk to Mathworks Sales for that.
However, I note that https://www.mathworks.com/products/matlab-parallel-server/license-model.html talks about the number of computation engines started. To me that would imply that the key is the worker count, with the core count per worker not being relevant.
For example, if you had 64 workers with one core each, that would start 64 computation engines and you would need to be licensed for 64. If you instead started 16 workers with 4 cores each, that would start only 16 computation engines and you would only need to be licensed for 16.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Startup and Shutdown dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by