matlab并行计算

parfor比较难用,要求变量之间不能有干扰,必须能相互独立,这里推荐一下parfeval,相当于多开了n个matlab。

parfeval可以并行运行同一个函数,赋值不同的参数。

首先创建并行池:
p = parpool(2);%这里相当于使用了两个核心,根据你的CPU核心数和内存合理决定。
使用parfeval并行执行代码
%pool为并行池变量,就是上面创建的变量;
%fcn为函数句柄,直接在函数名前面加一个@
%numout是这个函数有几个输出参数
%X1.。。是函数的输入参数
%F = parfeval(pool,fcn,numout,X1,...,Xm)
%并行计算
f(1) = parfeval(@fprintf,0, "hello, this is first Parfor, Id is %d",1);
f(2) = parfeval(@fprintf,0, "hello, this is first Parfor, Id is %d",2);

%查看运行状态:
f.States
%取消某个后台函数的执行:
cancel(f(1))
%运行结束后,删除并行池
delete(gcp('nocreate'))

在工作区查看变量f(1)的值:
image
Diary是打印到屏幕的内容;Error是报错信息;OutputArguments是输出参数信息;State有三种状态:finished,running,quened,分别代表完成,运行中和等待中。

posted @ 2025-03-19 13:04  蕉太羊  阅读(216)  评论(0)    收藏  举报