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

2 次查看(过去 30 天)
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.

回答(1 个)

Angelo Yeo
Angelo Yeo 2024-2-15
You can determine the maximum number of threads with the function "maxNumCompThreads".
See the doc below for more information.
  2 个评论
현탁 박
현탁 박 2024-2-15
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 2024-2-15
@현탁 박: 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.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Audio Processing Algorithm Design 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by