This is a kind of emergency for me! Here is the loop that I use SPMD in it. As you see I have cleared all the composite, yet the same error:
for io=1:Q+1
display(['io = ' num2str(io)]);
% matlabpool close
N_spmdOld=N_spmd;
if io==Q+1
N_spmd=R;
end
spmd (N_spmd)
ak=xi((io-1)*N_spmdOld+labindex);
bk=xi((io-1)*N_spmdOld+labindex+1);
K1=(bk-ak)/2;
K2=(bk+ak)/2;
Cijk_E=CPU_gPCCijk(M,p_E,Type);
PSI2Norm_E=CPU_Psi2Norm(M,p_E,Type);
A_E=K1*Cijk_E{2}+K2*Cijk_E{1};
for i=1:Size_E
A_E(i,:)=-A_E(i,:)/PSI2Norm_E(i);
end
end
odefun_E=Composite();
for k=1:N_spmd
B_E=A_E{k};
odefun_E{k}=@(t,u)(B_E*u);
end
spmd (N_spmd)
u0_E=zeros(Size_E,1);
u0_E(1)=U0;
options = odeset('MaxStep',(tn-t0)/(numt));
[~,U_E]=ode45(odefun_E,T,u0_E,options);
MeanE=U_E(:,1);
VarE=zeros(numt,1);
for i=1:numt
sum=0;
for j=2:Size_E
sum=sum+PSI2Norm_E(j)*U_E(i,j)^2;
end
VarE(i)=sum;
end
end
for k=1:N_spmd
MeanME=MeanME+MeanE{k};
end
for k=1:N_spmd
s=s+1;
UE=U_E{k};
UEsaved(:,s)=UE(:,1);
end
for k=1:N_spmd
VarME=VarME+VarE{k};
end
clear labindex ak bk K1 K2 Cijk_E PSI2Norm_E A_E B_E odefun_E u0_E options U_E sum MeanE VarE i j k
end