17 research outputs found

    Enabling task parallelism for many-core architectures

    Get PDF

    Compilation techniques and language support to facilitate dependence-driven computation

    Get PDF
    As the demand increases for high performance and power efficiency in modern computer runtime systems and architectures, programmers are left with the daunting challenge of fully exploiting these systems for efficiency, high-level expressibility, and portability across different computing architectures. Emerging programming models such as the task-based runtime StarPU and many-core architectures such as GPUs force programmers into choosing either low-level programming languages or putting complete faith in the compiler. As has been previously studied in extensive detail, both development approaches have their own respective trade-offs. The goal of this thesis is to help make parallel programming easier. It addresses these challenges by providing new compilation techniques for high-level programming languages that conform to commonly-accepted paradigms in order to leverage these emerging runtime systems and architectures. In particular, this dissertation makes several contributions to these challenges by leveraging the high-level programming language Chapel in order to efficiently map computation and data onto both the task-based runtime system StarPU and onto GPU-based accelerators. Different loop-based parallel programs and experiments are evaluated in order to measure the effectiveness of the proposed compiler algorithms and their optimizations, while also providing programmability metrics when leveraging high-level languages. In order to exploit additional performance when mapping onto shared memory systems, this thesis proposes a set of compiler and runtime-based heuristics that determine the profitable processor tile shapes and sizes when mapping multiply-nested parallel loops. Finally, a new benchmark-suite named P-Ray is presented. This is used to provide machine characteristics in a portable manner that can be used by either a compiler, an auto-tuning framework, or the programmer when optimizing their applications

    Higher-order particle representation for a portable unstructured particle-in-cell application

    Get PDF
    As the field of High Performance Computing (HPC) moves towards the era of Exascale computation, computer hardware is becoming increasingly parallel and continues to diversify. As a result, it is now crucial for scientific codes to be able to take advantage of a wide variety of hardware types. Additionally, the growth in compute performance has outpaced the improvement in memory latency and bandwidth; this issue now poses a significant obstacle to performance. This thesis examines these matters in the context of modern plasma physics simulations, specifically those that make use of the Particle-in-Cell (PIC) method on unstructured computational grids. Specifically, we begin by documenting the implementation of the particle-based kernels of such a code using a performance portability library to enable the application to run on a variety of modern hardware, including both CPUs and GPUs. The use of hardware specific tuning is also explored, culminating in a 3x speedup of a key component of the core PIC algorithm. We also show that portability is achievable on both single-node machines and production supercomputers of multiple hardware types. This thesis also documents an algorithmic change to particle representation within the same code that improves solution accuracy, and adds compute intensity { an important property where memory bandwidth is limited and the ratio of the amount of computation to memory accesses is low. We conclude the work by comparing the performance of the modified algorithm to the base implementation, where we find that shifting the simulation workload towards computation can improve parallel efficiency by up to 2:5x. While the performance improvements that were hoped for were not achieved, we end this thesis by postulating that the proposed methods will become more viable as compilers and hardware improve

    From the mass-concentration relation of haloes to GPUs and into the web

    Get PDF
    Aufgrund ihrer Größe birgt die Durchführung von modernen, hydrodynamischen, kosmologischen Simulationen eine ganzen Reihe von Herausforderungen in sich, umso mehr, da hier das Ziel ist, derartige Simulationen für noch größere und besser aufgelöste Volumina durchzuführen. Dabei helfen die Analysen derartiger Simulationen die so verbesserten numerischen Modelle mit Beobachtungsdaten zu vergleichen. Zu aller erst ist es hier unbedingt notwendig in den Anwendungsprogrammen SIMT (Single Instruction Multiple Thread) und/oder SIMD (BSingle Instruction Multiple Data) Instruktionen zu nutzen, um die Rechenleistung der aktuellen und kommenden Generationen von Supercomputern so gut wie möglich auszunutzen zu können. Darüber hinaus stellt die Datenmenge, welche derartige hydrodynamischen, kosmologischen Simulationen der jüngsten Generation (>0.5PB>0.5PB) generieren, eine große Herausforderung dar, wenn es darum geht wissenschaftliche Ergebnisse und die Simulationsdaten selbst öffentlich zugänglich zu machen und mit anderen Wissenschaftlern zu teilen: Abfragen, Durchsuchen und Filtern einer so großen Datenmenge erfordern Kenntnisse aus dem Bereich des High Performance Computing (HPC). Diese gehören häufig nicht zum Ausbildungshintergrund eines auf diesem Gebiet tätigen Wissenschaftlers. Da für solche Datenmenge HPC Speichersysteme zum Einsatz kommen, wird der öffentliche Zugriff auf diese wissenschaftlichen Daten und Ergebnisse zusätzlich stark erschwert, da der Zugriff üblicherweise für Wissenschaftler nur mit einem Account für die jeweilige HPC-Einrichtungen möglich ist. In dieser Arbeit werden diese verschiedenen Aspekte miteinader verknüpft. Eine ausführliche Optimierung des zugrundeliegenden Simulationsprogramm (Gadget3) erlaubte es, die bisher größte derartige Simulation durchzuführen. Diese erlaubt durch ihren großen dynamischen Bereich die Wechselwirkung der sichtbaren und der dunklen Materie auf die zugrundeliegende Form der sich bildenden Halos sehr genau und über einen großen Bereich, von Galaxien bis zu den massivsten Galaxienhaufen, zu studieren. Des weiteren wurde ein Webinterface entwickelt, mit denen die Ergebnisse derartiger Simulationen mit anderen Wissenschaftlern einfach und umfangreich geteilt werden können. Im ersten Schritt ergab die detaillierte Performance-Analyse, dass der Prozess des Suchens von Nachbarteilchen, welche mit einem Teilchen in direkter Wechselwirkung stehen (im Folgenden Neighbour-Search genannt), die Zeit, welche für die Berechnung der eigentlichen physikalischen Prozesse zur Verfügung steht, stark limitiert. Dieser Neighbour-Search besteht darin, einem Baum-Graphen zu folgen und die in ihm angeordneten, benachbarten Teilchen entweder mithilfe eines öffnungskriteriums des Baumes (in der Regel ein geometrisches Kriterium, welches den erlaubten Fehler in der Gravitationsberechnung beschreibt) oder mit Hilfe einer vordefinierten Suchlänge (z. B. die in der Hydrodynamik verwendete Kernelgröße) zu sammeln. Wir haben das oben skizzierte Problem mit Hilfe eines Optimierungsschemas, welches wir als Neighbour-Recycling bezeichnen, auf ein akzeptables Maß vermindert. Dafür nutzen wir die raumfüllende Peano-Kurve, welche in der Gadget-Implementierung für den Lastbalance-Algorithmus verwendet wird. Diese sorgt dabei dafür, dass im simulierten Volumen benachbarte Teilchen auch im Hauptspeicher des Rechners benachbart abgelegt werden. Wir minimierten den oben genannten Engpass, indem wir die Teilchen in Blöcken gruppieren, welche fortlaufend im Hauptspeicher liegen und die normale Neighbour-Search für die einzelnen Teilchen durch einen Neighbour-Search mit entsprechend leicht größerer Suchlängen ersetzten. Dieses oben beschriebene Code-Refactoring eröffnete die Möglichkeit, die Anwendung Gadget3 auf das gesamte SuperMUC-System zu skalieren und so die bis dato größte, hydrodynamische, kosmologische Simulation (Box0/mr, Magneticum-Projekt, \footnote{\href{http://www.magneticum.org}{http://www.magneticum.org}}) durchzuführen. Wir analysieren die Ergebnisse dieser Simulation und zweier weiterer Magneticum Simulationen und vergleichen den Konzentrationsindex (Verhältnis Cluster-Radius zu Skalen-Radius) von Galaxien und Galaxienhaufen mit früheren Theorie- und Beobachtungsarbeiten zu diesem Thema in einem bis dahin für hydrodynamische Simulationen unerreichten Massenbereich. Unter Berücksichtigung von baryonischer Materie in den Magneticum-Simulationen konnten wir zeigen, dass sogenannte fossile Gruppen (d. H. Objekte, die den größten Teil ihrer Lebensdauer existiert haben ohne Störungen ausgesetzt gewesen zu sein) den höchsten Wert von Konzentrationsindex haben. Dies ist in klarer übereinstimmung mit aktuellen Beobachtungen. Um diese größten Simulationen öffentlich zugänglich zu machen, haben wir ein Webportal entwickelt und implementiert. In diesem kann ein Benutzer zunächst eine Simulation auswählen und interessante Galaxienhaufen suchen und auswählen. Dazu stehen einerseits sehr hoch aufgelöste 2D-Karten zum Navigieren zur Verfügung, andererseits erlaubt ein Interface komplexe Abfragen von Detailinformationen der Galaxie und Galaxienhaufen. Diese können sogar grafisch zusammengestellt werden und als Elemente in benutzerdefinierten Grafen dargestellt werden. Nach der Auswahl eines Objekts (z.B. Galaxienhaufen) kann der Benutzer weitere, über das Portal zur Verfügung stehende Post-Processing Jobs starten. Durch die komplexe Architektur des Portals ist dies möglich, ohne dass der Nutzer einen eigenen Nutzer-Account auf dem HPC-System besitzt. Es reicht eine simple Registrierung im Portal aus. Inzwischen hat das Portal mehr als hundert registrierte Nutzen und es werden jeden Monat tausende von Post-Processing Jobs über das Portal ausgeführt. Da in der aktuellen und kommenden Generationen von Supercomputern Beschleuniger (z. B. Grafikkarten) eine zunehmend wichtigere Rolle spielen, haben wir des weiteren daran gearbeitet, Gadget3 auch auf GPU-basierten Systemen effizient nutzen zu können. Diese Neuentwicklung in Gagdet3 ermöglicht es, rechenintensive Teile der Applikation auch auf den GPUs der entsprechenden Supercomputer auszuführen. Damit eröffnen wir erstmals die Möglichkeit, die kommende Generation von Supercomputern, welche SIMT-/SIMD freundliche Programme benötigen, hoch effizient nutzen zu können. Tests der neuen Implementierung ergaben eine Beschleunigung von >2x>2\textrm{x} bei der Verwendung der Beschleuniger für ein realistische Setup, entsprechend einer der hochauflösenden Magneticum-Simulationen.The current generation of hydrodynamic cosmological simulations is facing a number of challenges when it comes to running and analysing larger and more resolved volumes in order to compare numerical studies with observational data. First, simulation codes need to take advantage of Single Instruction Multiple Thread (SIMT) and Single Instruction Multiple Data (SIMD) paradigms in order to fully exploit the computational capabilities of current and future generations of super computers. Additionally, the amount of data generated by the most recent hydrodynamic simulations (>0.5PB>0.5 PB) poses a physical barrier when it comes to opening the access and sharing results with the scientific community: queries, look ups and filtering over such high amount of data need High Performance Computing (HPC) skills that are often not part of the background knowledge of a scientist working in such field; additionally, since only HPC storages are capable of containing this amounts of data, this prevents a public access of the scientific results, as scientists are required to apply and register to HPC facilities. In this work, these different aspects are linked together. A tailored optimisation and a refactoring of a widely used code for simulations (Gadget3) made it possible to perform the largest hydrodynamic simulation so far. As the various simulated matter contents (dark matter, gas, stars and black holes) cluster together to form haloes, by combinig three cosmological hydrodynamic simulations it was possible to study in detail the shape of simulated objects with masses from the ones of single galaxies to masses comparable to the largest galaxy clusters of our universe. Furthermore, a web interface has been developed, where the results of simulations can be easily and extensively shared with other scientists. And finally, there has been an effort in shaping and preparing the code for the new and current generation of super computers, by porting it to the GPUs. The first part of this work shows how the process of neighbour search prevents large Gadget simulations from spending most of its execution time in actual physical computations. The neighbour search consists of walking the tree and collecting neighbouring particles over a tree opening criteria or over a pre-defined searching length. To solve the issue an approach to recycle neighbours is used. This approach takes advantage of the space-filling curve ordering of Gadget particles, which itself ensures that particles that are nearby in memory are also nearby in the simulated volume. This algorithm solves the aforementioned bottleneck by grouping particles in memory-consecutive chunks and by performing less neighbour searches over larger searching length. This refactoring opens the possibility to scale the code over the whole SuperMUC machine and run one of the largest cosmological hydrodynamic simulations (Box0/mr and Box2b/hr from the Magneticum project). I analyse the results of this simulation and other two Magneticum simulations and compare the concentration parameter (ratio between cluster radius and its scale radius) of galaxy clusters with previous theoretical and observational works over an unprecedented mass range for hydrodynamic simulations. Thanks to the presence of baryons in Magneticum simulations, it is possible to show how Magneticum simulations predict that fossil groups (i.e. objects that have lived un-perturbed for most of their life) have the highest value of concentration values, in agreement with observations. In order to share and make the largest simulations accessible, a web portal \footnote{\href{http://c2papcosmosim.uc.lrz.de}{http://c2papcosmosim.uc.lrz.de}} is built to let users find interesting clusters by (i) navigating over zoomable 2D maps, (ii) by graphically composing complex queries over galaxy and galaxy cluster properties and (iii) by selecting elements in user-defined plots. Users can then select a galaxy cluster and submit some pre-defined post-processing jobs that will run in a computing cluster, without any actual registration at the computing facility. As the current and new generations of super computers may employ accelerators (e.g. graphic cards), I present a way to port Gadget3 to the GPUs. The reason of this porting is twofold: besides making it possible to run on the current GPU based super computers, to fully exploit the new generation of super computer it is anyway necessary to have SIMT and SIMD friendly code. A test of the new implementation of the code shows a total speedup greater than 22 in one of the high-resolution Magneticum cosmological boxes

    High Performance Computing Facility Operational Assessment, 2012 Oak Ridge Leadership Computing Facility

    Full text link

    Software for Exascale Computing - SPPEXA 2016-2019

    Get PDF
    This open access book summarizes the research done and results obtained in the second funding phase of the Priority Program 1648 "Software for Exascale Computing" (SPPEXA) of the German Research Foundation (DFG) presented at the SPPEXA Symposium in Dresden during October 21-23, 2019. In that respect, it both represents a continuation of Vol. 113 in Springer’s series Lecture Notes in Computational Science and Engineering, the corresponding report of SPPEXA’s first funding phase, and provides an overview of SPPEXA’s contributions towards exascale computing in today's sumpercomputer technology. The individual chapters address one or more of the research directions (1) computational algorithms, (2) system software, (3) application software, (4) data management and exploration, (5) programming, and (6) software tools. The book has an interdisciplinary appeal: scholars from computational sub-fields in computer science, mathematics, physics, or engineering will find it of particular interest
    corecore