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

From: Davide <plegdfmds_at_gmail.com>
Date: Mon, 14 Jun 2010 22:44:30 -0700 (PDT)

> 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

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