142 research outputs found

    Analysis of Random Number Generators Using Monte Carlo Simulation

    Get PDF
    Revisions are almost entirely in the introduction and conclusion. Results are unchanged, however the comments and recommendations on different generators were changed, and more references were added.Comment: Email: [email protected] 16 pages, Latex with 1 postscript figure. NPAC technical report SCCS-52

    A Comparative Study of Some Pseudorandom Number Generators

    Full text link
    We present results of an extensive test program of a group of pseudorandom number generators which are commonly used in the applications of physics, in particular in Monte Carlo simulations. The generators include public domain programs, manufacturer installed routines and a random number sequence produced from physical noise. We start by traditional statistical tests, followed by detailed bit level and visual tests. The computational speed of various algorithms is also scrutinized. Our results allow direct comparisons between the properties of different generators, as well as an assessment of the efficiency of the various test methods. This information provides the best available criterion to choose the best possible generator for a given problem. However, in light of recent problems reported with some of these generators, we also discuss the importance of developing more refined physical tests to find possible correlations not revealed by the present test methods.Comment: University of Helsinki preprint HU-TFT-93-22 (minor changes in Tables 2 and 7, and in the text, correspondingly

    Mixing multi-core CPUs and GPUs for scientific simulation software

    Get PDF
    Recent technological and economic developments have led to widespread availability of multi-core CPUs and specialist accelerator processors such as graphical processing units (GPUs). The accelerated computational performance possible from these devices can be very high for some applications paradigms. Software languages and systems such as NVIDIA's CUDA and Khronos consortium's open compute language (OpenCL) support a number of individual parallel application programming paradigms. To scale up the performance of some complex systems simulations, a hybrid of multi-core CPUs for coarse-grained parallelism and very many core GPUs for data parallelism is necessary. We describe our use of hybrid applica- tions using threading approaches and multi-core CPUs to control independent GPU devices. We present speed-up data and discuss multi-threading software issues for the applications level programmer and o er some suggested areas for language development and integration between coarse-grained and ne-grained multi-thread systems. We discuss results from three common simulation algorithmic areas including: partial di erential equations; graph cluster metric calculations and random number generation. We report on programming experiences and selected performance for these algorithms on: single and multiple GPUs; multi-core CPUs; a CellBE; and using OpenCL. We discuss programmer usability issues and the outlook and trends in multi-core programming for scienti c applications developers

    Adaptation of a long-period composite random number generator for parallel processing

    Get PDF
    An efficient and statistically reliable random number generator is one of the most important requirements for effective Monte Carlo simulation. The latest trend in supercomputing being towards parallelization, a random number generator was designed that will allow the generation of several uncorrelated streams of random numbers in parallel. This is achieved by the division of one period of a good serial random number generator into intervals of uniform length, one interval per processor. The serial random number generator chosen was the Marsaglia - Zaman random number generator which is a long period composite random number generator combining a linear congruential sequence with a lagged Fibonacci sequence. The mathematical relation between distantly separated seed values in each of the sequences was considered and a method was developed to obtain values from the Marsaglia - Zaman sequence spaced from each other by the length of a specified interval called the jump distance. Program\u27s implementing the algorithm were written in C and Fortran. Seed values obtained from the programs can be used to initialize different processors to use different portions of the Marsaglia - Zaman sequence. The seed values obtained by looping through all the random numbers in a section of the Marsaglia - Zaman sequence were shown to be identical to the seed values obtained from the developed algorithm. The execution time for the developed method was shown to increase only as the order of log2(jump distance)

    JAPARA - A Java parallel random number generator library for high-performance computing

    Get PDF
    Copyright © 2004 IEEERandom number generators are one of the most common numerical library functions used in scientific applications. The standard random number generator provided within Java is fine for most purposes, however it does not adequately meet the needs of large-scale scientific applications, such as Monte Carlo simulations. Previous work has addressed some of these problems by extending the standard Random API in Java and providing an implementation that includes a choice of several different generator algorithms. One issue that was not addressed in this work was concurrency. Implementations of the standard Java random number generator use synchronized methods to support the use of the generator across multiple Java threads, however this is a sequential bottleneck for parallel applications. Here we present a proposal for further extending the standard API to support parallel generation of random number streams, which we have implemented in JAPARA, a Java Parallel Random Number Generator Library for high-performance computing.P. D. Coddington, A. J. Newel

    A Portable High-Quality Random Number Generator for Lattice Field Theory Simulations

    Full text link
    The theory underlying a proposed random number generator for numerical simulations in elementary particle physics and statistical mechanics is discussed. The generator is based on an algorithm introduced by Marsaglia and Zaman, with an important added feature leading to demonstrably good statistical properties. It can be implemented exactly on any computer complying with the IEEE--754 standard for single precision floating point arithmetic.Comment: pages 0-19, ps-file 174404 bytes, preprint DESY 93-13
    corecore