A hardware framework for the fast generation of multiple long-period random number streams
Proceedings of the 16th international ACM/SIGDA symposium on Field programmable gate arrays
A Fast Jump Ahead Algorithm for Linear Recurrences in a Polynomial Space
SETA '08 Proceedings of the 5th international conference on Sequences and Their Applications
E = MC3: managing uncertain enterprise data in a cluster-computing environment
Proceedings of the 2009 ACM SIGMOD International Conference on Management of data
Pseudo-Random Number Generation on GP-GPU
PADS '11 Proceedings of the 2011 IEEE Workshop on Principles of Advanced and Distributed Simulation
Variants of Mersenne Twister Suitable for Graphic Processors
ACM Transactions on Mathematical Software (TOMS)
Scalable topic-specific influence analysis on microblogs
Proceedings of the 7th ACM international conference on Web search and data mining
Hi-index | 0.00 |
The fastest long-period random number generators currently available are based on linear recurrences modulo 2. So far, software that provides multiple disjoint streams and substreams has not been available for these generators because of the lack of efficient jump-ahead facilities. In principle, it suffices to multiply the state (a k-bit vector) by an appropriate k × k binary matrix to find the new state far ahead in the sequence. However, when k is large (e.g., for a generator such as the popular Mersenne twister, for which k = 19,937), this matrix-vector multiplication is slow, and a large amount of memory is required to store the k × k matrix. In this paper, we provide a faster algorithm to jump ahead by a large number of steps in a linear recurrence modulo 2. The method uses much less than the k2 bits of memory required by the matrix method. It is based on polynomial calculus modulo the characteristic polynomial of the recurrence, and uses a sliding window algorithm for the multiplication.