URL: https://www.overclockers.at/coding-stuff/c_libraries_fuer_matrixoperationen_und_matlab_117037/page_1 - zur Vollversion wechseln!
Hi Leute!
bin grad bei einem projekt dabei und muss ein paar sachen in c++ schreiben. in diesen programmen kommen eine menge an vektor- und matrixoperationen vor und meine frage ist, ob es bereits fertige bibliotheken gibt, mit denen man schnell und effizient mit matrizen/vektoren arbeiten kann. weil dann müsst ich mir nicht alle funktionen selber schreiben.
weiters bräucht ich auch eine bibliothek, mit der man daten gut ins matlab exportieren kann oder mit der man arrayes als .mat files ablegen kann.
bin für jede hilfe sehr dankbar.
tia und grüße, nullspace
/add: achja. die libraries sollten auch für sehr grosse matrizen halbwegs vernünftig funktionieren.
Das hier klingt von der Beschreibung passend:
http://www.boost.org/libs/numeric/ublas/doc/index.htm
Generell LAPACK, Intel Math Library (nicht gratis glaub ich), GNU Scientific Library (bin mir nicht so sicher, was die genau kann).
Wenn du eh mit Matlab arbeitest, warum verwendest du dann nicht die Matlab Funktionen für die Rechnerei? Matlab bietet für C ja eine umfangreiche Bibliothek an.
es gibt nur einen einzigen compiler mit dem man sich das auf x86 CPUs antun sollte: intel cpp compiler(399 USD) und die intel nath kernel library(199 USD). von beiden gibt es aber 30 tage free evaluation versionen.
außerdem sollen die matlab libs ebenfalls ausgezeichnet sein(siehe ringi)
Für Linux gibt's auch eine ganz kostenlose Version (vom Compiler, von der MKL glaub ich nicht).
jo, vom compiler schon.
Kann für C++ auch sehr brauchbar sein:
http://www.oonumerics.org/blitz/
Aber an deiner Stelle wäre für mich die erste Wahl einmal die Matlab Library.
Wird auch für die ganzen SPEC benchmarks verwendet, ist sicher sein geld wert(wie fast alle intel produkte
).
der intel cpp compiler ist sicher jeden dollar wert den er kostet.
Zitat von RingdingWenn du eh mit Matlab arbeitest, warum verwendest du dann nicht die Matlab Funktionen für die Rechnerei? Matlab bietet für C ja eine umfangreiche Bibliothek an.
um brauchbare performance auf modernen CPUs zu erzielen ist der intel cpp unumgänglich. die C matlab libs kommen aber AFAIR zB in der student version nicht mit, dafür braucht man schon eine höhere lizenz. aber am besten einfach in der matlab dokumentation nachschauen.
Zitat von SYSMATRIXder intel cpp compiler ist sicher jeden dollar wert den er kostet.
nein. gilt sowohl für CPP als auch für FORTRAN.Zitat von manalishiwie wahr. gibts eigentlich einen, der besseren code erzeugt?
btw is das .mat file format extrem ziemlich einfach und exportieren ins matlab sprich importieren in matlab ist _ziemlich_ einfach 
wenns echt um killer performance geht, solltest du auch in erwähnung ziehen GPUs als rechenknechte zu misbrauchen, eine halbwegs moderne GPU sind wie geschaffen für matrix operationen(besonders wenn sie im fp format sind).
Es gibt sehr ausführliche Matlab Doku zu der Library.
Also als Allround-Compiler ist Intel C++ sicher der beste, den's gibt (für Intel CPUs natürlich). Ein sehr guter C++ Compiler ist auch noch KAI C++, den hat mittlerweile aber auch schon Intel gekauft.
Itanium2+MKL+IntelCPP = _killer_
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026