Lapack e Blas per C++ su Windows

Marco831
Come avevo preannunciato, eccomi qui a chiedere aiuto.

Il problema è il seguente:

- voglio scrivere dei codici per PDE in C++
- questi codici richiedono un estensivo uso di metodi di soluzione di sistemi lineari avanzati
- la libreria LAPACK e i codici binari BLAS fanno esattamente questo e sono disponibili free on line. Originariamente creati per fortran, sono stati convertiti con vari magheggi in C, creando la libreria CLAPACK
- io sono "the absolute beginner" per quel che riguarda compilare codici e far giochini informatici vari.

La mia situazione software è questa:
- Windows XP
- Borland C++
- FTN95 by Silverfrost compiler per FORTRAN (http://www.silverfrost.com/11/ftn95/overview.asp)

Tutte le librerie sono ottenibili alla pagina: www.netlib.org

Ho cercato informazioni su internet e tutto quello che ho trovato è riassunto alla pagina: https://stat.ethz.ch/pipermail/r-help/2 ... 48421.html
specialmente nella sezione: http://physics.asu.edu/phy502-shumway/notes/lec11.html

inoltre esiste la documentazione originale di LAPACK alla pagina: http://www.netlib.org/clapack/faq.html

In parole povere non riesco a capire cosa devo fare per compilare CLAPACK e BLAS in modo tale da poter chiamare le funzioni contenute in esse dal mio codice C++.

Ringrazio in anticipo chiunque si prenderà la briga di dare un'occhiata al problema.

Risposte
david_e1
Io personalmente userei ATLAS + LAPACK ottimizzato (ricompilandolo dentro ATLAS), come suggeriscono qui e quindi linkando l'eseguibile finale alle librerie così ottenute (il CLAPACK lo vedo solo utile quando non si hanno compilatori FORTRAN a disposizione), soprattutto per problemi di una certa dimensione la differenza di prestazioni fra l'usare le referenceBLAS e le LAPACK di Netlib e l'usare ATLAS + LAPACK è veramente notevole.

Il problema di tutte queste librerie qui è che compilarle sotto Windows, in un ambiente non POSIX, con "strani" compilatori (il Borland è famosissimo, ma non so se funzioni su queste librerie qui, che magari usano parecchia roba POSIX...)... già è difficile compilarle in maniera decente sotto Linux/UNIX: si tratta di codice molto spinto e che, quindi, potrebbe non funzionare se compilato con certe opzioni piuttosto che con altre (alcune routine della LAPACK se compilate "spinte" proprio non funzionano!) (ATLAS anche ci starei attento a usare cose diverse da icc o gcc...)

Se puoi ti suggerisco di lavorare sotto Ubuntu o Scientific Linux, usando i pacchetti già pronti con le varie librerie. Se sei costretto a Windows, magari puoi provare Cygwin, anche se la cosa potrebbe essere più complicata e a quel punto forse non ti conviene andare di ATLAS, ma le CLAPACK + BLAS le vedo più semplici da compilare: segui le istruzioni e lancia sempre gli eseguibili di controllo (make check di solito) per verificare che sia tutto apposto... altrimenti proprio non saprei come fare.

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.