matlab功能,谈谈MATLAB的并行计算功能

谈谈MATLAB的并行计算功能第一个就是多线程技术。
MATLAB支持多线程,对于线性代数运算是通过多线程BLAS实现。Intel and AMD 的BLAS都提供基本矢量和矩阵运算。
对于线性方程求解比如:特征值问题,最小平方问题,奇异值问题等是通过线性代数程序包(LAPACK)实现,比如英特尔® MKL 而对于逐元素计算的并行,是通过JIT加速器技术即just-in-time实现的。
JIT最早是R13即MATLAB6.5引进的。当时是为了解决向量 化计算任务,也就是如果我们做个对10个数据作三角计算,比如sin,我们当然不想循环10次,每次逐元素作sin计算。而是希望一次完成多计算任务。这 也是为什么有了JIT后MATLAB加速的一个原因,尤其是对for循环。强烈建议大家使用MATLAB7.0以后产品。:)
第二个就是使用并行计算工具箱PCT实现个人多核平台并行
a: 无需代码修改的并行:优化工具箱,fmincon, ga等求解器可直接并行;
b: 适量代码修改的并行:parfor指令来处理可独立执行的任务,如蒙特卡洛仿真,非常高效;
spmd指令实现数据并行计算。
c: 大量代码修改的并行:MATLAB支持MPI, 呵呵。
第三个是使用分布式计算服务器MDCS实现多核计算机群的并行。
首先上面个人机的功能都可以轻松扩展到机群上其次集群MDCS的安装是个细致活,需要安装到每个节点上。需要设置好调度员系统,以及每个调度员管理的计算节点,比如我们可以很方便的制定调度员1管理32个节点;调度员2管理另外16个节点等,这样就可以灵活提交任务。支持主流操作系统,和主流第三方调度员系统。
总之,MATLAB的并行很方便,也很高效。如果你还在抱怨MATLAB比C/C++慢的话, 第一先去查查自己m代码性能(有很多加速技巧,有空再聊),二是使用并行,parfor真的很有用。
Tags:  并行计算 matlab功能

延伸阅读

最新评论

发表评论