[Beowulf] Quasi-Non-Von-Neumann hardware in a Beowulf

Robert G. Brown rgb at phy.duke.edu
Thu Mar 10 17:08:17 PST 2005


On Thu, 10 Mar 2005, David Mathog wrote:

> "Robert G. Brown" <rgb at phy.duke.edu> wrote
> 
> > A $30 PCI-bus card that does nothing but generate super-high-quality
> > random numbers (uniform deviates of various widths and/or ints of
> > various widths) at high speed (faster than the CPU can, which means say
> > 50 megarands/second or better) and deliver them directly to memory
> > without the CPUs help (so one can build a circular queue and keep it
> > full with only occasional calls requesting the next block of rands)
> > would be a Great Boon to Monte Carlo-heads like myself.
> 
> I've often thought the same.  The thing is, it doesn't have to be
> pseudorandom numbers, it can be real random numbers generated
> by a physical process.  For instance, put some radioactive
> material on the card and count the decays observed in a
> fixed interval.  In that case the faster you want the random
> numbers the hotter the source must be. Unfortunately a
> Curie is "only" 37,000,000,000 decays per second.  If you want
> 50 Mrands per second and use 1 Curie of material that's only
> about 740 expected decays per interval, assuming that you can catch
> them all, so not as many bits in those rands as you might want.  
> Also I'm pretty sure I don't want to be anywhere near a beowulf
> with 1 Curie of radiation in each node!  When I was considering this
> it was just to generate a small number of random numbers at a much
> slower rate, in which case radiation equivalent to a smoke alarm
> would have sufficed.

Yeah, I've done all of these computations and looked into various
quantum devices and entropy based generators.  However, you'd be
surprised how difficult it is to make a HARDWARE based random number
device that passes e.g. diehard.  There is a deep truth here.  "Random
Number Generator" really is an oxymoron in a universe governed by
natural law.  Even quantum randomness arises from the fact that the
"system" generating it is an open one in contact with a universe/bath in
an unknown state (and watch out or I'll hit you up with my "Generalized
Master Equation" lecture...;-).

Unpredictability, you can find under every leaf.  Randomness?  Not so
easy.

> It might be safer and a good deal more practical to use shot noise
> instead.  That could be integrated nicely onto a chip, with
> thousands of little amplifiers and adders all plugging away
> in parallel to generate your numbers.

Lots out them out there, but not so easy to make random enough at the
bit level to make diehard happy.  Shot noise, thermal noise, photon
counters, more.  They tend not to be cheap, not necessarily be
particularly random, and they are almost universally "slow as molasses"
compared to a good pseudorandom number generator.

> 
> And does it really have to be in a PCI slot?  Why not build it
> into memory, Then the numbers don't need to move across the bus
> at all,  any read from that stick will contain a random number.
> Just be sure that said card has some way of passing the
> POST sequence.  Tricky doing both I suppose.

Actually IIRC there was some effort by Intel to build something into a
CPU or some other part of a mobo chipset, but I don't know what came of
it.  The people who need this commercially are webvolken and encryption
algorithms, where "unpredictable" is almost as good as "random to the
nth bit of randomness".  Nobody uses marginally secure encryption if
they can help it.  However, these folks are totally happy with
kilorands/sec, let alone megarands/sec.  I need hundreds of
megarands/sec.

   rgb

-- 
Robert G. Brown	                       http://www.phy.duke.edu/~rgb/
Duke University Dept. of Physics, Box 90305
Durham, N.C. 27708-0305
Phone: 1-919-660-2567  Fax: 919-660-2525     email:rgb at phy.duke.edu





More information about the Beowulf mailing list