从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, ROUND
•log, log2, log10, log1p, expm1, sign, bitand, bitor, bitxor
特殊功能
•erf, erfc, erfcinv, erfcx, erfinv, gamma, gamma
数据分析
•多列或长向量的CONV2, FILTER, FFT和IFFT, FFTN, IFFTN