1 research outputs found
Programmtransformationen fĂŒr Vielteilchensimulationen auf Multicore-Rechnern
In dieser Dissertation werden Programmtransformationen fĂŒr die Klasse
der regulÀr-irregulÀren Schleifenkomplexe, welche typischerweise in
komplexen Simulationscodes fĂŒr Vielteilchensysteme auftreten,
betrachtet. Dabei wird die Effizienz der resultierenden Programme auf
modernen Multicore-Systemen untersucht. RegulÀre Schleifenkomplexe
zeichnen sich durch feste Schleifengrenzen und eine regelmĂ€Ăige
Struktur der AbhÀngigkeiten der Berechnungen aus, bei irregulÀren
Berechnungen sind AbhÀngigkeiten zwischen Berechnungen erst zur
Laufzeit bekannt und stark von den Eingabedaten abhÀngig. Die hier
betrachteten regulÀren-irregulÀren Berechnungen koppeln beide Arten
von Berechnungen eng. Die Herausforderung der effizienten Realisierung
regulÀr-irregulÀrer Schleifenkomplexe auf modernen Multicore-Systemen
liegt in der Kombination von Transformationstechnicken, die sowohl ein
hohes Maà an ParallelitÀt erlauben als auch die LokalitÀt der
Berechnungen berĂŒcksichtigen.
Moderne Multicore-Systeme bestehen aus einer komplexen
Speicherhierachie aus privaten und gemeinsam genutzten Caches, sowie
einer gemeinsamen Speicheranbindung. Diese neuen architektonischen
Merkmale machen es notwendig Programmtransformationen erneut zu
betrachten und die Effizienz der Berechnungen neu zu bewerten. Es
werden eine Reihe von Transformationen betrachtet, die sowohl die
Reihenfolge der Berechnungen als auch die Reihenfolge der
Abspeicherung der Daten im Speicher Àndern, um eine erhöhte rÀumliche
und zeitliche LokalitÀt zu erreichen.
Parallelisierung und LokalitĂ€t sind eng verknĂŒpft und beeinflussen
gemeinsam die Effizienz von parallelen Programmen. Es werden in
dieser Arbeit verschiedene Parallelisierungsstrategien fĂŒr
regulĂ€r-irregulĂ€re Berechnungen fĂŒr moderne Multicore-Systeme
betrachtet.
Einen weiteren Teil der Arbeit bildet die Betrachtung rein irregulÀrer
Berechnungen, wie sie typisch fĂŒr eine groĂe Anzahl von
Vielteilchensimualtionscodes sind. Auch diese Simulationscodes wurden
fĂŒr Multicore-Systeme betrachtet und daraufhin untersucht, inwieweit
diese auf modernen Multicore-CPUs skalieren. Die neuartige Architektur
von Multicore-System, im besonderen die in hohem MaĂe geteilte
Speicherbandbreite, macht auch hier eine neue Betrachtung solcher rein
irregulÀrer Berechnungen notwendig. Es werden Techniken betrachtet,
die die Anzahl der zu ladenden Daten reduzieren und somit die
Anforderungen an die gemeinsame Speicherbandbreite reduzieren