Re: Numerical Recipes

From: Soviet_Mario <Soviet.Mario_at_CCCP.MIR>
Date: Fri, 18 Feb 2011 22:27:40 +0100

Il 18/02/2011 21:34, Pleg ha scritto:
> 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.

anche io *MI* sconsiglio :-) LOL
Infatti � proprio per questo che voglio prendere codice
altrui e gi� funzionante e stratestato. Non me la sento di
scriverlo io ...
A meno che non intendessi anche il porting. Per quello non
credo che avr� particolari problemi. Dovessi averli,
tenterei qualcos'altro.

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

Intendi che non consideri ben scritte le recipes ?

> 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

non capisco bene la distinzione tra algoritmo e implementazione.
Li considero quasi sinonimi, uno in lingua astratta, l'altra
la sua traduzione in un linguaggio specifico.
Normalmente un algoritmo scritto bene viene tradotto (e
compilato) in qualsiasi linguaggio di livello medio senza
grosse problematiche.

> -- per fare una routine veloce non basta un algoritmo
> veloce,

qui � colpa mia : non ho nessuna esigenza di performance.
Tuttavia vorrei che almeno fosse computabile per sistemi di
una decina, max quindici equazioni. Con Cramer non ne esce
niente di buono, esplode con N^2*N! mi pare, o qualcosa di
simile, che � un abominio

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

:-) okay okay, non mi occorre tanta ottimizzazione.
Basta che respiri, e sia stabile e corretto.

>
> 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
> possono costare.

mi serve free, anzi in realt� dovrebbe essere opensource

> BLAS e LAPACK sono gratis e inclusa nelle maggiori
> distribuzioni linux,

ecco, questo � molto interessante. Visto che te ne intendi,
avresti mica qualche link dove posso trovare il sorgente di
quelle robe ? Immagino siano in C, vero ? Normalmente non mi
da grossi problemi di traduzione (in C++ sarebbe peggio)

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

routine grafiche x ora non me ne occorrono, ma se mi trovi
un link al sorgente di LAPACK, te ne sono molto grato. In
ogni modo quando ho tempo provo a cercare anche io, anche se
di Linux non me ne intendo in moto assoluto.
ciao
Soviet


>
>
> Pleg
Received on Fri Feb 18 2011 - 22:27:40 CET

This archive was generated by hypermail 2.3.0 : Wed Sep 18 2024 - 05:10:45 CEST