An algorithm for parallel generation of a random permutation of a large set of distinct integers is presented. This algorithm is designed for massively parallel systems with distributed memory architectures and the MPI-based runtime environments. Scalability of the algorithm is analyzed according to the memory and communication requirements. An implementation of the algorithm in a form of a software library based on the C++ programming language and the MPI application programming interface is further provided. Finally, performed experiments are described and their results discussed. The biggest of these experiments resulted in a generation of a random permutation of 241 integers in slightly more than four minutes using 131072 CPU cores.
Publication Source (Journal or Book title)
ACM Transactions on Mathematical Software
Langr, D., Tvrdík, P., Dytrych, T., & Draayer, J. (2014). Algorithm 947: Paraperm-parallel generation of random permutations with MPI. ACM Transactions on Mathematical Software, 41 (1) https://doi.org/10.1145/2669372