WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Verständnis für die Durchführung von Matrixoperationen

 

ffb

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.12.2015, 06:29     Titel: Verständnis für die Durchführung von Matrixoperationen
  Antworten mit Zitat      
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 Smile

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:

Code:

A = [a,b;c,d];
B = [e,f;g,h];
C = A * B


Liebe Grüße


Andreas Goser
Forum-Meister

Forum-Meister


Beiträge: 3.654
Anmeldedatum: 04.12.08
Wohnort: Ismaning
Version: 1.0
     Beitrag Verfasst am: 23.12.2015, 09:22     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen E-Mail senden
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 24.12.2015, 15:03     Titel: Re: Verständnis für die Durchführung von Matrixoperatione
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
ffb

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.12.2015, 11:56     Titel:
  Antworten mit Zitat      
Vielen Dank für die beiden Antworten;)

Ich hab mir die BLAS mal angesehen. Reverse Engeneering war nicht mein Ziel Very Happy. Ich finde es nur wichtig, dass man sich mal Gedanken macht, wie die Sachen eigentlich funktionieren und nicht immer nur alles freudig benutzt.

LG
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.