我正在集群中进行图像处理,但未达到最佳性能,我有一个复制边缘的函数和另一个应用过滤器或掩码的函数,但是当执行MATLAB SPMD时使用该程序不是随着时间的增加,在增加工人的同时满足每一个。
enter code here
p1=parpool('local',4);
addAttachedFiles(p1,{'Max_Duplicado_pixel.m',
'funcion_Aplicacion_mascaras.m'});
tic
spmd
d1=codistributor1d(2);
c = codistributed(imA, d1);
som=funcion_Aplicacion_mascaras(
Max_Duplicado_pixel(getLocalPart(c),sombrero),sombrero);
salida=gcat(som);
end
imshow(salida{1});
end
delete(gcp);
enter code here
这是应用睫毛膏的功能
enter code here
x=ceil(R1/2):R-floor(R1/2);
y=ceil(R1/2):C-floor(R1/2);
for b=-floor(R1/2):floor(R1/2)
for a=-floor(R1/2):floor(R1/2)
salida(x,y)=salida(x,y)+single(imagen(x+b,y+a))
*sombrero(b+ceil(R1/2),a+ceil(R1/2));
end
end
temp=salida(ceil(R1/2):R-floor(R1/2),ceil(R1/2):C-floor(R1/2));
image_procesada=uint8(temp);
答案 0 :(得分:0)
根据我的理解,您只是做selSQL += String.Format(@" WHERE [{0}] {1} ""{2}""", sFieldArr[i, 0], op, sFieldArr[i, 1]);
之类的事情,而没有使用spmd,x=somefunction(),end
。这不会加速您的计算,每个工作人员将完成相同的工作,评估labindex
。对于5名工人,该功能将被评估5次。看一下x=somefunction()
,这通常是编写并行代码最简单的概念。