> MI chiedevo in particolare se voi parallelizzate il generatore di
> numeri casuali, notoriamente una delle cose che consuma + tempo.
S�? Mi sembra davvero strano, vuoi dire che ci metti meno a fare i
tuoi calcoli per ogni caso che a generare un nuovo numero casuale?
Nel caso, potresti provare questo:
http://en.wikipedia.org/wiki/Multiply-with-carry
che *dovrebbe* essere pi� veloce ma altrettanto buono del MErsenne
TWister (non l'ho mai provato, per�).
> 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?
Sarebbe sicuramente pi� semplice lanciare pi� thread che eseguono lo
stesso codice: ad es. per un dual-core, lanci in pratica due
programmi, ognuno col suo generatore di numeri casuali (con un seme
casuale diverso per ogni thread) e il suo codice di calcolo. Scala
linearmente col numero di core, ed � banale da implementare.
Mettere il solo generatore casuale su un thread dedicato scalerebbe
molto peggio col numero di core (potrebbe diventare lui il collo di
bottiglia).
> Un'altra idea era implementare il
> generatore sulla scheda grafica (chi ha nvidia pu� usare CUDA).
Cosa che va molto di moda :) ma pu� essere un casotto programmare in
CUDA... l'ultima versione, unita all'ultima architettura ("Fermi")
risolve parecchi problemi in molti casi, ma non � una cosa
semplice&veloce...
Pleg
Received on Tue Jun 15 2010 - 07:44:30 CEST