Discrete sampling methods for vector Monte Carlo codes
Sampling from an arbitrary discrete distribution in Monte Carlo calculations often requires a considerable amount of computing time on sequential computers as it involves table lookup computation. The vectorization of some existing discrete sampling methods is investigated, in an attempt to speed them up. These methods are applied to various problems including a large sparse system of linear equations and neutron transport problems. The codes are written in VS Fortran and implemented on the IBM 3090-lSOVF. Their performance for scalar and vector processing is evaluated based on both statistical and computational criteria. To overcome the computational drawbacks of these sampling methods, this thesis proposes a discrete sampling method, named the weighted sampling method, which is especially suited for vector processing. This method utilizes a uniform distribution to construct samples from a probability table. Each sample is subsequently adjusted so that unbiased estimates are obtained. The proposed method enhances the vectorizability of the vector Monte Carlo codes, and achieves better performance for the scalar as well as vector processing in comparison to those of the other sampling methods for the examined problems. Four variants of the weighted sampling method are also developed. These variants involve stretching of a probability table, sampling from known nonuniform distributions and the combination of two sampling methods. For this purpose, the study of vectorizing the random number generation from binomial and geometric distributions is carried out. It is demonstrated that these variants significantly increase the efficiency of Monte Carlo solutions by reducing the sample variance and decreasing the processing time through vectorization.