This preview shows page 1. Sign up to view the full content.
Unformatted text preview: ent (vectorized with low overhead).
We summarize this introduction with our impression of the present status of Monte Carlo
surface to surface simulation. \All the pieces of the puzzle" have just come into con uence
for largescale Monte Carlo analysis. First, supercomputers are now su ciently powerful
to enable the simulation of very large engineering and physics systems, involving thousands
of surfaces and billions of particle emissions. Secondly, a comprehensive formulation for
material properties exists in the aggregate of several models. Thirdly, an estimate of the
number of trials required to achieve a speci ed level of accuracy is now obtainable prior
to execution. This makes possible a formulation which allows the number of emissions to
evolve dynamically as the simulation proceeds. Finally, a number of investigators have
e ectively vectorized diverse Monte Carlo transport algorithms, with a su cient base to
establish a synthesized approach. We now even have a quantitative model which allows the
assessment of the degree of parallelism and the amount of overhead required. Moreover, with
the emergence of lagged Fibonacci generators, parallelization at any granularity appears to
be easily implemented, and robust. With this as a point of departure, we now embark upon
a discussion of random number generators, upon which all Monte Carlo methods rely. 2 Introduction to Pseudorandom Numbers
Anyone who considers arithmetical methods of producing random digits is, of 6
course, in a state of sin. { John von Neumann (1951)
Anyone who has not seen the above quotation in at least 100 places is probably
not very old. { D. V. Pryor (1993) In this section, we shall explore possible reasons for von Neumann's curious statement.
This statement is curious for two particular reasons: (1) arithmetic methods are widely used
on all computers to generate random numbers, and (2) John von Neumann himself devised
such methods for generating random numbers. Von Neumann probably made the above
statement in reference to the fact that there are many ways to go amiss when so doing. Our
goal in this section is, through a series of example problems, to illustrate various properties
of random number generators. With a visceral understanding of the generation process and
a solid foundation of cause and e ect illustrated through examples, it is our hope that this
may help prevent \straying" into unacceptable techniques.
Indeed, all random number generators are based upon speci c mathematical algorithms,
which are repeatable and sequential. As such, the numbers are just pseudorandom. Here, for
simplicity, we shall term them just \random" numbers, subject to this realization. Formally, Truly random  is de ned as exhibiting \true" randomness, such as the time between
\tics" from a Geiger counter exposed to a radioactive element. Pseudorandom  is de ned as having the appearance of randomness, but nevertheless
exhibiting a speci c, repeatable pattern. Quasirandom  is de ned as lling the solution space sequentially (in fact, these sequences are not at all random  they are just comprehensive at a preset level of granularity).
For example, consider the integer space 0, 100]. One quasirandom sequence which
lls that space is 0, 1, 2,...,99, 100. Another is 100, 99, 98,...,2, 1, 0. Yet a third is 23,
24, 25,..., 99, 100, 0, 1,..., 21, 22. Pseudorandom sequences which would ll the space
are pseudorandom permutations of this set (they contain the same numbers, but in a
di erent, \random" order). As Monte Carlo simulations have been developed on computers since their inception,
methods of generating and dealing with random numbers are fairly well established. As
literally millions or even billions of random numbers are required in a largescale simulation,
the process should ideally be very e cient. Indeed, many random number generator routines
are written in assembly language for this reason. Sometimes, random number routines are
even put \in line" to avoid the overhead associated with subroutine calls. Often on vector
and/or parallel computers, blocks of random numbers are generated to amortize, over many
random numbers, the overhead associated with the generation of one random number. It
is noteworthy that the FORTRAN 90 ANSI standard is the rst one to identify a random
number generator in the ANSI speci cation of the language! Hitherto, it has existed only as
an extension to the FORTRAN standard. Remarks 7 We shall not provide a comprehensive treatise on random numbers. There are many good
references which already do so. Knuth Knuth, 1981] is the de nitive reference, although it
may be a bit too abstract for the typical computational scientist. Some implementations of
algorithms (of which, at large scale, some are good and some are not so good) can be found
in Numerical Recipes Press et al., 1990]. Perhaps the most accessible and lucid exposition
is that of Anderson Anderson, 1990], who presents some excellent illustrative graphics  an
approach which we emulate to...
View
Full
Document
This document was uploaded on 01/28/2014.
 Fall '14

Click to edit the document details