Ich versucheWarum verwendet Arrayfun nur einen einzelnen Kern?
% matlabpool open 2; % line 1
tic; arrayfun(@(x) sum(sum(rand(1000))), [1 : 100]); toc;
Elapsed time is 4.070030 seconds.
zu schätzen, wenn ich die erste Zeile Kommentar-, so dass ich einen Pool von 2 Arbeiter schaffen, bekomme ich die gleiche Zeit Ergebnis.
Warum einige offensichtliche Systemfunktionen nicht automatisch im Parallelmodus ausgeführt werden? Hat Matlab eine ähnliche Funktion wie arrayfun für GPU, wenn wir parallel laufen?
Vielen Dank. Habe ich richtig verstanden, dass GPU nur für riesige Arrays und einfache Operationen (wie. +, .-,. *, ./) wirklich schnell sein kann? Nicht alle Operationen von https://www.mathworks.com/help/distcomp/run-built-in-functions-on-a-gpu.html können schnell für GPU sein? – user7484269
@ user7484269 Nein, alle diese Funktionen können dank der GPU beschleunigt werden, ich bezog mich explizit auf 'arrayfun'. Nur 'arrayfun' kann elementweise Operationen ausführen. Es gibt jedoch keinen signifikanten Overhead, wenn Daten vor der Berechnung an die GPU übertragen werden. – Suever
Ok, nochmals vielen Dank.Und als letzte Frage zu diesem Thema: Welche mittlere Zeitbeschleunigung haben Sie mit gpu bei der Arbeit mit Matlab erreicht? – user7484269