Volltextdatei(en) vorhanden
Titel: Design and Development of a GPU-Accelerated Micromagnetic Simulator
Sonstige Titel: Entwurf und Entwicklung eines mikromagnetischen Simulators mit GPU-Beschleunigung
Sprache: Englisch
Autor*in: Selke, Gunnar
GND-Schlagwörter: Mikromagnetismus; Computersimulation; Parallelverarbeitung; Schnelle Fourier-Transformation
Erscheinungsdatum: 2013
Tag der mündlichen Prüfung: 2014-04-02
Zusammenfassung: 
Micromagnetic simulators are important software tools to investigate ferromagnetic nano- and microstructures. In this work the fast micromagnetic simulator MicroMagnum is developed, which runs on CPUs as well as on graphics processing units (GPUs). Its high performance on GPUs allows the investigation of large simulation problems that could not be treated before by previous software. From the beginning MicroMagnum was developed with strong feedback by the users to obtain a high usability. Fast algorithms using the finite-difference method are presented that implement the micromagnetic model efficiently. By employing graphics processing units, a speedup of up to two orders of magnitude is achieved.

Modern graphics processors allow general programming on graphic processing units. GPUs have many compute cores and their programming model is inherently parallel. Thus the algorithms have to be parallelized before they are ported to the GPU architecture. Several parallel software patterns are adapted to the GPU architecture and applied to the implementation of the micromagnetic model.

The software requirements of performance, correctness, extendability, usability, portability, and maintainability are desired properties. The simulator is written in Python and C++. To achieve high software extendability, the dynamic scripting language Python is used for the implementation of the non-speed-critical software parts. Likewise the users of the simulator write their simulation scripts in Python. A module system that manages the dependencies of the model variables of the micromagnetic model is presented. An abstraction layer that hides the implementation details of the CPU and GPU algorithms and data representations is developed. This speed-critical software layer is written in C++ and CUDA C.

Several benchmarks that compare the performance of the CPU and GPU routines are performed.

As a use case, non-linear vortex-core dynamics are investigated using simulations performed by MicroMagnum.

Mikromagnetische Simulatoren sind wichtige Werkzeuge, um ferromagnetische Mikro- und Nanostrukturen zu untersuchen. In dieser Arbeit wird MicroMagnum, ein performanter mikromagnetischer Simulator, entwickelt. Der Simulator läuft sowohl auf CPUs als auch auf Grafikprozessoren (GPUs). Die hohe Performanz auf GPUs erlaubt die Durchf\"uhrung von komplexen Simulationen, die voher nicht berechenbar waren. Von Anfang an wurde MicroMagnum unter ständigem Feedback seiner Benutzer entwickelt, um eine hohe Benutzbarkeit zu garantieren.

Schnelle Algorithmen, die das mikromagnetische Modell mittels der finite Differenzen Methode berechnen, werden präsentiert. Durch die Nutzung von Grafikprozessoren wird gegenüber der CPU eine Geschwindigkeitssteigerung von bis zu zwei Größenordnungen erreicht.

Moderne Grafikkarten erlauben die freie Programmierung ihrer Grafikprozessoren. Die Prozessoren haben viele Rechenkerne, und ihr Programmiermodell ist von Natur aus parallel. Dadurch müssen die Algorithmen parallelisiert werden, bevor sie auf die GPU-Architektur portiert werden. Mehrere parallele Software-Entwurfsmuster werden auf die GPU-Architektur adaptiert und auf das mikromagnetische Modell angewendet.

Die Software-Qualitätskriterien Performanz, Korrektheit, Erweiterbarkeit, Benutzbarkeit, Portabilität und Wartbarkeit sind erwünschte Eigenschaften. Der Simulator wurde in Python und C++ entwickelt. Um eine gute Software-Erweiterbarkeit zu erreichen, wird die dynamisch typisierte Python-Skriptprogrammiersprache für die Implementation der Geschwindigkeitsunkritischen Programmteile verwendet. Ebenso schreiben die Benutzer der Software ihre Simulationsprogramme in Python. Ein Modulsystem wird präsentiert, welches die Abhängigkeiten zwischen den Modellvariablen des mikromagnetischen Modells verwaltet. Eine Abstraktionsschicht enthält die Implementationsdetails der CPU- und GPU-algorithmen und Datenstrukturen. Diese Performanzkritischen Routinen sind in C++ und CUDA C implementiert.

Mehrere Benchmarks werden durchgeführt, um die Geschwindigkeit auf CPUs und GPUs zu vergleichen.

Als Anwendungsfall wird die nicht-lineare Dynamik von magnetischen Vortizes durch MicroMagnum untersucht.
URL: https://ediss.sub.uni-hamburg.de/handle/ediss/5407
URN: urn:nbn:de:gbv:18-67474
Dokumenttyp: Dissertation
Betreuer*in: Möller, Dietmar P. F. (Prof. Dr.)
Enthalten in den Sammlungen:Elektronische Dissertationen und Habilitationen

Dateien zu dieser Ressource:
Datei Beschreibung GrößeFormat  
Dissertation.pdf2.72 MBAdobe PDFÖffnen/Anzeigen
Zur Langanzeige

Diese Publikation steht in elektronischer Form im Internet bereit und kann gelesen werden. Über den freien Zugang hinaus wurden durch die Urheberin / den Urheber keine weiteren Rechte eingeräumt. Nutzungshandlungen (wie zum Beispiel der Download, das Bearbeiten, das Weiterverbreiten) sind daher nur im Rahmen der gesetzlichen Erlaubnisse des Urheberrechtsgesetzes (UrhG) erlaubt. Dies gilt für die Publikation sowie für ihre einzelnen Bestandteile, soweit nichts Anderes ausgewiesen ist.

Info

Seitenansichten

24
Letzte Woche
Letzten Monat
geprüft am 18.05.2021

Download(s)

24
Letzte Woche
Letzten Monat
geprüft am 18.05.2021
Werkzeuge

Google ScholarTM

Prüfe