4,426 research outputs found
Portable random number generators
Computers are deterministic devices, and a computer-generated random number is a contradiction in terms. As a result, computer-generated pseudorandom numbers are fraught with peril for the unwary. We summarize much that is known about the most well-known pseudorandom number generators: congruential generators. We also provide machine-independent programs to implement the generators in any language that has 32-bit signed integers-for example C, C++, and FORTRAN. Based on an extensive search, we provide parameter values better than those previously available.Programming (Mathematics) ; Computers
A Portable High-Quality Random Number Generator for Lattice Field Theory Simulations
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
A Comparative Study of Some Pseudorandom Number Generators
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
The Taming of QCD by Fortran 90
We implement lattice QCD using the Fortran 90 language. We have designed
machine independent modules that define fields (gauge, fermions, scalars,
etc...) and have defined overloaded operators for all possible operations
between fields, matrices and numbers. With these modules it is very simple to
write QCD programs. We have also created a useful compression standard for
storing the lattice configurations, a parallel implementation of the random
generators, an assignment that does not require temporaries, and a machine
independent precision definition. We have tested our program on parallel and
single processor supercomputers obtaining excellent performances.Comment: Talk presented at LATTICE96 (algorithms) 3 pages, no figures, LATEX
file with ESPCRC2 style. More information available at:
http://hep.bu.edu/~leviar/qcdf90.htm
QCDF90: Lattice QCD with Fortran 90
We have used Fortran 90 to implement lattice QCD. We have designed a set of
machine independent modules that define fields (gauge, fermions, scalars,
etc...) and overloaded operators for all possible operations between fields,
matrices and numbers. With these modules it is very simple to write high-level
efficient programs for QCD simulations. To increase performances our modules
also implements assignments that do not require temporaries, and a machine
independent precision definition. We have also created a useful compression
procedure for storing the lattice configurations, and a parallel implementation
of the random generators. We have widely tested our program and modules on
several parallel and single processor supercomputers obtaining excellent
performances.Comment: LaTeX file, 8 pages, no figures. More information available at:
http://hep.bu.edu/~leviar/qcdf90.htm
Mixing multi-core CPUs and GPUs for scientific simulation software
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
- âŠ