\section{\converse{} Programming}

\subsubsection{What is Converse? Should I use it?}

\htmladdnormallink{Converse}{http://charm.cs.uiuc.edu/research/converse/}
is the low-level portable messaging layer that Charm++ is built on, but
you don't have to know anything about Converse to use Charm++. You might
want to learn about Converse if you want a capable, portable foundation
to implement a new parallel language on.

\subsubsection{How much does getting a random number generator ``right'' matter?}

drand48 is nonportable and woefully inadequate for any real simulation
task. Even if each processor seeds drand48 differently, there is no guarantee
that the streams of pseduo-random numbers won't quickly overlap. A better
generator would be required to ``do it right'' (See Park \& Miller, CACM
Oct. 88).

\subsubsection{What should I use to get a proper random number generator?}

Converse provides a 64-bit pseudorandom number generator based on the
SPRNG package originally written by Ashok Shrinivasan at NCSA. For detailed
documentation, please take a look at the Converse Extensions Manual on
the Charm++ website. In short, you can use {\em CrnDrand()} function
instead of the unportable {\em drand48()} in Charm++.
