Use the same parallel pool for multiple deployed applications

3 次查看(过去 30 天)
I have compiled my code that is making use of the distributed computing toolbox and it is deployed on a server. Multiple requests are calling the executable at the same time. What i've noticed is that each time a request is calling the executable, a new parallel pool is created to be used within this executable. Is it possible to create a 'global' parallel pool that is shared among the processes to avoid the overhead of creating a new pool each time?

回答(1 个)

Dheeraj
Dheeraj 2023-12-1
Hi,
I understand that you are trying to create a global pool of workers to avoid overhead of creating multiple pool each time.
To achieve this, you can set up a persistent parallel pool that is shared among MATLAB sessions.
Here’s a general approach how you could do this:.
% Initialize parallel pool if not already created
poolobj = gcp('nocreate');
if isempty(poolobj)
parpool(); % You can customize pool settings as needed
end
gcp” or get current pool checks the existence of current pool and utilizes them for the program.
This approach should help you share a parallel pool among multiple requests on your server, reducing the overhead of creating a new pool for each execution.
You could go through the below MATLAB’s documentation to get a better understanding of “gcp”.
Hope this helps!
  1 个评论
Walter Roberson
Walter Roberson 2023-12-1
I do not understand how this would permit multiple sessions to share a pool? The different sessions do not have access to the memory of each other to be able to find the active pool information.
Creating persistent pools that stay active for performance reasons is a service of MATLAB Production Server, not of the Parallel Server Toolbox, as far as I understand.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Deployable Archive Creation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by