MATLAB

MATLAB Performance

So optimieren Sie die Leistung Ihres MATLAB Programmcodes

MATLAB ist schnell und wird immer schneller

Die in R2015a eingeführte MATLAB®-Ausführungsengine beschleunigt den gesamten MATLAB Programmcode mithilfe von JIT-Kompilierung. Die JIT-Kompilierung erzeugt nativen, für Ihren MATLAB Programmcode sowie für bestimmte Hardware optimierten Code auf Maschinenebene. Die Architektur der Ausführungsengine ermöglicht mit jeder neuen Version weitere Optimierungen, darunter schnellere Aufrufe eingebauter Funktionen und schnellere Indizierungsoperationen. Zudem verfügen viele Kernfunktionen von MATLAB implizit über Multithreading, was die Leistung verbessert.

Die Leistung von MATLAB bemisst sich anhand einer Reihe von Benchmarks, die sowohl Vorgänge einzelner Units als auch komplette Anwendungen abdecken und reale Anwender-Workflows wiedergeben. Diese Benchmarks werden während eines MATLAB-Release-Zyklus mehrfach auf verschiedenen Hardware- und Betriebssystemen ausgeführt, um neue Optimierungen zu validieren, Leistungsabfälle zu erkennen und zu beheben sowie betriebssystemspezifische Probleme zu identifizieren.

Mehr über spezifische Leistungsverbesserungen erfahren Sie in den MATLAB-Versionshinweisen. Seit der Version MATLAB R2019b enthalten die Versionshinweise auch gemessene Verbesserungen der Ausführungszeit im Vergleich zu früheren MATLAB-Versionen.


Durchschnittliche Beschleunigung in Kunden-Workflows

Durchschnittliche Beschleunigung in der MATLAB Performance Test Suite.

MATLAB Profiler

Mit dem MATLAB Profiler erkennen Sie Engpässe in Ihrem Code.

So verbessern Sie die Leistung Ihres MATLAB Programmcodes

Der erste Schritt zu besserer Codeleistung besteht im Erkennen von Engpässen. Zum Beispiel können Sie:

  • die Code-Ausführungszeit mit Funktionen wie tic, toc und timeit messen
  • mit dem MATLAB Profiler erkennen, welche Teile Ihres Programms am längsten zur Ausführung benötigen
  • mit dem MATLAB Code Analyzer weitere Vorschläge zur Leistungssteigerung erhalten

Wenn Sie Engpässe in Ihrem Code identifiziert haben, lässt er sich oft durch bekannte Programmierpraktiken beschleunigen. Zwei der gängigsten Techniken sind die Array-Vorbelegung und die Vektorisierung. Vorbelegung kann die Leistung verbessern, indem dynamische Speicherzuweisung vermieden wird. Mit Vektorisierung vermeiden Sie Schleifen, indem alle Elemente eines Vektors mit einem einzigen Befehl bearbeitet werden. In Kombination können diese Techniken den Code um mehrere Größenordnungen beschleunigen.

Bei Bedarf können Sie die Leistung steigern, indem Sie rechenintensive Teile Ihrer Anwendung in einer kompilierten Sprache schreiben. In MATLAB lässt sich mit MEX-Funktionen leistungsstarker C, C++ oder Fortran-Code aufrufen, genau wie die in MATLAB integrierten Funktionen. Mit MATLAB Coder™ können Sie Ihren MATLAB Programmcode automatisch in MEX-Dateien umwandeln, die unter Umständen viel schneller laufen.


Holen Sie mit Parallel Computing mehr aus Ihrer Hardware heraus

Rechen- oder datenintensive Probleme lösen Sie, indem Sie mit Parallel Computing explizit auf all Ihre Hardwareressourcen zugreifen. Mit verschiedenen Funktionen lässt sich auf mehrere Prozesse, Threads und Grafikkarten skalieren – und das mit dem vertrauten und benutzerfreundlichen System von MATLAB. Sie können dies auf einer einzigen Maschine entwickeln und ausführen und dann Ihre Ausführung auf einen Compute-Cluster oder eine Cloud skalieren, ohne neu programmieren zu müssen.


Mit Parallel Computing nutzen Sie explizit all Ihre Hardwareressourcen.