prod-feng / pi_lcg_random_parallel

LCG LeapFrog random number generator, OpenMP multiple thread safe, 3 Dimentions, GNU C

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pi_lcg_random_parallel

LCG LeapFrog random number generator, OpenMP multiple threads safe

This is a lcg random number generator, uses leapfrog method. It is OpenMP multiple threads safe.

It can gegerate 1, 2, or 3 independent random number series, which can be used to for 1D, 2D, and 3D random number generations.

gcc -fopenmp pi_random_parallel.c -lgomp -o pi_random_parallel.exe

Running the program with different number of threads give the identical result:

[feng@]$ export OMP_NUM_THREADS=1

[feng@]$ time ./pi_random_parallel.exe

10000000 trials, pi = 3.141159

real 0m0.519s

user 0m0.518s

sys 0m0.001s

[feng@]$ export OMP_NUM_THREADS=2

[feng@]$ time ./pi_random_parallel.exe

10000000 trials, pi = 3.141159

real 0m0.404s

user 0m0.803s

sys 0m0.002s

[feng@]$ export OMP_NUM_THREADS=3

[feng@]$ time ./pi_random_parallel.exe

10000000 trials, pi = 3.141159

real 0m0.332s

user 0m0.989s

sys 0m0.001s

[feng@]$ export OMP_NUM_THREADS=4

[feng@]$ time ./pi_random_parallel.exe

10000000 trials, pi = 3.141159

real 0m0.342s

user 0m1.354s

sys 0m0.001s

Developed on CentOS 6.2, Kernel 2.6.32-220.2.1.el6.x86_64, gcc (GCC) 4.4.6 20110731

About

LCG LeapFrog random number generator, OpenMP multiple thread safe, 3 Dimentions, GNU C


Languages

Language:C 100.0%