]> AND Private Git Repository - prng_gpu.git/blobdiff - prng_gpu.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
Avancées
[prng_gpu.git] / prng_gpu.tex
index 3e1aa83e4c9f7c60f9d4c99b350761668822bc6b..f0482538e2238b6131a940654e744d204d24049b 100644 (file)
@@ -1,6 +1,11 @@
 \documentclass{article}
 \usepackage[utf8]{inputenc}
 \usepackage[T1]{fontenc}
 \documentclass{article}
 \usepackage[utf8]{inputenc}
 \usepackage[T1]{fontenc}
+\usepackage{fullpage}
+\usepackage{fancybox}
+\usepackage{amsmath}
+\usepackage{moreverb}
+\usepackage{commath}
 
 \title{Efficient generation of pseudo random numbers based on chaotic iterations on GPU}
 \begin{document}
 
 \title{Efficient generation of pseudo random numbers based on chaotic iterations on GPU}
 \begin{document}
@@ -22,7 +27,50 @@ Présentation des itérations chaotiques
 
 \section{Efficient prng based on chaotic iterations}
 
 
 \section{Efficient prng based on chaotic iterations}
 
-On parle du séquentiel avec des nombres 64 bits
+On parle du séquentiel avec des nombres 64 bits\\
+
+Faire le lien avec le paragraphe précédent (je considère que la stratégie s'appelle $S^i$\\
+
+In  order to  implement efficiently  a PRNG  based on  chaotic iterations  it is
+possible to improve  previous works [ref]. One solution  consists in considering
+that the  strategy used $S^i$  contains all the  bits for which the  negation is
+achieved out. Then instead of applying  the negation on these bits we can simply
+apply the  xor operator between  the current number  and the strategy  $S^i$. In
+order to obtain the strategy we also use a classical PRNG.
+
+\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}
+
+In Figure~\ref{algo:seqCIprng}  a sequential  version of our  chaotic iterations
+based PRNG  is presented.  This version  uses three classical 64  bits PRNG: the
+\texttt{xorshift},  the \texttt{xor128}  and the  \texttt{xorwow}.   These three
+PRNGs  are presented  in~\cite{Marsaglia2003}.   As each  PRNG  used works  with
+64-bits and as  our PRNG works with 32 bits, the  use of \texttt{(unsigned int)}
+selects the 32 least  significant bits whereas \texttt{(unsigned int)(t3$>>$32)}
+selects the 32  most significants bits of the  variable \texttt{t}. This version
+sucesses   the   BigCrush   of    the   TestU01   battery   [P.   L’ecuyer   and
+  R. Simard. Testu01].
 
 \section{Efficient prng based on chaotic iterations on GPU}
 
 
 \section{Efficient prng based on chaotic iterations on GPU}
 
@@ -37,5 +85,6 @@ On donne des temps de générations de nombre sur GPU puis on rappatrie sur CPU
 \section{Lyapunov}
 
 \section{Conclusion}
 \section{Lyapunov}
 
 \section{Conclusion}
-
+\bibliographystyle{plain}
+\bibliography{mabase}
 \end{document}
 \end{document}