A highly-parallel Monte-Carlo-Simulation of X-Ray-Scattering using a Particle-Mesh-Code on GPUs


A highly-parallel Monte-Carlo-Simulation of X-Ray-Scattering using a Particle-Mesh-Code on GPUs

Grund, A.

Abstract

Im Rahmen dieser Arbeit wurde eine Softwarelösung entwickelt, welche die Streuung von Röntgenstrahlung in Materie mit einem Monte-Carlo-Ansatz simuliert. Dazu wurde die Anwendung der Röntgen-Kleinwinkelstreuung (SAXS) zur Untersuchung der komplexen Prozesse bei der Interaktion intensiver kurzer Laserpulse mit Festkörpern als Motivation verwendet und beschrieben, wie Fouriertransformationen zur Näherung dieser Streuung verwendet werden können. Darauf aufbauend wurde einerseits die schnelle Fouriertransformation (FFT) als effiziente Implementierung für Computer vorgestellt und andererseits wurde auf die Limitierung dieses Ansatzes zur Beschreibung der Streuprozesse eingegangen. Um diese Limitierungen zu umgehen, wurde ein Modell entwickelt, das die Röntgenstrahlung mittels photonenähnlicher Teilchen beschreibt. Da für eine gute Abbildung der physikalischen Prozesse Milliarden solcher Teilchen benötigt werden, wurde die auf diesem Modell basierende Simulation von Anfang an auf die hoch parallele Struktur moderner Grafikprozessoren ausgelegt, welche es ermöglicht, sehr viele Teilchen gleichzeitig zu simulieren. Der implementierte Algorithmus wurde detailliert beschrieben, wobei gezielt auf die Besonderheiten von Grafikprozessoren eingegangen wurde. Da die richtige Wahl der Datentypen wesentlich für die Geschwindigkeit und Präzision des Algorithmus ist, wurde in einer umfassenden theoretischen Analyse und Tests der numerischen Genauigkeit der Implementation gezeigt, dass sogar mit Berechnungen in geringer Genauigkeit Ergebnisse erzielt werden, die keine wesentlichen Abweichungen von denen der exakten Berechnung aufzeigen. Dadurch können für typische Anwendungen kleinere Datentypen gewählt werden, was die Durchführung umfangreicherer Simulationen auf einer gegebenen Hardware erlaubt. Abschließend konnte die Korrektheit für ausgewählte Beispiele sowie eine gute Skalierbarkeit nachgewiesen werden.

English abstract:

In this thesis a software solution was developed that simulates the scattering of X-rays in matter using a Monte Carlo approach. The application of small-angle X-ray scattering in the studies of the complex processes occurring during the interaction of short intense laser pulses in solid matter provides the motivation for this work. Therefore this technique is described and it is shown how Fourier transformation can be used for approximating the scattering results. It is shown how they can be efficiently implemented in computers using the fast Fourier transform (FFT) and why this approach has limitations when describing scattering processes. To circumvent these, a model was developed that uses photon-like particles to describe the X-rays. Billions of such particles are required to provide a good approximation of the physical processes involved, which is why the simulation algorithm described in this work was designed from the ground up to support the massively parallel structure of modern graphic processing units (GPUs) allowing to simulate many particles at once. The implemented algorithm is described focusing on the special methods required to make the most use out of GPUs. As the choice of the appropriate data types is vital for the correctness and precision of the algorithm a comprehensive analysis and test of the numerical accuracy was deployed. It is shown that even reduced precision provides results that are accurate enough for a wide range of applications. Therefore, smaller data types can be used allowing to simulate much larger experiments on a given hardware. Finally the correctness and good scalability of the parallel algorithm are demonstrated.

Keywords: HPC; Exascale; Monte-Carlo; Photons; Scattering; SAXS

  • Diplomarbeit
    TU Dresden, 2016
    Mentor: Prof. Dr. W. Nagel, Dr. T. Kluge, Dr. M. Bussmann, Dr. A. Knüpfer

Permalink: https://www.hzdr.de/publications/Publ-25282