哪些MATLAB函数受益于多线程计算?

203次浏览(过去30天)
我有一台有多个处理器或核心的机器。我想知道使用多个cpu后,我可以预期哪些MATLAB函数会加速。

接受的答案

MathWorks支金宝app援小组
从MATLAB 7.4 (R2007a)开始,MATLAB支持对一些金宝app函数和表达式进行多线程计算,这些函数和表达式是元素函数的组合(例如y=4*x*(sin(x) + x^3))。这些函数自动在多个线程上执行,您不需要显式地指定命令来在代码中创建线程。
为了让函数或表达式在多核上执行得更快(加速),必须满足以下条件:
1)函数在算法中执行的操作很容易被分割成可以并发执行的部分,并且需要很少的通信或很少的顺序操作。这是所有元素操作的情况。
2)数据足够大,所以并发执行的任何优势都超过了划分数据和管理独立执行线程所需的时间。例如,大多数函数只有在数组大于几千个元素时才会加速。
3)该操作不受内存限制,处理时间由内存访问时间决定,就像简单的操作(如元素添加)一样。作为一般规则,更复杂的函数比简单的函数更快。
以下函数包括MATLAB 7.14 (R2012a)的多线程实现;这个列表并不详尽,其他MATLAB函数可能是多线程的,因为它们是在下面列出的函数之上实现的。还要注意,多线程实现可能不适用于所有参数组合和数据类型/形状/大小。函数在这里是按照它们在MATLAB文档中出现的顺序列出的。
数学
数组和矩阵
•基本信息:ISFINITE, ISINF, ISNAN, MAX, MIN
•操作符 : +, -, .*, ./, .\, .^, *, ^, \ ( MLDIVIDE) / (MRDIVIDE)
•数组操作:PROD, SUM
•数组操作:BSXFUN, SORT
线性代数
矩阵分析:DET, RCOND
•线性方程:CHOL, INV, LDL, LINSOLVE, LU, QR
•特征值和奇异值:EIG, HESS, SCHUR, SVD, QZ
小学数学
•三角函数:ATAN2, COS, CSC, HYPOT, SEC, SIN, TAN,包括弧度,度,双曲和逆的变体。
指数:EXP, POW2, SQRT
•复杂:ABS
•舍入和余数:CEIL, FIX, FLOOR, MOD, REM,舍入
•log, log2, log10, log1p, expm1,符号,bitand, bitor, bitxor
特殊功能
•erf, erfc, erfcinv, erfcx, erfinv, gamma, gammaln
数据分析
•CONV2, FILTER,多列或长向量的FFT和IFFT, FFTN, IFFTN
5个评论
弗雷德里克·Lotse
弗雷德里克·Lotse 2015年2月9日
如果你有一台使用电池的笔记本电脑,你必须改变电源设置以获得最大性能。

登录评论。

更多答案(0)

下载188bet金宝搏


释放

R2007a

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!