在多核心计算平台上,matlab的parallel是极好的工具。
如在i7 8350H平台上,对BP神经网络多次训练,每次训练改变参数以寻找最优参数时,加速效果非常显著:
for循环:
S1从1到40四十个网络,训练某个模糊问题,总耗时 184.388629 秒。
parfor循环:
S1从1到40四十个网络,训练某个模糊问题,总耗时54.493658 秒。
资源利用很高效:
当然,这涉及任务调度、资源交换等问题,matlab多核心并行性能也做不到随核心数线性地提升。但是作为一项通用性较强的功能,已经非常不错。
如果有更强并行需求,应该考虑使用CUDA。
留言