180 research outputs found
An experimental exploration of Marsaglia's xorshift generators, scrambled
Marsaglia proposed recently xorshift generators as a class of very fast,
good-quality pseudorandom number generators. Subsequent analysis by Panneton
and L'Ecuyer has lowered the expectations raised by Marsaglia's paper, showing
several weaknesses of such generators, verified experimentally using the
TestU01 suite. Nonetheless, many of the weaknesses of xorshift generators fade
away if their result is scrambled by a non-linear operation (as originally
suggested by Marsaglia). In this paper we explore the space of possible
generators obtained by multiplying the result of a xorshift generator by a
suitable constant. We sample generators at 100 equispaced points of their state
space and obtain detailed statistics that lead us to choices of parameters that
improve on the current ones. We then explore for the first time the space of
high-dimensional xorshift generators, following another suggestion in
Marsaglia's paper, finding choices of parameters providing periods of length
and . The resulting generators are of extremely
high quality, faster than current similar alternatives, and generate
long-period sequences passing strong statistical tests using only eight logical
operations, one addition and one multiplication by a constant
Random number generation with multiple streams for sequential and parallel computing
International audienceWe provide a review of the state of the art on the design and implementation of random number generators (RNGs) for simulation, on both sequential and parallel computing environments. We focus on the need for multiple streams and substreams of random numbers, explain how they can be constructed and managed, review software libraries that offer them, and illustrate their usefulness via examples. We also review the basic quality criteria for good random number generators and their theoretical and empirical testing
Distribution of Random Streams for Simulation Practitioners
International audienceThere is an increasing interest in the distribution of parallel random number streamsin the high-performance computing community particularly, with the manycore shift. Even ifwe have at our disposal statistically sound random number generators according to the latestand thorough testing libraries, their parallelization can still be a delicate problem. Indeed, aset of recent publications shows it still has to be mastered by the scientific community. Withthe arrival of multi-core and manycore processor architectures on the scientist desktop, modelerswho are non-specialists in parallelizing stochastic simulations need help and advice in distributingrigorously their experimental plans and replications according to the state of the art in pseudo-random numbers parallelization techniques. In this paper, we discuss the different partitioningtechniques currently in use to provide independent streams with their corresponding software. Inaddition to the classical approaches in use to parallelize stochastic simulations on regular processors,this paper also presents recent advances in pseudo-random number generation for general-purposegraphical processing units. The state of the art given in this paper is written for simulationpractitioners
STOCHASTIC AND DETERMINISTIC SIMULATION TECHNIQUES FOR TRAFFIC AND ECONOMICS
In this work I present the result of different investigations conducted in the last
years in the context of stochastic modeling for decision making in the areas of traffic
simulation and economics.
Traffic simulation has seen us from the Center for Modeling, Computing and
Statistics involved in a project for the evaluation and planning of two highway stretches
in the area around Ferrara. In particular we conducted the modeling and numerical
simulation of the highway network, in collaboration with Michael Herty.
Later the study of kinetic analysis and simulation techniques proved useful in another
related setting, that is agent based models in economics, a discipline of growing
importance in understanding the workings of markets, be they financial or centered
on tangible goods.
Due to my job in the asset management industry some of the research activity has
been tilted towards practical methods for financial simulations, and in particular that
of parallel random number generation is a topic that has been gaining importance
during these last years. While at Eurizon Capital I developed a novel fast algorithm
for moving over certain widely used random number streams, and at NEC Labs Europe
this was further reimplemented as a core block of a professional C++ library for
parallel Monte Carlo simulation in finance.
Finally I present a small note on a common numerical artifact arising in Monte
Carlo simulations when only a limited number of kinetic particles are used. Already
with simple kernels the resulting probability distributions differ significantly from
those predicted by theory and obtained with large particle sets
Effective Compile-Time Analysis for Data Prefetching In Java
The memory hierarchy in modern architectures continues to be a major performance bottleneck. Many existing techniques for improving memory performance focus on Fortran and C programs, but memory latency is also a barrier to achieving high performance in object-oriented languages. Existing software techniques are inadequate for exposing optimization opportunities in object-oriented programs. One key problem is the use of high-level programming abstractions which make analysis difficult. Another challenge is that programmers use a variety of data structures, including arrays and linked structures, so optimizations must work on a broad range of programs. We develop a new unified data-flow analysis for identifying accesses to arrays and linked structures called recurrence analysis. Prior approaches that identify these access patterns are ad hoc, or treat arrays and linked structures independently. The data-flow analysis is intra- and inter-procedural, which is important in Java programs that use encapsulation to hide implementation details. We sho
- âŠ