Eu fiz um teste de performance de diferentes implementações de geradores de números aleatórios, comparando a biblioteca GSL e a MKL. O teste consistiu em calcular o tempo necessário para gera 2^30 números aleatórios (float):
- implementação do Numerical Recipes do ran2 -> 25 segundos
- implementação da biblioteca GSL do Mersenne Twister -> 15 segundos
- implementação da biblioteca MKL do Mersenne Twister -> 5 segundos
#include <stdio.h> #include <math.h> #include <time.h> ///////////////////////// Ran2 Numerical Recipes ////////////////////////////////////////////// ///////////////////////// GSL Mersenne Twister #include <gsl/gsl_rng.h> #define ARNG gsl_rng_mt19937 ///////////////////////// /////////////////////////////// MKL GSL Mersenne Twister #include <mkl_vsl.h> #define BRNG VSL_BRNG_MT2203 #define METHOD 0 //////////////////////////////// main () { float m,Sm; long N = 1073741824, sqrtN = 32768 , i , j; long seed,seedn; seed = 345; seedn = -1 * seed; //semente negativa ////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// gsl_rng *randmt; randmt = gsl_rng_alloc(ARNG); gsl_rng_set (randmt, seed); time_t inicio2; time_t fim2; inicio2 = time (NULL); for (i = 0; i < N; i++) { m = tanh ( gsl_rng_get(randmt) / ( 1.+ gsl_rng_max (randmt) ) ); } fim2 = time (NULL); gsl_rng_free (randmt); printf ("tempo para %d Mersenne Twister - GSL %ld \n", N, fim2 - inicio2 ); ////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////// float ranfloat[sqrtN]; VSLStreamStatePtr stream; vslNewStream (&stream, BRNG, seed); time_t inicio3; time_t fim3; inicio3 = time (NULL); for (i = 0; i < sqrtN; i++) { vsRngUniform (METHOD, stream, sqrtN, ranfloat, 0.0, 1.0); for (j = 0; j < sqrtN; j++) { m = tanh ( ranfloat[j] ); } } fim3 = time (NULL); printf ("tempo para %d Mersenne Twister - MKL %ld\n", N, fim3 - inicio3 ); ////////////////////////////////////////////////////////////// return (0); }
4 Comments:
ola, TOMARA Q ACHE SEU GATO!!!!Nao consegui ler nada aki no seu blog, nao sei s 'e o formato ou o q. Busquei seu nome no facebook e e acredito estar falando com a propria pessoa. li um anoticia no UOl d sobre seu gato perdido no aeroporto de Brasilia. solidarizo-me com du sua dor e procura . Perdi O Kundum, um gato fantastico, siames azul q trouxe pra os eua, alguns meses depois q cheguei foi uma dor profunda, irreparavel. creioq ele tenha sido roubado e atropleado em seguiida.
ola, TOMARA Q ACHE SEU GATO!!!!Nao consegui ler nada aki no seu blog, nao sei s 'e o formato ou o q. Busquei seu nome no facebook e e acredito estar falando com a propria pessoa. li um anoticia no UOl d sobre seu gato perdido no aeroporto de Brasilia. solidarizo-me com du sua dor e procura . Perdi O Kundum, um gato fantastico, siames azul q trouxe pra os eua, alguns meses depois q cheguei foi uma dor profunda, irreparavel. creioq ele tenha sido roubado e atropleado em seguiida.
achou o bichano?
Post a Comment