\maketitle
\begin{abstract}
+In this paper we present a new produce pseudo-random numbers generator (PRNG) on
+graphics processing units (GPU). This PRNG is based on chaotic iterations. it
+is proven to be chaotic in the Devany's formulation. We propose an efficient
+implementation for GPU which succeeds to the {\it BigCrush}, the hardest
+batteries of test of TestU01. Experimentations show that this PRNG can generate
+about 20 billions of random numbers per second on Tesla C1060 and NVidia GTX280
+cards.
+
\end{abstract}
mathematical formulation of chaotic dynamical systems.
In a previous work~\cite{bgw09:ip} we have proposed a new familly of chaotic
-PRNG based on chaotic iterations (IC). We have proven that these PRNGs are
+PRNG based on chaotic iterations. We have proven that these PRNGs are
chaotic in the Devaney's sense. In this paper we propose a faster version which
is also proven to be chaotic.
allows us to generated almost 20 billions of random numbers per second.
In order to establish that our PRNGs are chaotic according to the Devaney's
-formulation, we extend what we have proposed in~\cite{guyeux10}. Moreover, we define a new distance to measure the disorder in the chaos and we prove some interesting properties with this distance.
+formulation, we extend what we have proposed in~\cite{guyeux10}. Moreover, we
+define a new distance to measure the disorder in the chaos and we prove some
+interesting properties with this distance.
The rest of this paper is organised as follows. In Section~\ref{section:related
- works} we review some GPU implementions of PRNG. Section~\ref{section:BASIC RECALLS} gives some basic recalls on Devanay's formation of chaos and
-chaotic iterations. In Section~\ref{sec:pseudo-random} the proof of chaos of our
-PRNGs is studied. Section~\ref{sec:efficient prng} presents an efficient
+ works} we review some GPU implementions of PRNG. Section~\ref{section:BASIC
+ RECALLS} gives some basic recalls on Devanay's formation of chaos and chaotic
+iterations. In Section~\ref{sec:pseudo-random} the proof of chaos of our PRNGs
+is studied. Section~\ref{sec:efficient prng} presents an efficient
implementation of our chaotic PRNG on a CPU. Section~\ref{sec:efficient prng
gpu} describes the GPU implementation of our chaotic PRNG. In
Section~\ref{sec:experiments} some experimentations are presented.
Section~\ref{sec:de la relativité du désordre} describes the relativity of
-disorder. In Section~\ref{sec: chaos order topology} the proof that chaotic
-iterations can be described by iterations on a real interval is established. Finally, we give a conclusion and some perspectives.
+disorder. In Section~\ref{sec: chaos order topology} the proof that chaotic
+iterations can be described by iterations on a real interval is
+established. Finally, we give a conclusion and some perspectives.
\end{array}
$$
-%% \begin{figure}[htbp]
-%% \begin{center}
-%% \fbox{
-%% \begin{minipage}{14cm}
-%% unsigned int CIprng() \{\\
-%% static unsigned int x = 123123123;\\
-%% unsigned long t1 = xorshift();\\
-%% unsigned long t2 = xor128();\\
-%% unsigned long t3 = xorwow();\\
-%% x = x\textasciicircum (unsigned int)t1;\\
-%% x = x\textasciicircum (unsigned int)(t2$>>$32);\\
-%% x = x\textasciicircum (unsigned int)(t3$>>$32);\\
-%% x = x\textasciicircum (unsigned int)t2;\\
-%% x = x\textasciicircum (unsigned int)(t1$>>$32);\\
-%% x = x\textasciicircum (unsigned int)t3;\\
-%% return x;\\
-%% \}
-%% \end{minipage}
-%% }
-%% \end{center}
-%% \caption{sequential Chaotic Iteration PRNG}
-%% \label{algo:seqCIprng}
-%% \end{figure}
+
each thread of the GPU. Of course, it is essential that the three xor-like
PRNGs used for our computation have different parameters. So we chose them
randomly with another PRNG. As the initialisation is performed by the CPU, we
-have chosen to use the ISAAC PRNG~\ref{Jenkins96} to initalize all the
+have chosen to use the ISAAC PRNG~\cite{Jenkins96} to initalize all the
parameters for the GPU version of our PRNG. The implementation of the three
xor-like PRNGs is straightforward as soon as their parameters have been
allocated in the GPU memory. Each xor-like PRNGs used works with an internal