  Monte Carlo simulations are an important tool in statistical physics, complex
systems science, and many other fields. An increasing number of these
simulations is run on parallel systems ranging from multicore desktop computers
to supercomputers with thousands of CPUs. This raises the issue of generating
large amounts of random numbers in a parallel application. In this lecture we
will learn just enough of the theory of pseudo random number generation to make
wise decisions on how to choose and how to use random number generators when it
comes to large scale, parallel simulations.
