Re: Far andare veloce i monte carlo di tutti i giorni

From: Michele <sandinista83_at_gmail.com>
Date: Thu, 10 Jun 2010 06:58:48 -0700 (PDT)

Di parallelizzazione non so molto, quindi non posso esserti utile.
Posso solo dirti di evitare assolutamente di usare ran1, come random
generator: ha un ciclo molto breve e ci sono correlazioni molto forti
tra i numeri generati.
Molto meglio il Marsenne Twister, che fornisce delle sequenze
ottimali.
Ciao.

Michele

On Jun 4, 11:53�pm, Tommaso Biancalani <tommaso.biancal..._at_gmail.com>
wrote:
> I metodi MonteCarlo sono oggi uno strumento insostituibile in diverse
> branche della fisica poich� consentono di simulare soluzioni di
> equazioni ai processi stocastici ed alle derivate parziali. Quando un
> MonteCarlo � veramente cazzuto, di solito si lancia sui clusteroni
> (i.e. tanti computer connessi che agiscono virtualmente come uno) per
> cui ci si affida a stili di programmazione e strumenti appositi, come
> openMP e SPRNG.
>
> Ci �sono anche per� i "monte carlo di tutti i giorni": programmini
> cos� semplici che non si ha voglia di fare richiesta all'univ x
> qualche ora di clusterone, ma i cui output saranno (sperabilmente) un
> articolo pubblicato. Questi programmetti si lanciano di solito sui
> propri portatili o su macchine "stand-alone" e sono (almeno x me) la
> stramaggioranza dei casi. Ecco sto cercando di farmi un'idea delle
> dritte che aumentano sensibilmente le prestazioni, lasciando stare
> "implementare algoritmi efficienti" che richiedere inesorabilmente
> l'andare caso x caso.
>
> MI chiedevo in particolare se voi parallelizzate il generatore di
> numeri casuali, notoriamente una delle cose che consuma + tempo.
> Diciamo che lanciate il montecarlo sul vs portatile, che suppongo
> essere DualCore. Usate entrambe i core? Avete mai pensato di mandare
> il generatore dei numeri casuali su un core e l'elaborazione del mc su
> un altro? Secondo me sarebbe una buona regola da adottare sempre, mi
> stavo appunto chiedendo il modo migliore x farlo. Per esempio lanciare
> due thread, oppure due processi. �Un'altra idea era implementare il
> generatore sulla scheda grafica (chi ha nvidia pu� usare CUDA).
>
> Tra l'altro, che algoritmo usate x generare numeri casuali? Io ho
> usato la ran1() del Numerical Recipies e adesso sono passato al
> Mersenne Twister, la cui versione figa trovate quahttp://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/SFMT/index.html
>
> ciao,
> tommaso
Received on Thu Jun 10 2010 - 15:58:48 CEST

This archive was generated by hypermail 2.3.0 : Thu Nov 21 2024 - 05:10:43 CET