Spelling suggestions: "subject:"parallele programmierung"" "subject:"parallele programmierungs""
1 |
Towards Implicit Parallel Programming for SystemsErtel, Sebastian 30 December 2019 (has links)
Multi-core processors require a program to be decomposable into independent parts that can execute in parallel in order to scale performance with the number of cores. But parallel programming is hard especially when the program requires state, which many system programs use for optimization, such as for example a cache to reduce disk I/O. Most prevalent parallel programming models do not support a notion of state and require the programmer to synchronize state access manually, i.e., outside the realms of an associated optimizing compiler. This prevents the compiler to introduce parallelism automatically and requires the programmer to optimize the program manually.
In this dissertation, we propose a programming language/compiler co-design to provide a new programming model for implicit parallel programming with state and a compiler that can optimize the program for a parallel execution.
We define the notion of a stateful function along with their composition and control structures. An example implementation of a highly scalable server shows that stateful functions smoothly integrate into existing programming language concepts, such as object-oriented programming and programming with structs. Our programming model is also highly practical and allows to gradually adapt existing code bases. As a case study, we implemented a new data processing core for the Hadoop Map/Reduce system to overcome existing performance bottlenecks. Our lambda-calculus-based compiler automatically extracts parallelism without changing the program's semantics. We added further domain-specific semantic-preserving transformations that reduce I/O calls for microservice programs. The runtime format of a program is a dataflow graph that can be executed in parallel, performs concurrent I/O and allows for non-blocking live updates.
|
2 |
Programmtransformationen für Vielteilchensimulationen auf Multicore-RechnernSchwind, Michael 15 December 2010 (has links) (PDF)
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.
|
3 |
Programmtransformationen für Vielteilchensimulationen auf Multicore-RechnernSchwind, Michael 01 December 2010 (has links)
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.
|
Page generated in 0.0876 seconds