Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Try TinyMT instead of mersenne twister (RandomNumberGeneratorPolicy) #55

Open
3 tasks
erikzenker opened this issue May 6, 2015 · 2 comments
Open
3 tasks

Comments

@erikzenker
Copy link
Member

It would be nice to exchange the random number generator in a policy based fashion.
For example the sobol rng of issue #4 or the fast random number generator from
jeffrey kelling mentioned by @bussmann .

Some steps are necessary:

  • Compare interfaces of various rng
  • Create policies classes and host class
  • Test behavior in HaseOnGpu simulation
@bussmann
Copy link
Member

bussmann commented May 6, 2015

Absolutely!
Jeffrey seems to have something like this already.

@slizzered
Copy link
Contributor

I agree that the RNG should be based on a policy-based design. Hoewever, I'm not in favor of TinyMT, at least from its description on the homepage: (higlighting by me)

The purpose of TinyMT is not to replace Mersenne Twister. TinyMT has far shorter period than Mersenne Twister. The merit of TinyMT is in its small size of the internal state of 127 bits, far smaller than 19937 of Mersenne Twister. The purpose of TinyMT may be used in a situation where large state generators such as Mersenne Twister are difficult to use.

The thing is, we don't have any problems with space so far, but a long period is very important (see Axel's comment in #4).

Of course, having the policy-based interface would still be a great thing, obviously. And once we have it, testing TinyMT might at least be interesting.

erikzenker added a commit to erikzenker/haseongpu that referenced this issue Oct 5, 2015
9dfdb96 fix missing OpenMP link flag
b9f099c fix foldrAll ICC bug
83ddac5 disable the OpenMP 4 back-end by default
8644064 fix Vec for Intel
819e5d9 fix boost 1.56 missing const bug
f9cd663 really fix Intel cpuid
330d983 remove incorrect docu
9f1b692 fix Intel compiler cpuid
1aa4c86 fix missing OMP_NUM_THREADS reset in getMaxOmpThreads
328e866 fix CUDA compilation
33c7888 remove ICC from the readme (untested / not compiling)
40a8465 always interpret all source files as .cu files for nvcc
25f4670 allow vectorize to be called without the element type
882c0a9 enhance documentation
05454a6 fix ambiguous template specialization for GetWorkDiv
5b70326 remove call to std::ref in BlockSharedAllocCudaBuiltIn
e15c40a fix fix AtomicOmpCritSec
afffe2f fix wrong atomic implementation for AccCpuOmp2Blocks
2a60bbb fix BufCudaRt destruction
062378d add ALPAKA_ADD_EXECUTABLE to alpakaConfig.cmake
b9a4125 use DimInt more consistently
919dc26 move ElemType from mem::view to elem
2807fc8 add initial ALPAKA_ADD_EXECUTABLE
f019e70 fix BufPlainPtrWrapper pitch
1ca1923 fix missing OpenMP linker flag
9ee231d fix getFreeGlobalMemSizeBytes
7e853c6 Merge pull request ComputationalRadiationPhysics#54 from psychocoderHPC/fix-cudaSet
6796eff Merge pull request ComputationalRadiationPhysics#55 from psychocoderHPC/fix-callingHostFunctionFromDevice
9f3d8e6 fix warning calling host function from device
000a250 fix wrong usage of `getPitchBytes<>()`
8be955d Merge pull request ComputationalRadiationPhysics#53 from psychocoderHPC/topic-suppressHostDeviceWarning
b7c877d Merge pull request ComputationalRadiationPhysics#52 from psychocoderHPC/tpoic-updateGitIgnore
0b94251 suppress host device warning
33a59be update `.gitignore`
237898f refactoring
d0ad945 implement getFreeGlobalMemSizeBytes
f85e233 allow accelerators to inherit from rand implementation
d96e8b5 fix CUDA set implemenentation

git-subtree-dir: include/alpaka
git-subtree-split: 9dfdb96b0cb2fc32a1f2e447de755905f7538bf4
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants