[ca] Durant les darreres dues dècades, la Computació d'Alt Rendiment (HPC) ha crescut ràpidament en el rendiment mitjançant la millora dels processadors d'un sol nucli a costa d'un creixement similar en el consum d'energia. La millora en els processadors d'un sol nucli ha portat a molts científics a explotar tot el paral·lelisme a nivell de procés en els seus codis. No obstant això, el rendiment dels sistemes HPC està cada cop més limitat pel consum d'energia i la densitat de potència, que s'han convertit en una de les principals preocupacions en el disseny dels nous sistemes informàtics. Com a resultat, els nous supercomputadors estan dissenyats sobre la base de l'eficiència energètica proporcionada per les noves arquitectures homogènies i heterogènies. El creixement de la potència de càlcul ha introduït un nou enfocament a la ciència, la Física Computacional. El seu impacte en l'estudi de la fusió nuclear i la física del plasma ha estat molt significatiu. Això és perquè els experiments són difícils i costosos de realitzar mentre que les simulacions del plasma amb computadors són una manera eficaç de progressar. Particle-In-Cell (PIC) és un dels mètodes més utilitzats per simular el plasma. La millora en la potència de processament ha permès un augment en la grandària i la complexitat de les simulacions PIC. La majoria dels codis PIC s'han dissenyat amb un fort èmfasi en la física i tradicionalment han inclòs només paral·lelisme a nivell de procés. Aquest enfocament no ha aprofitat les plataformes multiprocessador. Per tant, aquests codis exploten ineficientment les noves plataformes de computació i, com a conseqüència, encara estan limitats a tractar amb models simplificats. L'objectiu d'aquesta tesi és incorporar en un codi PIC les últimes tecnologies disponibles en informàtica per tal d'aprofitar els propers supercomputadors multiprocessador. Això permetrà una millora en les simulacions, ja sigui mitjançant la introducció de més física en el codi o mitjançant la incorporació de més detall en les simulacions. Aquesta tesi analitza un codi PIC anomenat EUTERPE en diferents plataformes de computació. EUTERPE és un codi de producció utilitzat per simular les inestabilitats del plasma en els reactors de fusió. S'ha implementat per clústers HPC tradicionals i s'ha paral·lelitzat prèviament a aquest treball usant només la Interfície de Pas de Missatges (MPI). El nostre estudi de la seva escalabilitat ha arribat fins a desenes de milers de processadors, que és diversos ordres de magnitud més gran que l'escalabilitat que s'havia assolit quan es va iniciar aquesta tesi. Aquesta tesi també descriu les estratègies adoptades per portar un codi PIC a una arquitectura multi-nucli, com ara la introducció de paral·lelisme a nivell de thread, la distribució de la feina entre diferents dispositius de computació i el desenvolupament d'un nou solver thread-safe. Aquestes estratègies han estat avaluades amb la seva aplicació al codi EUTERPE. Pel que fa a les arquitectures heterogènies, ha estat possible portar aquest tipus de codis de la física del plasma reescrivint part del codi o mitjançant l'ús d'un model de programació anomenat OmpSs. Aquest model de programació està especialment dissenyat per posar aquesta potència de càlcul a l'abast dels científics sense necessitat de coneixements d'experts en computació. Finalment, però no menys important, aquesta tesi no ha de ser vista com el final d'un camí, sinó més aviat com l'inici d'un treball per estendre la física simulada en els codis de fusió nuclear mitjançant l'explotació dels recursos disponibles de HPC.

[en] During the last two decades, High-Performance Computing (HPC) has grown rapidly in performance by improving single-core processors at the cost of a similar growth in power consumption. The single-core processor improvement has led many scientists to exploit mainly the process level parallelism in their codes. However, the performance of HPC systems is becoming increasingly limited by power consumption and power density, which have become a primary concern for the design of new computer systems. As a result, new supercomputers are designed based on the power efficiency provided by new homogeneous and heterogeneous architectures. The growth in computational power has introduced a new approach to science, Computational Physics. Its impact on the study of nuclear fusion and plasma physics has been very significant. This is because the experiments are difficult and expensive to perform whereas computer simulations of plasma are an efficient way to progress. Particle-In-Cell (PIC) is one of the most used methods to simulate plasma. The improvement in the processing power has enabled an increase in the size and complexity of the PIC simulations. Most PIC codes have been designed with a strong emphasis on the physics and have traditionally included only process level parallelism. This approach has not taken advantage of multiprocessor platforms. Therefore, these codes exploit inefficiently the new computing platforms and, as a consequence, they are still limited to using simplified models. The aim of this thesis is to incorporate in a PIC code the latest technologies available in computer science in order to take advantage of the upcoming multiprocessor supercomputers. This will enable an improvement in the simulations, either by introducing more physics in the code or by incorporating more detail to the simulations. This thesis analyses a PIC code named EUTERPE on different computing platforms. EUTERPE is a production code used to simulate fusion plasma instabilities in fusion reactors. It has been implemented for traditional HPC clusters and it has been parallelized prior to this work using only Message Passing Interface (MPI). Our study of its scalability has reached up to tens of thousands of processors, which is several orders of magnitude higher than the scalability achieved when this thesis was initiated. This thesis also describes the strategies adopted for porting a PIC code to a multi-core architecture, such as introducing thread level parallelism, distributing the work among different computing devices, and developing a new thread-safe solver. These strategies have been evaluated by applying them to the EUTERPE code. With respect to heterogeneous architectures, it has been possible to port this kind of plasma physics codes by rewriting part of the code or by using a programming model called OmpSs. This programming model is specially designed to make this computing power easily available to scientists without requiring expert knowledge on computing. Last but not least, this thesis should not be seen as the end of a way, but rather as the beginning of a work to extend the physics simulated in fusion codes through exploiting available HPC resources.