c++ libraries für matrixoperationen und matlab

Seite 1 von 3 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/c_libraries_fuer_matrixoperationen_und_matlab_117037/page_1 - zur Vollversion wechseln!


NullSpace schrieb am 13.06.2004 um 18:10

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.


that schrieb am 13.06.2004 um 18:30

Das hier klingt von der Beschreibung passend:

http://www.boost.org/libs/numeric/ublas/doc/index.htm


Ringding schrieb am 13.06.2004 um 20:11

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.


SYSMATRIX schrieb am 13.06.2004 um 20:23

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)


Ringding schrieb am 13.06.2004 um 20:27

Für Linux gibt's auch eine ganz kostenlose Version (vom Compiler, von der MKL glaub ich nicht).


SYSMATRIX schrieb am 13.06.2004 um 20:29

jo, vom compiler schon.


Ringding schrieb am 13.06.2004 um 20:30

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.


SYSMATRIX schrieb am 13.06.2004 um 20:32

Wird auch für die ganzen SPEC benchmarks verwendet, ist sicher sein geld wert(wie fast alle intel produkte :D).

der intel cpp compiler ist sicher jeden dollar wert den er kostet.


NullSpace schrieb am 13.06.2004 um 20:32

Zitat von Ringding
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.

oh, und wo finde ich diese bibliotheken? sind die für c oder c++?

btw: ja, als arbeitsumgebung (compiler) steht uns das microsoft visual net packet zur verfügung. leider hab ich bis jetzt noch nie mit c/c++ gearbeitet und irgendwie ist alles noch ein bisschen wie eine kleine neue welt. aber java hätt ich glernt und in matlab hab ich schon viel programmiert. falls irgendwelche tipps oder tolle literaturvorschläge gibt für c++ wär ich auch dran interessiert.

thx für alle antworten bis jetzt.


SYSMATRIX schrieb am 13.06.2004 um 20:35

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.


manalishi schrieb am 13.06.2004 um 20:36

Zitat von SYSMATRIX
der intel cpp compiler ist sicher jeden dollar wert den er kostet.

wie wahr. gibts eigentlich einen, der besseren code erzeugt?


SYSMATRIX schrieb am 13.06.2004 um 20:37

Zitat von manalishi
wie wahr. gibts eigentlich einen, der besseren code erzeugt?
nein. gilt sowohl für CPP als auch für FORTRAN.


SYSMATRIX schrieb am 13.06.2004 um 20:37

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).


Ringding schrieb am 13.06.2004 um 20:40

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.


SYSMATRIX schrieb am 13.06.2004 um 20:41

Itanium2+MKL+IntelCPP = _killer_




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026