La méthode PIC MCC (Particle-In-Cell Monte-Carlo Collision) est un outils très performant et efficace en ce qui concerne l'étude des plasmas (dans notre cas, pour des plasmas froids) car il permet de décrire l'évolution dans le temps et dans l'espace, des particules chargées sous l'effet des champs auto-consistants et des collisions. Dans un cas purement électrostatique, la méthode consiste à suivre les trajectoires d'un nombre représentatif de particules chargées, des électrons et des ions, dans l'espace des phases, et de décrire l'interaction collective de ces particules par la résolution de l'équation de Poisson. Dans le cas de plasmas froid, les trajectoires dans l'espace des phase sont déterminées par le champ électrique auto-consistant et par les collisions avec les atomes neutres ou les molécules et, pour des densités relativement importantes, par les collisions entre les particules chargées. Le coût des simulations pour ce type de méthode est très élevé en termes de ressources (CPU et mémoire). Ceci est dû aux fortes contraintes (dans les simulations PIC explicites) sur le pas de temps (plus petit qu'une fraction de la période plasma et inverse à la fréquence de giration électronique), sur le pas d'espace (de l'ordre de la longueur de Debye), et sur le nombre de particules par longueur de Debye dans la simulation (généralement de l'ordre de plusieurs dizaines). L'algorithme PIC MCC peut être parallélisé sur des fermes de calculs de CPU (le traitement de la trajectoires des particules est facilement parallélisable, mais la parallélisation de Poisson l'est beaucoup moins). L'émergence du GPGPU (General Purpose on Graphics Processing Unit) dans la recherche en informatique a ouvert la voie aux simulations massivement parallèle à faible coût et ceci par l'utilisation d'un très grand nombre de processeurs disponible sur les cartes graphiques permettant d'effectuer des opérations élémentaires (e.g. calcul de la trajectoires des particules) en parallèle. Un certain nombre d'outils numérique pour le calcul sur GPU ont été développés lors de ces 10 dernières années. De plus, le constructeur de cartes graphiques NVIDIA a développé un environnement de programmation appelé CUDA (Compute Unified Device Architecture) qui permet une parallélisation efficace des codes sur GPU. La simulation PIC avec l'utilisation des cartes graphiques ou de la combinaison des GPU et des CPU a été reporté par plusieurs auteurs, cependant les modèles PIC avec les collisions Monte-Carlo sur GPU sont encore en pleine étude. A l'heure actuelle, de ce que nous pouvons savoir, ce travail est le premier a montrer des résultats d'un code PIC MCC 2D et 3D entièrement parallélisé sur GPU et dans le cas de l'étude de plasma froid magnétisé. Dans les simulation PIC, il est relativement facile de suivre les particules lorsqu'il n'y a ni pertes ni création (e.g. limites périodiques ou pas d'ionisation) de particules au cours du temps. Cependant il devient nécessaire de réordonner les particules à chaque pas en temps dans le cas contraire (ionisation, recombinaison, absorption, etc). Cette Thèse met en lumière les stratégies qui peuvent être utilisées dans les modèles PIC MCC sur GPU permettant d'outre passer les difficultés rencontrées lors du réarrangement des particules après chaque pas de temps lors de la création et/ou des pertes. L'intérêt principal de ce travail est de proposer un algorithme implémenté sur GPU du modèle PIC MCC, de mesurer l'efficacité de celui-ci (parallélisation) et de le comparer avec les calculs effectués sur GPU et enfin d'illustrer les résultats de ce modèle par la simulation de plasma froid magnétisé. L'objectif est de présenter en détail le code utilisé en de montrer les contraintes et les avantages liées à la programmation de code PIC MCC sur GPU. La discussion est largement ciblé sur le cas en 2D, cependant un algorithme 3D a également été développé et testé comme il est montré à la fin de cette thèse.The PIC MCC (Particle-In-Cell Monte-Carlo Collision) method is a very powerful tool to study plasmas (we focus here on low temperature plasmas) since it can provide the space and time evolution of the charged particle velocity distribution functions under the effect of self-consistent fields and collisions. In an electrostatic problem, the method consists of following the trajectories of a representative number of charged particles, electrons and ions, in phase space, and to describe the collective interaction of the particles by solving Poisson's equation as the particles move. In a low temperature plasma, the trajectories in phase space are determined by the self-consistent electric field and by collisions with neutral atoms or molecules and, for large enough plasma densities, by collisions between charged particles. The computational cost of the method is very high in terms of CPU and memory resources, especially when multidimensional conditions must be taken into account and when steady state regimes are studied. This is because of the constraints (at least in explicit PIC simulations) on the time step (smaller than a fraction of the plasma period and inverse of the electron gyro frequency), on the grid spacing (on the order of the Debye length), and on the number of particles per Debye length in the simulation (larger than a few tens). The PIC MCC algorithm can be parallelized on CPU clusters (the treatment of particle trajectories is easy to parallelize, but the parallelization of Poisson's equation is less straightforward). The emergence of GPGPU (General Purpose computing on Graphics Processing Unit) in scienti
fic computing opens the way to low cost massively parallel simulations by using the large number of processors of a graphic card to perform elementary calculations (e.g. computation of electron trajectories) in parallel. A number of numerical tools for GPU computing have been developed in the last 10 years. Furthermore, NVIDIA developed a programming environment called CUDA (Compute Unified Device Architecture, [1]) that allows to create efficient GPU codes. PIC modeling using GPU or a combination of GPU and CPU has been reported by several authors, however PIC models with Monte Carlo Collisions on GPU is an expanding area. To the best of our knowledge this work first reports results using a full GPU based implementation of 2D PIC-MCC model focused on low temperature magnetized plasma. Tracking of particles in PIC simulations involving no creation or loss of charged particles (e.g. periodic boundary conditions, no ionization) is straightforward. However, we need special reordering strategy when charged particle creation or loss is taken into account (e.g. ionization, absorption, attachment etc.). This thesis highlights the strategies which can be used in GPU PIC-MCC models to overcome the difficulties with particle reordering during particle creation and loss. The aim of this work is to propose PIC MCC algorithms to be implemented on GPU, to measure the efficiency of these algorithms (parallelization) and compare them with calculations on a single CPU, and to illustrate the method with an example of plasma simulation in a low temperature magnetized plasma. Our purpose is to describe the detailed features of the CUDA code that has been developed and to give an overview of the possibilities and constraints of programming a PIC MCC algorithm on a GPU, and to provide an estimate of the gain in computation time that can be obtained with respect to a standard CPU simulation. The discussion is focused on 2D simulations. The method we have developed has however already been implemented for 3D problems. The manuscript is organized as follows. Chapter I gives a state of art of CPU and GPU architectures and an overview of GPU computing and of the CUDA environment. The basic principles of PIC MCC simulations are presented in chapter II. Our implementation of the PIC MCC algorithms (particle position updating, charge density assignment, Poisson solver, field interpolation, Monte Carlo collisions, generation of Maxwellian distributions of particles) is described also in this chapter. Chapter III presents simulation results for the example of a low temperature magnetized plasma under conditions similar to those of a negative ion source for neutral beam injection in fusion plasmas. We discuss in the chapter II the computation times of different parts of the simulation and the total computation time as a function of parameters such as the number of particles or the number of grid cells. In the Chapter III, we discuss about the physics of a magnetic
filter for the negative ion sources and a theoretical analysis of the electronic transport through the magnetic barrier is shown. Finally, 3D simulations are used to compare results with 2D simulations, but a more detailed analysis still have to be done