180 research outputs found

    An experimental exploration of Marsaglia's xorshift generators, scrambled

    Full text link
    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 21024−12^{1024} - 1 and 24096−12^{4096} - 1. 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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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

    Get PDF
    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
    • 

    corecore