WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Parallel Toolbox

 

betmax
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 23.07.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.07.2014, 17:16     Titel: Parallel Toolbox
  Antworten mit Zitat      
Hi,

ich habe ein Programm geschrieben, dass ein Bild einliest und daraus einen 3D Koerper via Rotation erstellt.

Jetzt moechte ich die Rechnung beschleunigen, in dem ich die Parallel Toolbox verwende.

Hierbei teile ich das zu beschreibende Datenfeld in 4 Teile (je worker eins) auf. Leider stehen im Ergebnis nur Nullen drin.

Koennt ihr mir weiterhelfen?

Anbei der Code:

Code:

spmd
 
 codistr = codistributor1d(3, codistributor1d.unsetPartition, [nx ny nz]);

 localSize = [nx ny codistr.Partition(labindex)];

 
 
 d_local=zeros(localSize);
 nze=size(d_local,3);  
 
%  
for iz=1:nze
    z=vx3(iz);
   

    for iy=1:ny
        y=vx2(iy);
        Q=[0 y z];
       
        % berechne Schnittpunkt der Ebene durch den Testpunkt Q mit der
        % Gerade beschrieben durch Referenzpunkt plus lambda mal
        % Richtungsvektor
       
        % lambda_s = (Q - P1) * n';

        % Vorabberechnung von lambda_s fuer alle ix
        v_lambda_s= (vx1 - xstart) * n0x + (y - ystart) * n0y  + (z-zstart) * n0z;

       
        % vorabberechnung der Bedingung zur weiteren Berechnung der  Entfernung
        vflags = (v_lambda_s >= lambda_min) & (v_lambda_s <= lambda_max);
       
        for ix=1:nx
            if vflags(ix)
                % d: Laenge der Strecke (Schnittpunkt -> Testpunkt)
                Q(1)=vx1(ix);
                d = norm(Q-P1-v_lambda_s(ix)*n);
                if d <= yeg && d >= yag;
                    ixg=ceil((v_lambda_s(ix) - lambda_min)/dxim)+1;
                    iyg=ceil((d-yag)/dyim)+1;
                   d_local(ix,iy,iz)=grayimage_local(ixg,iyg);
                end
            end
        end
    end
end
  datax = codistributed.build(d_local, codistr);
   
end
 


 toc;


 
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.