How can I check programmatically whether an existing parallel pool is thread-based or process-based?

댓글 수: 2

Raymond Norris
Raymond Norris 2025년 8월 11일
@Matthias Wurm I'm currious why this would matter?
Matthias Wurm
Matthias Wurm 2025년 8월 11일
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일

3 개 추천

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.

댓글 수: 1

Matthias Wurm
Matthias Wurm 2025년 8월 8일
Thank you! I was not aware of the "class()" function.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Parallel Computing Fundamentals에 대해 자세히 알아보기

제품

릴리스

R2024b

태그

질문:

2025년 8월 8일

댓글:

2025년 8월 11일

Community Treasure Hunt

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

Start Hunting!

Translated by