Which MATLAB functions benefit from multithreaded computation?

93 ビュー (過去 30 日間)
MathWorks Support Team
MathWorks Support Team 2013 年 6 月 26 日
コメント済み: Andrew Janke 2022 年 2 月 21 日
I have a machine that has multiple processors or cores. I would like to know what MATLAB functions I can expect to speed up as a result of using the multiple CPUs.

採用された回答

MathWorks Support Team
MathWorks Support Team 2013 年 6 月 26 日
As of MATLAB 7.4 (R2007a), MATLAB supports multithreaded computation for a number of functions and expressions that are combinations of element-wise functions (e.g. y=4*x*(sin(x) + x^3)). These functions automatically execute on multiple threads and you do not need to explicitly specify commands to create threads in your code.
For a function or expression to execute faster (speed up) on multiple cores, the following conditions must be true:
1) The operations in the algorithm carried out by the function are easily partitioned into sections that can be executed concurrently, and with little communication or few sequential operations required. This is the case for all element-wise operations.
2) The data size is large enough so that any advantages of concurrent execution outweigh the time required to partition the data and manage separate execution threads. For example, most functions speed up only when the array is greater than several thousand elements.
3) The operation is not memory-bound where the processing time is dominated by memory access time, as is the case for simple operations such as element-wise addition. As a general rule, more complex functions speed up better than simple functions.
The following functions include multithreaded implementations as of MATLAB 7.14 (R2012a); this list is not exhaustive, and other MATLAB functions may be multithreaded by virtue of being implemented atop the functions listed below. Also note that multithread implementations may not apply to all arguments combinations and data types/shapes/sizes. Functions are listed here in the order they appear in the MATLAB documentation.
MATHEMATICS
Arrays and matrices
•Basic information: ISFINITE, ISINF, ISNAN, MAX, MIN
•Operators: +, -, .*, ./, .\, .^, *, ^, \ (MLDIVIDE), / (MRDIVIDE)
•Array operations: PROD, SUM
•Array manipulation: BSXFUN, SORT
Linear algebra
•Matrix Analysis: DET, RCOND
•Linear Equations: CHOL, INV, LDL, LINSOLVE, LU, QR
•Eigenvalues and singular values: EIG, HESS, SCHUR, SVD, QZ
Elementary math
•Trigonometric: ATAN2, COS, CSC, HYPOT, SEC, SIN, TAN, including variants for radians, degrees, hyperbolics, and inverses.
•Exponential: EXP, POW2, SQRT
•Complex: ABS
•Rounding and remainder: CEIL, FIX, FLOOR, MOD, REM, ROUND
•LOG, LOG2, LOG10, LOG1P, EXPM1, SIGN, BITAND, BITOR, BITXOR
Special Functions
•ERF, ERFC, ERFCINV, ERFCX, ERFINV, GAMMA, GAMMALN
Data Analysis
•CONV2, FILTER, FFT and IFFT of multiple columns or long vectors, FFTN, IFFTN
  2 件のコメント
Royi Avital
Royi Avital 2014 年 4 月 8 日
Any updates on this list?
Andrew Janke
Andrew Janke 2022 年 2 月 21 日
Any chance for an updated list of mulithreaded/multicore-supporting Matlab functions, now that we're up to R2021b?

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMultirate Signal Processing についてさらに検索

製品


リリース

R2007a

Community Treasure Hunt

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

Start Hunting!

Translated by