matlab并行运算(parallel computing)

上网搜了好多关于并行计算的东西,现在我就稍微总结下我的一些感受吧。

先区分下并行计算还有分布式计算:

我的理解是:我们本电脑熵进行并行计算,就是多开启几个线程(当然是在多核心的计算机上效果才明显。)

分布式则是:用于多计算机协同工作,即一个主机作为server分配job,其他得到job的client根据主机的要求进行计算,最后将结果传递给server.


首先是了解matlabpool这个线程池(或者说是matlab的工作池),原来我们只启动一个matlab主程序的时候只有一个client在工作,当我们开启这个工作池了以后,会添加多个worker到池子里工作。


首先给大家推荐一个英文的教程:http://people.sc.fsu.edu/~jburkardt/m_src/matlab_parallel/matlab_parallel.html  感觉更全面。

parallel被称作本地并行运算,这种本地的并行运算需要工具箱:MATLAB Parallel Computing Toolbox的支持(查看方法 输入ver命令即可查看)

当然matlab也支持用多台机器进行分布式计算,被称作远程的并行计算。除了上述工具箱外,还需要MATLAB Distributed Computing Server支持。具体关于分布式的计算我没用到,也就不谈了。这里主要说下本地进行并行计算的方法。

环境:至少MATLAB version 2008a or later. 计算机最好核心数大于1的哈,不然所谓的并行就只是并发了。。

首先正常启动matlab,我们所启动的这个matlab进程被称作client,待会将要被开启的多个lab(实验室,我们姑且叫子进程哈)则被称作workers。

所以并行运算其实就是主线程和子线程的一个任务分配和汇总的实现。这种实现过程需要三个基本步骤:

1、需要创建几个workers

2、把任务划分,然后分配给workers

3、整合结果,释放worker

你可能感兴趣的:(模式识别)