NCSA Home
Contact Us Intranet

NCSA NEWS

News Home
Calendar
Images
Video on Demand
Subscribe to Our Newsletter
Frequently Asked Questions
Best of the Random Number Generators
 
 
 

By Holly Korab

Lottery managers aren't the only people with a professional interest in random numbers. For computational scientists, the ability to generate numbers in no particular order can mean the difference between good data and faulty results. These mathematical procedures are used in nearly every field of science to replicate the seeming randomness of many natural processes. "Poor random number generators are like bugs in software program," says David Ceperley, a physicist at NCSA and the University of Illinois at Urbana-Champaign. "They can distort your results and sometimes cost you hours of computing time."

Until recently, knowledge of which parallel random number generators (RNGs) worked best rested with a small circle of researchers who, like Ceperley, had been using the generators for years. Scientists new to large-scale simulations had few alternatives than trial and error.

But no longer. Ceperley and former postdoct Ashok Srinivasan, now at the Indian Institute of Technology in Mumbai, India, and Michael Mascagni, director of the Program of Scientific Computing at the University of Southern Mississippi, have developed a library of parallel random number generators that is accessible via the Web. Called SPRNG, for Scalable Parallel Random Number Generators, the library collects the top five RNGs into a single, easy-to-use package that runs on almost any computing architecture.

"Now researchers won't have to start from scratch," says Ceperley, who is also a member of the Alliance's Nanomaterials Application Technologies team. "With this library, they can take advantage of the highest quality random number generators available."

Ceperley, Srinivasan, and Mascagni began developing SPRNG five years ago with a grant from the Defense Advanced Research Projects Agency. At the time, RNGs were not only difficult to find but also many were not performing up to the standards necessary with more powerful computers. SPRNG solved both problems.

"These five generators have never failed the standard tests we put them through," says Mascagni. SPRNG has been subjected to some of the largest random number tests -- up to 1013 numbers -- and some of the first tests of random number streams in parallel. The software includes a test suite to verify the quality of the random number streams. (Its fastest generators are about five times as fast as drand48, the standard UNIX generator.)

Researchers still need to test these generators with their own applications, but SPRNG has made this step easier, too. Srinivasan modified the generators in SPRNG to run on almost any parallel computing architecture. SPRNG is also compatible with programs written in Fortran, C, C++, and Java. Users can switch among generators in the library with a single change on the load line. They can add new generators with the template included in SPRNG.

Another benefit of SPRNG is that it uses entire families of RNGs so that codes written for single processors can run in parallel -- that is, on several processors at once. When a process forks -- splits and runs on more than one processor -- the family of RNGs attached to the original processor also split, with one generator sent to each processor called into service. Usually when researchers convert a serial code into a parallel one, the same random number generator is repeated across all the processors. The result is the same as if they had run the job on a single processor.

The library has been ported to Cray T3E, IBM SP2, HP-Convex Exemplar, SGI Cray Origin2000 systems; Sun, HP, and SGI workstations; and PCs running Linux. So enthusiastically has SPRNG been embraced by the computational science community since its release in June that the development team has received an additional $1.1 million to continue work on the library. Mascagni is lead investigator.

Information on downloading SPRNG can be found at http://www.ncsa.uiuc.edu/Apps/SPRNG.


Access Online | Posted 2-23-1999