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