der Code, den ich mit bin den Umgang hat Schleifen wie folgt aus:MATLAB Parfor ist langsamer als für - was ist los?
bistar = zeros(numdims,numcases);
parfor hh=1:nt
bistar = bistar + A(:,:,hh)*data(:,:,hh+1)' ;
end
für kleine nt (10).
Nach dem Timing ist es tatsächlich 100 mal langsamer als mit der normalen Schleife !!! Ich weiß, dass Parfor parallele Summen machen kann, also bin ich mir nicht sicher, warum das nicht funktioniert.
Ich betreibe
matlabpool
mit den Out-of-the-box-Konfigurationen vor meinem Code ausgeführt wird.
Ich bin relativ neu zu Matlab, und gerade begonnen, die parallelen Funktionen zu verwenden, also bitte nicht davon ausgehen, dass ich nicht etwas dummes tun werde.
Danke!
PS: Ich habe den Code auf einem Quad Core ausgeführt, also würde ich erwarten, einige Verbesserungen zu sehen.
Können Sie uns bitte die Werte von Numdims, Numcases und die tatsächlichen Timing-Zahlen mitteilen? Vielen Dank. – rwong