|
|
Performancevergleich C <-> Matlab |
|
Schmaler |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 22.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.07.2010, 10:07
Titel: Performancevergleich C <-> Matlab
|
|
Hallo,
ich möchte gerne zwei in Matlab prototypisch implementierte Algorithmen bezüglich ihrer Performance vergleichen. Dabei geht es mir nicht darum, ob Matlab bzw C bei gewissen Operationen schneller ist, sondern vielmehr darum ob die benötigte Rechenzeit dabei korelliert oder nicht.
Bisher verwende ich ausschließlich Matrixoperationen, welche zwar den Matlab Code deutlich beschleunigen, jedoch nicht ohne weiteres in C portiert werden können. Wenn ich diese nun durch zB for Schleifen ersetzen würde, verhalten diese sich in Matlab im Verhältnis zu anderen Anweisungen vom Rechenaufwand her ähnlich wie dies in C der Fall ist? Oder kann man daraus keine Rückschlüsse auf die Performance in C ziehen?
Vielen Dank schon einmal!
|
|
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 28.07.2010, 11:01
Titel:
|
|
|
|
|
Hallo Schmaler,
Matlab ruft für Matrix-Operationen die LAPACK-Bibliotheken auf, die als ATLAS-Libs für verschiedene Prozessoren optimiert worden sind. Für Operationen mit großen Matrizen sollte man dies in C-Programmen ebenfalls tun, so dass z.B. für die SVD einer 1000*1000 Matrix C und Matlab gleich schnell laufen - bis auf einen zu vernachlässigenden Overhead.
Im Allgemeinen kann man keine Rückschlüsse von einer Programmiersprache in eine andere ziehen. Man kann auch nicht einmal ohne es auszuprobieren wissen, ob eine Implementation in Matlab als Schleife oder in vektorisierter Form schneller ist! Matlab's JIT-Compiler kann manchmal extrem beschleunigen.
Matlab ist überragend gut geeignet, die Gesamt-Prgramm-Zeit zu minimieren:
Programmzeit = Programmierzeit + Debugzeit +
Laufzeit + Zeit zum Darstellen der Ergebnisse
In 99% aller Fälle die ich bisher in meiner wissenschaftlichen Laufbahn gesehen habe, war die Laufzeit dabei nicht der ausschlaggebende Summand!
Viel Erfolg, Jan
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 28.07.2010, 11:11
Titel:
|
|
Gerne sind wir von Seiten MathWorks bereit Unterstützung zu dieser Forschungsarbeit zu geben. Ich bitte mich persönlich zu kontaktieren.
Andreas
|
|
|
Schmaler |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 22.06.10
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 28.07.2010, 12:12
Titel:
|
|
Vielen Dank für die Antwort @ Jan.
Allerdings ging es mir nicht um eine Optimierung der gesamten Entwicklungszeit, sondern eben vielmehr um eine Möglichkeit aus der benötigten Laufzeit unter Matlab Rückschlüsse auf die Performance der unterschiedlichen Algorithmen unter C zu ziehen.
@Andreas: Du hast Post!
Alexander
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| RSS
Hosted by:
Copyright © 2007 - 2024
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.
|
|