How can I adjust the number of threads for functions based on fftw?

3 views (last 30 days)
As far as I know, embadded matlab function 'dct' is based on fftw library, and it supports 'Thread-based Environment'.
And I noticed MATLAB proccess automatically use CPU about ~1000% when I use dct function, in thread-based parallel environment, without any other instruction.
How can the function decide the proper number of threads in fft ?
Can I set the number of threads manually to improve the performance?
Thanks.

Answers (1)

Angelo Yeo
Angelo Yeo on 15 Feb 2024
You can determine the maximum number of threads with the function "maxNumCompThreads".
See the doc below for more information.
  2 Comments
현탁 박
현탁 박 on 15 Feb 2024
Thanks.
But I want to know how to set 'exact' threads which the dct function used, not the maximum threads.
When I use fftw in c code, I have to set the number of threads manually via
void fftw_plan_with_nthreads(int nthreads);
And FFTW team suggest that test various trial nthreads to find a effective thread number.
I want to follow that routine, but I cannot even configure the exact threads fftw used, and that's the problem.
Angelo Yeo
Angelo Yeo on 15 Feb 2024
@현탁 박: Would you try to set the number of workers for thread environment with the following commands?
numWorkers = 2;
parpool("Threads", numWorkers)
Note that this feature was introduced from R2022b, and details can be found in the link below.

Sign in to comment.

Categories

Find more on Audio Processing Algorithm Design in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!