Programmatically check type of parpool

24 次查看(过去 30 天)
How can I check programmatically whether an existing parallel pool is thread-based or process-based?
  2 个评论
Matthias Wurm
Matthias Wurm 2025-8-11,13:34
Some of my functions use the thread-based pool, others the process-based pool. When running a function and the wrong pool already exists, I would like to end it and create the correct one.

请先登录,再进行评论。

采纳的回答

Meg Noah
Meg Noah 2025-8-8
delete(gcp('nocreate'))
pool = parpool('Threads')
Starting parallel pool (parpool) using the 'Threads' profile ... Connected to parallel pool with 8 workers.
pool =
ThreadPool with properties: NumWorkers: 8 Busy: false FileStore: [1x1 parallel.FileStore] ValueStore: [1x1 parallel.ValueStore]
class(pool)
ans = 'parallel.ThreadPool'
% test of whether or not pool is a thread parallel pool
contains(class(pool), 'parallel.ThreadPool')
ans = logical
1
opts = parforOptions(pool)
opts =
PoolOptions with properties: RangePartitionMethod: 'auto' Pool: [1×1 parallel.ThreadPool] MaxNumWorkers: 8
class(opts.Pool)
ans = 'parallel.ThreadPool'
% test for whether or not pool is a Thread pool
contains(class(opts.Pool), 'parallel.ThreadPool')
ans = logical
1
% check to see if the same methods in pool are inherited from ThreadPool
methods(pool)
Methods for class parallel.ThreadPool: addAttachedFiles parfeval partition tocBytes listAutoAttachedFiles parfevalOnAll ticBytes updateAttachedFiles Call "methods('handle')" for methods of parallel.ThreadPool inherited from handle.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Parallel Computing Fundamentals 的更多信息

标签

产品


版本

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by