From: guyeux Date: Sun, 30 Oct 2011 16:32:11 +0000 (+0100) Subject: Un peu de blabla sur l'algorithme X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/prng_gpu.git/commitdiff_plain/a6692cd736d836866212aae44ca8d787b63b1d01?hp=3add2868094bc67744e89777e13ce7087b53e01e Un peu de blabla sur l'algorithme --- diff --git a/prng_gpu.tex b/prng_gpu.tex index c504e98..2a27439 100644 --- a/prng_gpu.tex +++ b/prng_gpu.tex @@ -389,6 +389,7 @@ to the following discrete dynamical system in chaotic iterations: x_i^{n-1} & \text{ if } i \notin \mathcal{S}^n \\ \left(f(x^{n-1})\right)_{S^n} & \text{ if }i \in \mathcal{S}^n. \end{array}\right. +\label{eq:generalIC} \end{equation} where $f$ is the vectorial negation and $\forall n \in \mathds{N}$, $\mathcal{S}^n \subset \llbracket 1, \mathsf{N} \rrbracket$ is such that @@ -810,7 +811,7 @@ for all the differents nodes involves in the computation. As GPU cards using CUDA have shared memory between threads of the same block, it is possible to use this feature in order to simplify the previous algorithm, -i.e. using less than 3 xor-like PRNGs. The solution consists in computing only +i.e., using less than 3 xor-like PRNGs. The solution consists in computing only one xor-like PRNG by thread, saving it into shared memory and using the results of some other threads in the same block of threads. In order to define which thread uses the result of which other one, we can use a permutation array which @@ -855,7 +856,28 @@ version} \label{algo:gpu_kernel2} \end{algorithm} - +\subsection{Theoretical Evaluation of the Improved Version} + +A run of Algorithm~\ref{algo:gpu_kernel2} consists in four operations having +the form of Equation~\ref{equation Oplus}, which is equivalent to the iterative +system of Eq.~\ref{eq:generalIC}. That is, four iterations of the general chaotic +iterations are realized between two stored values of the PRNG. +To be certain that we are in the framework of Theorem~\ref{t:chaos des general}, +we must guarantee that this dynamical system iterates on the space +$\mathcal{X} = \mathcal{P}\left(\llbracket 1, \mathsf{N} \rrbracket\right)^\mathds{N}\times\mathds{B}^\mathsf{N}$. +The left term $x$ obviously belongs into $\mathds{B}^ \mathsf{N}$. +To prevent from any flaws of chaotic properties, we must check that each right +term, corresponding to terms of the strategies, can possibly be equal to any +integer of $\llbracket 1, \mathsf{N} \rrbracket$. + +Such a result is obvious for the two first lines, as for the xor-like(), all the +integers belonging into its interval of definition can occur at each iteration. +It can be easily stated for the two last lines by an immediate mathematical +induction. + +Thus Algorithm~\ref{algo:gpu_kernel2} is a concrete realization of the general +chaotic iterations presented previously, and for this reason, it satisfies the +Devaney's formulation of a chaotic behavior. \section{Experiments}