SlideShare a Scribd company logo
Parallel Random
Generator
Manny Ko
Principal Engineer
Activision
Outline
●Serial RNG
●Background
●LCG, LFG, crypto-hash
●Parallel RNG
●Leapfrog, splitting, crypto-hash
RNG - desiderata
● White noise like
● Repeatable for any # of cores
● Fast
● Small storage
RNG Quality
● DIEHARD
● Spectral test
● SmallCrush
● BigCrush
GPUBBS
Power Spectrum
Power spectrum density Radial Mean Radial Variance
Serial RNG: LCG
● Linear-congruential (LCG)
● 𝑋𝑖 = 𝑎 ∗ 𝑋𝑖−1 + 𝑐 𝑚𝑜𝑑 𝑀,
● a, c and M must be chosen carefully!
● Never choose 𝑀 = 231
! Should be a prime
● Park & Miller: 𝑎 = 16807, 𝑚 = 214748647 =
231 − 1. 𝑚 is a Mersenne prime!
● Most likely in your C runtime
LCG: the good and bad
● Good:
● Simple and efficient even if we use mod
● Single word of state
● Bad:
● Short period – at most m
● Low-bits are correlated especially if 𝑚 = 2 𝑛
● Pure serial
LCG - bad
● 𝑋 𝑘_+1 = (3 ∗ 𝑋 𝑘+4) 𝑚𝑜𝑑 8
● {1,7,1,7, … }
Mersenne Prime modulo
● IDIV can be 40~80 cycles for 32b/32b
● 𝑘 𝑚𝑜𝑑 𝑝 where 𝑝 = 2 𝑠 − 1:
● 𝑖 = 𝑘 & 𝑝 + 𝑘 ≫ 𝑠 ;
● 𝑟𝑒𝑡 𝑖 ≥ 𝑝 ? 𝑖 − 𝑝 ∶ 𝑖;
Lagged-Fibonacci Generator
● 𝑋𝑖 = 𝑋𝑖−𝑝 ∗ 𝑋𝑖−𝑞; p and q are the lags
● ∗ is =-* mod M (or XOR);
● ALFG: 𝑋 𝑛 = 𝑋 𝑛−𝑗 + 𝑋 𝑛−𝑘(𝑚𝑜𝑑 2 𝑚)
● * give best quality
● Period = 2 𝑝 − 1 2 𝑏−3; 𝑀 = 2 𝑏
LFG
● The good:
●Very efficient: 2 ops + power-of-2 mod
●Much Long period than LCG;
●Directly works in floats
●Higher quality than LCG
●ALFG can skip ahead
LFG – the bad
● Need to store max(p,q) floats
● Pure sequential –
● multiplicative LFG can’t jump ahead.
Mersenne Twister
● Gold standard ?
● Large state (624 ints)
● Lots of flops
● Hard to leapfrog
● Limited parallelism
power spectrum
● End of Basic RNG Overview
Parallel RNG
● Maintain the RNG’s quality
● Same result regardless of the # of cores
● Minimal state especially for gpu.
● Minimal correlation among the streams.
Random Tree
• 2 LCGs with different 𝑎
• L used to generate a
seed for R
• No need to know how
many generators or # of
values #s per-thread
• GG
Leapfrog with 3 cores
• Each thread leaps
ahead by 𝑁 using L
• Each thread use its
own R to generate its
own sequence
• 𝑁 = 𝑐𝑜𝑟𝑒𝑠 ∗ 𝑠𝑒𝑞𝑝𝑒𝑟𝑐𝑜𝑟𝑒
Leapfrog
● basic LCG without c:
● 𝐿 𝑘+1 = 𝑎𝐿 𝑘 𝑚𝑜𝑑 𝑚
● 𝑅 𝑘+1 = 𝑎 𝑛 𝑅 𝑘 𝑚𝑜𝑑 𝑚
● LCG: 𝐴 = 𝑎 𝑛and 𝐶 = 𝑐(𝑎 𝑛 − 1)/(𝑎 − 1) –
each core jumps ahead by n (# of cores)
Leapfrog with 3 cores
• Each sequence will
not overlap
• Final sequence is the
same as the serial
code
Leapfrog – the good
● Same sequence as serial code
● Limited choice of RNG (e.g. no MLFG)
● No need to fix the # of random values used
per core (need to fix ‘n’)
Leapfrog – the bad
● 𝑎 𝑝no longer have the good qualities of 𝑎
● power-of-2 N produce correlated sub-
sequences
● Need to fix ‘n’ - # of generators/sequences
● the period of the original RNG is shorten by a
factor of ‘n’. 32 bit LCG has a short period to
start with.
Sequence Splitting
• If we know the # of
values per thread 𝑛
• 𝐿 𝑘+1 = 𝑎 𝑛
𝐿 𝑘 𝑚𝑜𝑑 𝑚
• 𝑅 𝑘+1 = 𝑎𝑅 𝑘 𝑚𝑜𝑑 𝑚
• the sequence is a subset
of the serial code
Leapfrog and Splitting
● Only guarantees the sequences are non-
overlap; nothing about its quality
● Not invariant to degree of parallelism
● Result change when # cores change
● Serial and parallel code does not match
Lagged-Fibonacci Leapfrog
● LFG has very long period
● Period = 2 𝑝 − 1 2 𝑏−3; 𝑀 = 2 𝑏
● 𝑀 can be power-of-two!
● Much better quality than LCG
● No leapfrog for the best variant – ‘*’
● Luckily the ALFG supports leapfrogging
Issues with Leapfrog & Splitting
● LCG’s period get even shorter
● Questionable quality
● ALFG is much better but have to store
more state – for the ‘lag’.
Crypto Hash
● MD5
● TEA: tiny encryption algorithm
Core Idea
1. input trivially prepared
in parallel, e.g. linear
ramp
2. feed input value into
hash, independently
and in parallel
3. output white noise
hash
input
output
TEA
● A Feistel coder
● Input is split into L
and R
● 128B key
● F: shift and XORs or
adds
TEA
Magic ‘delta’
● 𝑑𝑒𝑙𝑡𝑎 = 5 − 1 231
● Avalanche in 6 cycles (often in 4)
● * mixes better than ^ but makes TEA
twice as slow
Applications
Fractal terrain
(vertex
shader)
Texture tiling
(fragment
shader)st
SPRNG
● Good package by Michael Mascagni
● http://www.sprng.org/
References
● [Mascagni 99] Some Methods for Parallel Pseudorandom Number Generation, 1999.
● [Park & Miller 88] Random Number Generators: Good Ones are hard to Find, CACM, 1988.
● [Pryor 94] Implementation of a Portable and Reproducible Parallel Pseudorandom Number
Generator, SC, 1994
● [Tzeng & Li 08] Parallel White Noise Generation on a GPU via Cryptographic Hash, I3D, 2008
● [Wheeler 95] TEA, a tiny encryption algorithm, 1995.
Take Aways
● Look beyond LCG
● ALFG is worth a closer look
● Crypto-based hash is most promising –
especially TEA.

More Related Content

PDF
Atlas of Pediatric EEG.pdf
PabloSebastinSaez
 
PPTX
Eeg artifacts
NeurologyKota
 
PPT
Artifacts in EEG - Recognition and differentiation
Rahul Kumar
 
PPTX
1 basics of eeg and fundamentals of its measurement
Swathy Ravi
 
PPTX
EEG Artifact and How to Resolve
Lalit Bansal
 
PPTX
Temporal plus syndrome
Pramod Krishnan
 
PPT
Normal EEG patterns, frequencies, as well as patterns that may simulate disease
Rahul Kumar
 
PPTX
Recognition of abnormal EEG.
Shehzad Hussain Raja
 
Atlas of Pediatric EEG.pdf
PabloSebastinSaez
 
Eeg artifacts
NeurologyKota
 
Artifacts in EEG - Recognition and differentiation
Rahul Kumar
 
1 basics of eeg and fundamentals of its measurement
Swathy Ravi
 
EEG Artifact and How to Resolve
Lalit Bansal
 
Temporal plus syndrome
Pramod Krishnan
 
Normal EEG patterns, frequencies, as well as patterns that may simulate disease
Rahul Kumar
 
Recognition of abnormal EEG.
Shehzad Hussain Raja
 

What's hot (20)

PPTX
EEG artifacts
Srirama Anjaneyulu
 
PPTX
seizure semiology
dahmed hamed
 
PPT
EEG artefacts
ManchesterEEG
 
PPTX
Abnormal focal eeg patterns
Pramod Krishnan
 
PPTX
Artifact removal from ambulatory eeg
Md Kafiul Islam
 
PPT
Secrets of CryENGINE 3 Graphics Technology
Tiago Sousa
 
PPTX
Mu rhythm
Mohibullah Kakar
 
PPTX
Electroencephalogram (eeg)
divyabms
 
PPT
Artifacts & Normal variants in EEG
shahanaz ahamed
 
PPT
EEG in Sleep
Rahul Kumar
 
PPT
Abnormal EEG patterns
Murtaza Syed
 
PPTX
Benign variants of eeg
NeurologyKota
 
PPTX
ARTIFACTS IN EEG.pptx
KUNKALALAVANYA
 
PPTX
Abnormal EEG patterns
Faizan Abdullah
 
PPTX
Basics of EEG
KarthiKeyan858190
 
PPTX
Deep Brain Stimulation
Deepbrainstimulation
 
PPTX
10 20 system of eeg
rakesh kumar
 
PPTX
EEG Lecture 3: Artifacts and Benign EEG variants
munnam37
 
PPTX
We st syndrome eeg
Roopchand Ps
 
EEG artifacts
Srirama Anjaneyulu
 
seizure semiology
dahmed hamed
 
EEG artefacts
ManchesterEEG
 
Abnormal focal eeg patterns
Pramod Krishnan
 
Artifact removal from ambulatory eeg
Md Kafiul Islam
 
Secrets of CryENGINE 3 Graphics Technology
Tiago Sousa
 
Mu rhythm
Mohibullah Kakar
 
Electroencephalogram (eeg)
divyabms
 
Artifacts & Normal variants in EEG
shahanaz ahamed
 
EEG in Sleep
Rahul Kumar
 
Abnormal EEG patterns
Murtaza Syed
 
Benign variants of eeg
NeurologyKota
 
ARTIFACTS IN EEG.pptx
KUNKALALAVANYA
 
Abnormal EEG patterns
Faizan Abdullah
 
Basics of EEG
KarthiKeyan858190
 
Deep Brain Stimulation
Deepbrainstimulation
 
10 20 system of eeg
rakesh kumar
 
EEG Lecture 3: Artifacts and Benign EEG variants
munnam37
 
We st syndrome eeg
Roopchand Ps
 
Ad

Similar to Parallel Random Generator - GDC 2015 (20)

PPTX
Random_Number_Generation_Algorithms.pptx
gyanarashmi99
 
PPT
Lecture06-Random-Number-Genedawrators.ppt
snhskale
 
PDF
J45015460
IJERA Editor
 
PDF
Python Programming - IX. On Randomness
Ranel Padon
 
PPT
lections tha detail aboot andom nummerss
SandeshStha2
 
PPTX
Secure coding for developers
sluge
 
PDF
Deterministic Simulation - What modern online games can learn from the Game B...
David Salz
 
PDF
Emmbeded .pdf
LeviIuo
 
PPTX
Information and data security pseudorandom number generation and stream cipher
Mazin Alwaaly
 
PPTX
Module 5 Pseudo Random Sequence(SEE NOW).pptx
AdityaAnand843311
 
PDF
CRYPTO Module 05.in.pdf
AnushaS405812
 
PDF
[IJET V2I3P1] Authors: G Hemanth kumar Dr. M. Saravanan, Charan kumar. K
IJET - International Journal of Engineering and Techniques
 
PDF
Linux randomnumbergenerator
jhonce
 
PDF
l_08png.pdf
ssuserf5dd16
 
PDF
Game Programming 07 - Procedural Content Generation
Nick Pruehs
 
PPTX
Engineering Cryptographic Applications: Using (and Misusing) Symmetric Ciphers
David Evans
 
PDF
40120140502003
IAEME Publication
 
PDF
Hd3512461252
IJERA Editor
 
PDF
Pseudo Random Number Generators
Darshini Parikh
 
PPTX
Information and network security 30 random numbers
Vaibhav Khanna
 
Random_Number_Generation_Algorithms.pptx
gyanarashmi99
 
Lecture06-Random-Number-Genedawrators.ppt
snhskale
 
J45015460
IJERA Editor
 
Python Programming - IX. On Randomness
Ranel Padon
 
lections tha detail aboot andom nummerss
SandeshStha2
 
Secure coding for developers
sluge
 
Deterministic Simulation - What modern online games can learn from the Game B...
David Salz
 
Emmbeded .pdf
LeviIuo
 
Information and data security pseudorandom number generation and stream cipher
Mazin Alwaaly
 
Module 5 Pseudo Random Sequence(SEE NOW).pptx
AdityaAnand843311
 
CRYPTO Module 05.in.pdf
AnushaS405812
 
[IJET V2I3P1] Authors: G Hemanth kumar Dr. M. Saravanan, Charan kumar. K
IJET - International Journal of Engineering and Techniques
 
Linux randomnumbergenerator
jhonce
 
l_08png.pdf
ssuserf5dd16
 
Game Programming 07 - Procedural Content Generation
Nick Pruehs
 
Engineering Cryptographic Applications: Using (and Misusing) Symmetric Ciphers
David Evans
 
40120140502003
IAEME Publication
 
Hd3512461252
IJERA Editor
 
Pseudo Random Number Generators
Darshini Parikh
 
Information and network security 30 random numbers
Vaibhav Khanna
 
Ad

More from Manchor Ko (7)

PDF
Non-Local Means and its Applications
Manchor Ko
 
PDF
ParallelRandom-mannyko
Manchor Ko
 
PDF
Dictionary Learning in Games - GDC 2014
Manchor Ko
 
PDF
omp-and-k-svd - Gdc2013
Manchor Ko
 
PPTX
Gdc2012 frames, sparsity and global illumination
Manchor Ko
 
PDF
Mesh simplification notes
Manchor Ko
 
PDF
Cache aware hybrid sorter
Manchor Ko
 
Non-Local Means and its Applications
Manchor Ko
 
ParallelRandom-mannyko
Manchor Ko
 
Dictionary Learning in Games - GDC 2014
Manchor Ko
 
omp-and-k-svd - Gdc2013
Manchor Ko
 
Gdc2012 frames, sparsity and global illumination
Manchor Ko
 
Mesh simplification notes
Manchor Ko
 
Cache aware hybrid sorter
Manchor Ko
 

Recently uploaded (20)

PPTX
Future_of_AI_Presentation for everyone.pptx
boranamanju07
 
PDF
The_Future_of_Data_Analytics_by_CA_Suvidha_Chaplot_UPDATED.pdf
CA Suvidha Chaplot
 
PDF
Key_Statistical_Techniques_in_Analytics_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
Blue Futuristic Cyber Security Presentation.pdf
tanvikhunt1003
 
PDF
oop_java (1) of ice or cse or eee ic.pdf
sabiquntoufiqlabonno
 
PPTX
INFO8116 -Big data architecture and analytics
guddipatel10
 
PPTX
INFO8116 - Week 10 - Slides.pptx big data architecture
guddipatel10
 
PDF
TIC ACTIVIDAD 1geeeeeeeeeeeeeeeeeeeeeeeeeeeeeer3.pdf
Thais Ruiz
 
PDF
An Uncut Conversation With Grok | PDF Document
Mike Hydes
 
PPTX
Employee Salary Presentation.l based on data science collection of data
barridevakumari2004
 
PDF
D9110.pdfdsfvsdfvsdfvsdfvfvfsvfsvffsdfvsdfvsd
minhn6673
 
PDF
202501214233242351219 QASS Session 2.pdf
lauramejiamillan
 
PPTX
Databricks-DE-Associate Certification Questions-june-2024.pptx
pedelli41
 
PDF
Mastering Financial Analysis Materials.pdf
SalamiAbdullahi
 
PDF
717629748-Databricks-Certified-Data-Engineer-Professional-Dumps-by-Ball-21-03...
pedelli41
 
PDF
Classifcation using Machine Learning and deep learning
bhaveshagrawal35
 
PPTX
short term internship project on Data visualization
JMJCollegeComputerde
 
PDF
Technical Writing Module-I Complete Notes.pdf
VedprakashArya13
 
PPTX
Web dev -ppt that helps us understand web technology
shubhragoyal12
 
PDF
Company Presentation pada Perusahaan ADB.pdf
didikfahmi
 
Future_of_AI_Presentation for everyone.pptx
boranamanju07
 
The_Future_of_Data_Analytics_by_CA_Suvidha_Chaplot_UPDATED.pdf
CA Suvidha Chaplot
 
Key_Statistical_Techniques_in_Analytics_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
Blue Futuristic Cyber Security Presentation.pdf
tanvikhunt1003
 
oop_java (1) of ice or cse or eee ic.pdf
sabiquntoufiqlabonno
 
INFO8116 -Big data architecture and analytics
guddipatel10
 
INFO8116 - Week 10 - Slides.pptx big data architecture
guddipatel10
 
TIC ACTIVIDAD 1geeeeeeeeeeeeeeeeeeeeeeeeeeeeeer3.pdf
Thais Ruiz
 
An Uncut Conversation With Grok | PDF Document
Mike Hydes
 
Employee Salary Presentation.l based on data science collection of data
barridevakumari2004
 
D9110.pdfdsfvsdfvsdfvsdfvfvfsvfsvffsdfvsdfvsd
minhn6673
 
202501214233242351219 QASS Session 2.pdf
lauramejiamillan
 
Databricks-DE-Associate Certification Questions-june-2024.pptx
pedelli41
 
Mastering Financial Analysis Materials.pdf
SalamiAbdullahi
 
717629748-Databricks-Certified-Data-Engineer-Professional-Dumps-by-Ball-21-03...
pedelli41
 
Classifcation using Machine Learning and deep learning
bhaveshagrawal35
 
short term internship project on Data visualization
JMJCollegeComputerde
 
Technical Writing Module-I Complete Notes.pdf
VedprakashArya13
 
Web dev -ppt that helps us understand web technology
shubhragoyal12
 
Company Presentation pada Perusahaan ADB.pdf
didikfahmi
 

Parallel Random Generator - GDC 2015

  • 2. Outline ●Serial RNG ●Background ●LCG, LFG, crypto-hash ●Parallel RNG ●Leapfrog, splitting, crypto-hash
  • 3. RNG - desiderata ● White noise like ● Repeatable for any # of cores ● Fast ● Small storage
  • 4. RNG Quality ● DIEHARD ● Spectral test ● SmallCrush ● BigCrush GPUBBS
  • 5. Power Spectrum Power spectrum density Radial Mean Radial Variance
  • 6. Serial RNG: LCG ● Linear-congruential (LCG) ● 𝑋𝑖 = 𝑎 ∗ 𝑋𝑖−1 + 𝑐 𝑚𝑜𝑑 𝑀, ● a, c and M must be chosen carefully! ● Never choose 𝑀 = 231 ! Should be a prime ● Park & Miller: 𝑎 = 16807, 𝑚 = 214748647 = 231 − 1. 𝑚 is a Mersenne prime! ● Most likely in your C runtime
  • 7. LCG: the good and bad ● Good: ● Simple and efficient even if we use mod ● Single word of state ● Bad: ● Short period – at most m ● Low-bits are correlated especially if 𝑚 = 2 𝑛 ● Pure serial
  • 8. LCG - bad ● 𝑋 𝑘_+1 = (3 ∗ 𝑋 𝑘+4) 𝑚𝑜𝑑 8 ● {1,7,1,7, … }
  • 9. Mersenne Prime modulo ● IDIV can be 40~80 cycles for 32b/32b ● 𝑘 𝑚𝑜𝑑 𝑝 where 𝑝 = 2 𝑠 − 1: ● 𝑖 = 𝑘 & 𝑝 + 𝑘 ≫ 𝑠 ; ● 𝑟𝑒𝑡 𝑖 ≥ 𝑝 ? 𝑖 − 𝑝 ∶ 𝑖;
  • 10. Lagged-Fibonacci Generator ● 𝑋𝑖 = 𝑋𝑖−𝑝 ∗ 𝑋𝑖−𝑞; p and q are the lags ● ∗ is =-* mod M (or XOR); ● ALFG: 𝑋 𝑛 = 𝑋 𝑛−𝑗 + 𝑋 𝑛−𝑘(𝑚𝑜𝑑 2 𝑚) ● * give best quality ● Period = 2 𝑝 − 1 2 𝑏−3; 𝑀 = 2 𝑏
  • 11. LFG ● The good: ●Very efficient: 2 ops + power-of-2 mod ●Much Long period than LCG; ●Directly works in floats ●Higher quality than LCG ●ALFG can skip ahead
  • 12. LFG – the bad ● Need to store max(p,q) floats ● Pure sequential – ● multiplicative LFG can’t jump ahead.
  • 13. Mersenne Twister ● Gold standard ? ● Large state (624 ints) ● Lots of flops ● Hard to leapfrog ● Limited parallelism power spectrum
  • 14. ● End of Basic RNG Overview
  • 15. Parallel RNG ● Maintain the RNG’s quality ● Same result regardless of the # of cores ● Minimal state especially for gpu. ● Minimal correlation among the streams.
  • 16. Random Tree • 2 LCGs with different 𝑎 • L used to generate a seed for R • No need to know how many generators or # of values #s per-thread • GG
  • 17. Leapfrog with 3 cores • Each thread leaps ahead by 𝑁 using L • Each thread use its own R to generate its own sequence • 𝑁 = 𝑐𝑜𝑟𝑒𝑠 ∗ 𝑠𝑒𝑞𝑝𝑒𝑟𝑐𝑜𝑟𝑒
  • 18. Leapfrog ● basic LCG without c: ● 𝐿 𝑘+1 = 𝑎𝐿 𝑘 𝑚𝑜𝑑 𝑚 ● 𝑅 𝑘+1 = 𝑎 𝑛 𝑅 𝑘 𝑚𝑜𝑑 𝑚 ● LCG: 𝐴 = 𝑎 𝑛and 𝐶 = 𝑐(𝑎 𝑛 − 1)/(𝑎 − 1) – each core jumps ahead by n (# of cores)
  • 19. Leapfrog with 3 cores • Each sequence will not overlap • Final sequence is the same as the serial code
  • 20. Leapfrog – the good ● Same sequence as serial code ● Limited choice of RNG (e.g. no MLFG) ● No need to fix the # of random values used per core (need to fix ‘n’)
  • 21. Leapfrog – the bad ● 𝑎 𝑝no longer have the good qualities of 𝑎 ● power-of-2 N produce correlated sub- sequences ● Need to fix ‘n’ - # of generators/sequences ● the period of the original RNG is shorten by a factor of ‘n’. 32 bit LCG has a short period to start with.
  • 22. Sequence Splitting • If we know the # of values per thread 𝑛 • 𝐿 𝑘+1 = 𝑎 𝑛 𝐿 𝑘 𝑚𝑜𝑑 𝑚 • 𝑅 𝑘+1 = 𝑎𝑅 𝑘 𝑚𝑜𝑑 𝑚 • the sequence is a subset of the serial code
  • 23. Leapfrog and Splitting ● Only guarantees the sequences are non- overlap; nothing about its quality ● Not invariant to degree of parallelism ● Result change when # cores change ● Serial and parallel code does not match
  • 24. Lagged-Fibonacci Leapfrog ● LFG has very long period ● Period = 2 𝑝 − 1 2 𝑏−3; 𝑀 = 2 𝑏 ● 𝑀 can be power-of-two! ● Much better quality than LCG ● No leapfrog for the best variant – ‘*’ ● Luckily the ALFG supports leapfrogging
  • 25. Issues with Leapfrog & Splitting ● LCG’s period get even shorter ● Questionable quality ● ALFG is much better but have to store more state – for the ‘lag’.
  • 26. Crypto Hash ● MD5 ● TEA: tiny encryption algorithm
  • 27. Core Idea 1. input trivially prepared in parallel, e.g. linear ramp 2. feed input value into hash, independently and in parallel 3. output white noise hash input output
  • 28. TEA ● A Feistel coder ● Input is split into L and R ● 128B key ● F: shift and XORs or adds
  • 29. TEA
  • 30. Magic ‘delta’ ● 𝑑𝑒𝑙𝑡𝑎 = 5 − 1 231 ● Avalanche in 6 cycles (often in 4) ● * mixes better than ^ but makes TEA twice as slow
  • 32. SPRNG ● Good package by Michael Mascagni ● http://www.sprng.org/
  • 33. References ● [Mascagni 99] Some Methods for Parallel Pseudorandom Number Generation, 1999. ● [Park & Miller 88] Random Number Generators: Good Ones are hard to Find, CACM, 1988. ● [Pryor 94] Implementation of a Portable and Reproducible Parallel Pseudorandom Number Generator, SC, 1994 ● [Tzeng & Li 08] Parallel White Noise Generation on a GPU via Cryptographic Hash, I3D, 2008 ● [Wheeler 95] TEA, a tiny encryption algorithm, 1995.
  • 34. Take Aways ● Look beyond LCG ● ALFG is worth a closer look ● Crypto-based hash is most promising – especially TEA.