Matlab 并行计算(一)

Matlab 并行计算在大数据时代必然成为发展趋势,本节给出入门级别的并行计算学习笔记:

使用并行计算前,首先需确认你的计算机,是可以多线程工作的,若是像笔者这种老爷机只有两个线程的话,那对不起,请升级;

1. 开启并行计算方法两种:a. 命令行输入:parpool(4);

               b.点击左下角---start parallel pool

              c. 来点复杂的,下面一段代码初始化Matlab并行计算环境:

%Initialize Matlab Parallel Computing Enviornment by Xaero | Macro2.cn
CoreNum=2; %设定机器CPU核心数量,我的机器是双核,所以CoreNum=2
if matlabpool('size')<=0 %判断并行计算环境是否已然启动
matlabpool('open','local',CoreNum); %若尚未启动,则启动并行环境
else
disp('Already initialized'); %说明并行环境已经启动。
end

运行成功则显示:

Starting matlabpool using the 'local' configuration ... connected to 2 labs.

如果运行出错,按照下面的办法检测:

首先运行:

matlabpool size
如果出错,说明你没有安装Matlab并行工具箱。确认安装了此工具箱后,运行:
matlabpool open local 2;
如果出错,证明你的机器在开启并行计算时设置有问题。请联系MathWorks的售后服务。


2. Matlab 程序中的for...end语句,往往是十分耗时的,在并行计算中,应修改为:parfor......end,parfor具体使用方法请参考   Matlab help.

使用parfor特别需要注意的是:(1)通常不支撑多层parfor嵌套使用,在多层for循环中,应在将最外层修改为parfor,其它保持for不变,因为目前多线程工作不同循环的数据交换;(2)parfor循环中的变量若在循环外还要使用,那么这个变量一定不能定义为临时变量,否则跳出parfor循环后,这些parfor循环内的临时变量将被通通清除,原因你懂的。

3.  在优化算法中开启并行计算方法,以遗传算法为例:

options = gaoptimset('UseParallel', true);
ga(*,*, *, options)

ga的其他用法,找matlab help哈。

4. 关闭并行计算

matlabpool close
今天学习先到这里,未完待续。。。

你可能感兴趣的:(Matlab)