Re: Numerical Recipes

From: Pleg <plegdfmds_at_gmail.com>
Date: Fri, 18 Feb 2011 12:34:10 -0800 (PST)

On Feb 18, 11:10�am, Soviet_Mario <Soviet.Ma..._at_CCCP.MIR> wrote:
> Per qualcuno che usi spesso o cmq conosca bene le Numerical
> Recipes (il sito non lo ricordo a memoria, ma da qualche
> parte l'url ce l'ho)
>
> Sapete mica se si trova qualche routine (il linguaggio
> abbastanza irrilevante) per la risoluzione dei sistemi
> lineari con qualche metodo furbo (che so, non Cramer,
> quell'altro ... come si chiama, di Gauss ? Non me lo ricordo).
> Non me la sento di tentare di scrivere io del codice su un
> argomento che so fare a stento con carta e penna e il libro
> davanti :(
>
> grazie in anticipo
>
> P.S. ... tipo Archaeopterix, se non ricordo male, le
> consigliava, le N.R., vero ?
> Cmq rivolto a chiunque
> ciao
> Soviet


Io invece in genere sconsiglio vivamente lo scrivere routine numeriche
a mano. Per qualsiasi routine ti serve, e' *quasi certo* che esistano
librerie numeriche scritte da professionisti, testate, stabili e
veloci che fanno quello che ti serve.
Tra l'altro non sono mai stato un appassionato delle NR: gli algoritmi
possono essere buoni e stabili, ma l'implementazione e' tutto un altro
paio di maniche -- per fare una routine veloce non basta un algoritmo
veloce, serve anche una intima conoscenza dell'architettura della
macchina su cui vuoi far girare il programma (CPU o GPU? multitheaded?
cache coherent? quanti livelli di cache, con che dimensione, con che
associativita', con che dimensione della cache line? superscalare?
quate unita' floating point? ha unita' SIMD? quanto e' aggressivo il
prefetcher hardware? eccetera...).

La risoluzione dei sistemi lineari e' una delle cose piu' studiate e
di cui esistono piu' librerie in assoluto, quindi hai solo l'imbarazzo
della scelta. Il meglio sono in genere quelle fornite dal produttore
della tua CPU (Intel Math Kernel Library, AMD Core Math Library), ma
posono costare. BLAS e LAPACK sono gratis e inclusa nelle maggiori
distribuzioni linux, ma immagino non siano ottimizzata bene come le
prime due. Se invece vuoi lanciarti nella programmazione GPGPU,
CUBLAS e' BLAS per CUDA, non so se ci siano gia' delle librerie tipo
LAPACK open-source. Per OpenCL non so niente, ma immagino ci sia
qualcosa anche li'.


Pleg
Received on Fri Feb 18 2011 - 21:34:10 CET

This archive was generated by hypermail 2.3.0 : Fri Nov 08 2024 - 05:10:30 CET