|
|
Verständnis für die Durchführung von Matrixoperationen |
|
ffb |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.12.2015, 05:29
Titel: Verständnis für die Durchführung von Matrixoperationen
|
|
Liebe Community,
vorab sei gesagt, ich suche nach keiner Erklärung für die Durchführung von Matrixoperationen also weder mit MATLAB noch auf dem Papier! Ich arbeite viel und sehr erfolgreich mit MATLAB, und seit 10 Semestern frage ich mich wie bei der Programmierung von MATLAB die Matrixoperationen umgesetzt wurden.
Meine Frage ist aus reinem Interesse und aus der Fasziantion heraus, schon seit vielen Jahren ohne unnötiges Iterieren meine Probleme lösen zu können.
Also wenn irgendwer ne Ahnung hat, was eigentlich in MATLAB passiert würde ich mich darüber sehr freuen
Damit das jetzt nicht ganz so eine wirre Diskussion über meine eindeutig komische und auch ziehmlich nerdige Frage kommt, könnte man vielleicht die Schritte in MATLAB an folgendem Beispiel verdeutlichen:
Liebe Grüße
|
|
|
|
|
Andreas Goser |
Forum-Meister
|
|
Beiträge: 3.654
|
|
|
|
Anmeldedatum: 04.12.08
|
|
|
|
Wohnort: Ismaning
|
|
|
|
Version: 1.0
|
|
|
|
|
|
Verfasst am: 23.12.2015, 08:22
Titel:
|
|
Zu den Anfangszeiten von MATLAB hätte ich schreiben können, dass man doch einfach in die publizierten Routinen von LINPACK, EISPACK und dann LAPACK schauen möge. Das ist zwar auch heute nicht ganz falsch, durch die Vielzahl von Optimierungen und Fallunterscheidungen ist das natürlich so komplex, dass es MathWorks "intellectual property" ist. Nur ein Beispiel: Wenn man diese Operation mit komplexen Zahlen macht, wäre es natürlich schneller, wenn man die Operation auf zwei Prozessoren / Kerne verteilt. Dadurch ergibt sich aber ein anderer Algorithmus, als grandlinig auf dem Papier.
Andreas
|
|
|
Jan S |
Moderator
|
|
Beiträge: 11.057
|
|
|
|
Anmeldedatum: 08.07.10
|
|
|
|
Wohnort: Heidelberg
|
|
|
|
Version: 2009a, 2016b
|
|
|
|
|
|
Verfasst am: 24.12.2015, 14:03
Titel: Re: Verständnis für die Durchführung von Matrixoperatione
|
|
Hallo ffb,
Matlab verwendet für Matrix-Operationen die BLAS-Bibliotheken. Diese wurden im Laufe der Zeit an die Prozessor-Architekturen angepasst, siehe MKL und ATLAS. Hier werden nun mehrere Kerne, SSE und AVX-Einheiten sowie die Größen der Prozessor-Caches berücksichtigt.
Was genau in Deinem Beispiel passiert, hängt deshalb von der Größe der Matrix ab, von der Anzahl der Kerne und dem genauen Prozessor-Typ und auch der Matlab-Version. Einerseits wendet Matlab hier Fall-Unterscheidungen an und ruft verschiedene Methoden auf, andererseits wird vermutlich auch The Mathworks keinen Einblick in den MKL-Code von Intel haben, sondern sich darauf verlassen, dass dort die Arbeit effizient erledigt wird.
Eine genaue Untersuchung ist mit einem Debugger möglich, allerdings ist man hier dann schnell bei einem Reverse-Engineering, was laut der Lizenz-Bedingungen nicht gestattet ist.
Gruß, Jan
|
|
|
ffb |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.12.2015, 10:56
Titel:
|
|
Vielen Dank für die beiden Antworten;)
Ich hab mir die BLAS mal angesehen. Reverse Engeneering war nicht mein Ziel . Ich finde es nur wichtig, dass man sich mal Gedanken macht, wie die Sachen eigentlich funktionieren und nicht immer nur alles freudig benutzt.
LG
|
|
|
|
|
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.
|
|