上网搜了好多关于并行计算的东西,现在我就稍微总结下我的一些感受吧。
先区分下并行计算还有分布式计算:
我的理解是:我们本电脑熵进行并行计算,就是多开启几个线程(当然是在多核心的计算机上效果才明显。)
分布式则是:用于多计算机协同工作,即一个主机作为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,我们所启动的这