Random number (RN) generation is the key software component that permits random sampling. Software for parallel RN generation (RNG) should be based on RNGs that are good serial generators, but also are suitable for concurrent execution, i.e. RNs produced by different concurrent processes must be statistically independent of one another. With dependence, the work done on one concurrent process will be partially redone on another process, thus reducing the efficiency of the concurrent computation and defeating the purpose of concurrency. Although parallel RNGs exist for older parallel computing paradigms such as clusters, modern advances in computer architecture, specifically the hardware support for multithreading via multicore and other architectures, and widely available computational coprocessor technologies, such as the General Purpose Graphics Processing Unit (GPGPU) have created the need for high-quality RNG software to support these new architectural features. Thus, this Phase I research project addresses these new architectures from a mathematically rigorous stand-point of preventing statistical dependence and allowing for reproducibility in modeling and simulation as well as other applications. In addition, it investigates applications to small memory technologies such as embedded systems and radio-frequency identification (RFID) chips.
More »