-2

クラスターで画像処理を行っていますが、最適なパフォーマンスに失敗しました。エッジを複製する関数と、フィルターまたはマスクを適用する別の関数がありますが、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);
4

1 に答える 1

0

spmd,x=somefunction(),end私が理解していることから、あなたはこれまでに使用せずに何かをしているだけですlabindex。これは計算を加速しません。各ワーカーはまったく同じことを行い、 を評価しx=somefunction()ます。ワーカーが 5 つの場合、関数は 5 回評価されます。を見てくださいparfor。これは通常、並列コードを記述する最も簡単な概念です。

于 2016-02-17T02:23:33.013 に答える