Random numbers are used in computing to simulate apparently random processes in the external world or to sample large parameter spaces. Well-known sequential techniques exist for generating, in a deterministic fashion, number sequences largely indistinguishable from true random sequences. The deterministic nature of these techniques is important because it provides for reproducibility in computations.

On parallel computers, random number generation becomes more complicated because many concurrently executing tasks may require access to random numbers. Generally, efficiency concerns will require that we generate these numbers in a distributed fashion; nevertheless, we wish to preserve randomness and reproducibility. In this chapter, we introduce these issues by showing how one commonly used sequential technique can be adapted to meet these potentially conflicting requirements.

- 10.1 Sequential Random Numbers
- 10.2 Parallel Random Numbers
- 10.3 Distributed Random Generators
- 10.4 Summary
- Exercises
- Chapter Notes