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

RNG list to be implemented #1

Open
7 of 13 tasks
sunoru opened this issue Apr 28, 2016 · 7 comments
Open
7 of 13 tasks

RNG list to be implemented #1

sunoru opened this issue Apr 28, 2016 · 7 comments

Comments

@sunoru
Copy link
Member

sunoru commented Apr 28, 2016

As discussed before, I'd like to implement various RNGs in this package. And temporarily they are listed in the following:

Four from Random123:

  • Threefry
  • Philox
  • AESNI
  • ARS

The xorshift families:

  • xoroshiro128+
  • xorshift128+
  • xorshift1024*

Six from SPRNG

  • Combined Multiple Recursive Generator
  • 48 Bit Linear Congruential Generator with Prime Addend
  • 64 Bit Linear Congruential Generator with Prime Addend
  • Modified Lagged Fibonacci Generator
  • Multiplicative Lagged Fibonacci Generator
  • Prime Modulus Linear Congruential Generator
@sunoru sunoru mentioned this issue May 5, 2016
7 tasks
@sunoru
Copy link
Member Author

sunoru commented May 11, 2016

  • PCG families seem to be a nice choice, it's also worth considering.

@ChrisRackauckas
Copy link
Contributor

Philox via Random123 (and others) can be used on a GPU: any way for this to plug in with ArrayFire.jl or CUDArt.jl?

@sunoru
Copy link
Member Author

sunoru commented Jul 19, 2016

Hi Chris, thank you for the suggestion.

Yes, I have considered accelerating some RNGs with GPU, but I was trying to write code in pure Julia at first.

Actually I want to make this package have as few requires as possible, and I don't know much about these GPU packages, so currently they are not used. Do you have any idea about which to choose?

@ChrisRackauckas
Copy link
Contributor

ChrisRackauckas commented Jul 19, 2016

You can think about making it a conditional dependency which requires the user to using CUDArt for it to work (and not have it in requires). CUDArt.jl is definitely the way to go for this.

@sunoru
Copy link
Member Author

sunoru commented Jul 19, 2016

It sounds a good idea. I will have a try.

@kafisatz
Copy link

kafisatz commented Jun 4, 2019

Here are two additional (fast?) RNGs which may be worth considering:
wyhash and lehmer's
https://lemire.me/blog/2019/03/19/the-fastest-conventional-random-number-generator-that-can-pass-big-crush/

@sunoru
Copy link
Member Author

sunoru commented Jun 4, 2019

@kafisatz thanks, I'll check it out.

sunoru pushed a commit that referenced this issue Jan 28, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants