FAQ
© 2015 Staats- und Universitätsbibliothek
Hamburg, Carl von Ossietzky

Öffnungszeiten heute09.00 bis 24.00 Uhr alle Öffnungszeiten

Eingang zum Volltext in OPUS

Hinweis zum Urheberrecht

Dissertation zugänglich unter
URN: urn:nbn:de:gbv:18-67474
URL: http://ediss.sub.uni-hamburg.de/volltexte/2014/6747/


Design and Development of a GPU-Accelerated Micromagnetic Simulator

Entwurf und Entwicklung eines mikromagnetischen Simulators mit GPU-Beschleunigung

Selke, Gunnar

pdf-Format:
 Dokument 1.pdf (2.718 KB) 


SWD-Schlagwörter: Mikromagnetismus , Computersimulation , Parallelverarbeitung , Schnelle Fourier-Transformation
Basisklassifikation: 54.76
Institut 1: Physik
Institut 2: Informatik
DDC-Sachgruppe: Informatik
Dokumentart: Dissertation
Hauptberichter: Möller, Dietmar P. F. (Prof. Dr.)
Sprache: Englisch
Tag der mündlichen Prüfung: 02.04.2014
Erstellungsjahr: 2013
Publikationsdatum: 21.05.2014
Kurzfassung auf Englisch: 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.
Kurzfassung auf Deutsch: 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.

Zugriffsstatistik

keine Statistikdaten vorhanden
Legende