并行计算工具箱为并行“任务”处理(parfor,将在5.4.2节中介绍)和并行“数据”处理(spmd,将在5.5.1节中介绍)均提供了非常高效的方法。虽然在并行计算工具箱中,并行任务处理和并行数据处理方法更多地与CPU相关,而不是GPU,然而当这些方法与GPU处理相结合时,可以明显提升速度。
每个CPU内核都具有独立的MATLAB会话,称之为“worker” [1] 。当前的MATLAB版本(2013a),一台计算机可以最多拥有12个worker,并且默认worker数目由计算机可用内核的数目确定。为了将主MATLAB的会话与每个worker各自的会话区分开,称主MATLAB会话为“客户端”。因此,任何主MATLAB会话在访问worker之前和之后均是客户端。对于并行处理,我们应通过指令matlabpool准备可用的worker,如图5.3所示。
图5.3 用matlabpool指令准备可用的worker
在图5.3中,执行命令matlabpool后,能从MATLAB指令窗口中的connected to 4 workers和右下角显示的数字4,确定默认的worker数目。可以通过图5.4和图5.5所示的Manage Cluster Profile菜单,来更改默认的worker数目。
(www.xing528.com)
图5.4 进入Parallel菜单里的Manage Cluster Profiles…来更改默认的worker数目
图5.5 要修改默认worker数目,可在Cluster Profile Manager窗口中设置
如果计算机上只有4个内核,而要求8个worker,MATLAB会产生8个worker,但是它们会共享4个内核。多个worker共享同一内核有可能提升处理速度,也有可能不提升,具体情况取决于代码。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。