Simulation of Spin Models on Nvidia Graphics Cards using CUDA

  • This thesis reports on simulating spin models on Nvidia graphics cards using the CUDA programming model; a particular approach for making GPGPU (General Purpose Computation on Graphics Processing Units) available for a wide range of software developers not necessarily acquainted with (massively) parallel programming. By comparing program execution times for simulations of the Ising model and the Ising spin glass by means of the Metropolis algorithm on Nvidia Tesla C1060 graphics cards and an Intel Core i7-920 quad-core x86 CPU (we used OpenMP to make our simulations run on all 4 execution units of the CPU), we noticed that the Tesla C1060 performed about a factor 5-10 faster than the Core i7-920, depending on the particular model and the accuracy of the calculations (32-bit or 64-bit). We also investigated the reliability of GPGPU computations, especially with respect to the occurrence of soft-errors as suggested in [23]. We noticed faulty program outputs during long-time simulations of the Ising model on ''large'' lattices. We were able to link these problems to overheating of the corresponding graphics cards. Doing Monte Carlo simulations on parallel computer architectures, as was the case in this thesis, suggests to also generate random numbers in a parallel manner. We present implementations of the random number generators Ranlux and Mersenne Twister. In addition, we give an alternative and very efficient approach for producing parallel random numbers on Nvidia graphics cards. We successfully tested all random number generators used in this thesis for their quality by comparing Monte Carlo estimates against exact calculations.
  • Vorliegende Diplomarbeit befasst sich mit der Simulation von Spin-Modellen auf Nvidia Grafikkarten. Hierbei wird das Programmiermodell CUDA verwendet, welches einer breiten Masse von Softwareentwicklern den Zugang zu GPGPU (General Purpose Computation on Graphics Processing Units) gestattet ohne dass diese notwendigerweise mit (massiv) paralleler Programmierung vertraut sein müssen. Im Rahmen von Vergleichen der Programmlaufzeiten für Simulationen des Ising- Modells sowie des Ising-Spin-Glases auf Nvidia Tesla C1060 Grafikkarten und einer Intel Core i7-920 x86 Quad-Core-CPU war zu vermerken, dass, abhängig vom konkreten Modell und der Rechengenauigkeit (32-bit oder 64-bit), die Tesla C1060 zwischen 5-10 mal schneller arbeitete als die Core i7-920 Quad-Core-CPU. Wir haben uns ebenfalls mit der Zuverlässigkeit von GPGPU-Rechnungen befasst, gerade in Hinblick auf das Auftreten von Soft-Errors, wie es in [23] angedeutet wird. Wir beobachteten falsche Programmausgaben bei langen Simulationen des Ising-Modells auf ,,großen'''' Gittern. Es gelang uns die auftretenden Probleme mit Überhitzung der entsprechenden Grafikkarten in Verbindung zu bringen. Für die Durchführung von Monte-Carlo-Simulationen auf Parallelrechnerarchitekturen, wie es in vorliegender Arbeit der Fall ist, liegt es nahe auch Zufallszahlen parallel zu erzeugen. Wir präsentieren Implementierungen der Zufallszahlengeneratoren Ranlux und Mersenne Twister. Zusätzlich stellen wir eine alternative und sehr effiziente Möglichkeit vor parallele Zufallszahlen auf Nvidia Grafikkarten zu erzeugen. Alle verwendeten Zufallszahlengeneratoren wurden erfolgreich auf ihre Qualität getestet indem Monte-Carlo-Schätzer exakten Rechnungen gegenübergestellt wurden.

Export metadata

  • Export Bibtex
Metadaten
Author:Florian Wende
Document Type:Master's Thesis
MSC-Classification:82-XX STATISTICAL MECHANICS, STRUCTURE OF MATTER
CCS-Classification:B. Hardware
J. Computer Applications
PACS-Classification:80.00.00 INTERDISCIPLINARY PHYSICS AND RELATED AREAS OF SCIENCE AND TECHNOLOGY
Granting Institution:Humboldt-Universität zu Berlin
Advisor:Ulrich Wolff, Michael Müller-Preußker, Hinnerk Stüben
Date of final exam:2010/10/20
Publishing Institution:Humboldt-Universität zu Berlin
Date of first Publication:2010/10/20
Pagenumber:149
URL:http://edoc.hu-berlin.de/master/wende-florian-2010-10-20/PDF/wende.pdf
Licence (German):License LogoCreative Commons - Namensnennung-Nicht kommerziell-Keine Bearbeitung

$Rev: 13581 $