We summarize this introduction with our impression of

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

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 large-scale 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. Quasi-random - 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 quasi-random 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 large-scale 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.

Ask a homework question - tutors are online