Frage Wie beschleunigt man MATLAB-Codes?


So wie MATLAB eine mathematische Sprache ist, ist ihre Geschwindigkeit nicht so schnell, wie sie es zu sein scheint. Ich frage mich, was sind die allgemeinen Praktiken, um die Ausführung eines MATLAB-Codes zu beschleunigen? Zum Beispiel weiß ich, dass wenn man für Schleifen arbeitet, man Berechnungen im Vektor / Matrix-Format machen kann, sieht er eine Beschleunigung beim Ausführen des Codes.

Ich frage mich, was andere Vorschläge sind.


5
2017-07-15 22:23


Ursprung


Antworten:


Sie könnten damit beginnen, einige Möglichkeiten zu überdenken, über die Vektorisierung nachzudenken Hier.
Danach wird das PDF gegeben Hier, obwohl unvollständig, bietet viele Matlab-Idiome, die eine gute Leistung geben.


1
2017-07-15 22:26



Hier sind ein paar grundlegende Performance-Tipps:

  1. Erfahren Sie, wie Sie den Profiler verwenden, um zu verstehen, welche Teile Ihres Berechnung ist langsam
  2. Begrenzen Sie die Mengen teurer Funktionsaufrufe über die Vektorisierung
  3. Weisen Sie Arrays vor, statt sie in Schleifen anzuordnen
  4. Verwenden Sie Multithread-Funktionen (z. B. bsxfun)
  5. Verwenden Sie die neueste Version von Matlab - dort haben in den letzten 5 Jahren enorme Leistungssteigerungen
  6. Verwenden Sie die parallele Toolbox für Multicore- und / oder GPU-Verarbeitung
  7. Verwenden Sie effiziente Algorithmen
  8. Verwenden Sie gegebenenfalls Java oder C / C ++ - Code (obwohl die Beschleunigung enttäuschend sein kann)

5
2017-07-16 01:47



Wenn Sie viele leicht parallelisierbare Operationen durchführen, parfor wird automatisch parallelisieren for Schleifen: http://www.mathworks.com/help/toolbox/distcomp/parfor.html


4
2017-07-15 22:34



Installieren von Lightspeed

Ich habe kürzlich den frustrierenden Prozess der Installation von Tom Minkas Lightspeed auf meinem Mac durchgemacht. Währenddessen habe ich ein paar harte Lektionen gelernt, die ich mit anderen Mac-Benutzern teilen sollte. Mein System hat die folgenden Spezifikationen OS X Version 10.8.5 Xcode-Version 4.6.3 Matlab Version 2011a

1) Stellen Sie sicher, dass Lightspeed auf einem Pfad ohne Leerzeichen in seinem Namen installiert ist. Ich habe den Fehler gemacht, es in "Library / Application Support / Matlab" zu schreiben, was mir endlose Probleme bereitet hat. Insbesondere führte dies zu dem gleichen Problem, das von Tomer Levinboim (levinboim.blogspot.co.nz) gemeldet wurde, mit dem zusätzlichen Problem, dass seine Korrekturen das Problem nicht vollständig gelöst haben!

2) Lies Michel Valstars Notizen "Compiling Matlab Mex Files auf einem Mac" und installiere den empfohlenen Patch von Mathworks ( http://www.mathworks.com/matlabcentral/answers/94092). Dieser Patch wendet alle erforderlichen Flag- / Optionsänderungen an, die von Levinboim identifiziert werden.

3) Ändern Sie die Zeile options.COMPFLAGS in der Datei install_lightspeed.m im Lightspeed-Ordner so, dass sie auf Folgendes zeigt:

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk

4) Überprüfen Sie in Matlab, ob der aktuelle Pfad auf den Lightspeed-Ordner zeigt. Führen Sie den Befehl install_lightspeed aus. Wenn erfolgreich, test_lightspeed ausführen. Sie sollten jetzt eine funktionierende Version von Lightspeed!

5) Die Pfadeinstellungen bleiben zwischen den Sitzungen erhalten, so dass der Ansatz von startup.sh, der in Read Me vorgeschlagen wurde, auf einem Mac nicht erforderlich ist. Wenn Sie jedoch diesen Weg gehen wollen, lesen Sie zuerst:
Wo soll Startup.m sein? http://obasic.net/set-your-customized-startup-file-for-matlab .


2
2017-12-26 03:16



Ich habe das hier gerade gefunden: Schneller MATLAB-Code schreiben. von Pascal Getreuer und hier: Lightspeed-Toolbox. Tolles Zeug...


0
2017-08-05 17:48