Description |
1 online resource (370 pages) |
Contents |
Vorwort; Inhaltsverzeichnis; I Grundlagen der parallelen Programmierung; 1 Einführung; 1.1 Paradigmenwechsel in der Softwareentwicklung; 1.2 Anwendungsbereiche; 1.3 Parallelität in der Hardware; 1.3.1 Prozessorarchitektur; 1.3.2 Multicore-Prozessoren und Multiprozessorsysteme; 1.4 Parallelität in der Software; 1.4.1 Prozesse und Threads; 1.4.2 Virtualisierung; 1.4.3 Parallelisierende Compiler; 1.4.4 Parallele Bibliotheken; 1.4.5 Amdahl'sches Gesetz; 2 Threads; 2.1 Arbeiten mit Threads; 2.1.1 Erzeugung und Beendigung; 2.1.2 Datenaustausch; 2.1.3 Threadpools; 2.2 Scheduling |
|
2.2.1 Lastverteilung2.2.2 Affinitäten und Prioritäten; 2.3 Speicherzugriff; 2.3.1 Speichermodelle; 2.3.2 Speicherhierarchie; 3 Synchronisation; 3.1 Konflikte; 3.1.1 Entstehung; 3.1.2 Kritische Abschnitte; 3.2 Synchronisationsmechanismen; 3.2.1 Mutexe; 3.2.2 Scoped Locking; 3.2.3 Monitore; 3.2.4 Lese-/Schreibsperren; 3.2.5 Semaphore; 3.2.6 Bedingungsvariablen; 3.2.7 Barrieren; 3.2.8 Einmalige Ausführung; 3.2.9 Atomare Operationen; 3.2.10 Spinlocks; 3.3 Fallstricke und Richtlinien; 3.3.1 Konflikterkennung; 3.3.2 Verklemmungen; 3.3.3 Nichtdeterminismus; 3.3.4 Fairness; 3.3.5 Skalierbarkeit |
|
3.3.6 Threadsicherheit und Wiedereintrittsfähigkeit3.3.7 Schnittstellenentwurf; 4 Task- und Datenparallelität; 4.1 Taskparallelität; 4.1.1 Erzeugung und Synchronisation von Tasks; 4.1.2 Parallelisierung rekursiver Algorithmen; 4.1.3 Taskgruppen; 4.1.4 Spekulation; 4.1.5 Implementierung eines Task-Schedulers; 4.1.6 Programmierrichtlinien; 4.2 Datenparallelität; 4.2.1 Schleifen ohne Datenabhängigkeiten; 4.2.2 Reduktionen; 4.2.3 Präfixberechnungen; 4.2.4 Partitionierung und Abbildung; 5 Datenstrukturen; 5.1 Threadsicherer Zugriff; 5.1.1 Grobgranulare Synchronisation |
|
5.1.2 Feingranulare Synchronisation5.1.3 Optimistische Synchronisation; 5.1.4 Nichtblockierende Synchronisation; 5.1.5 Weitere Optimierungen; 5.2 Auswahl der richtigen Datenstruktur; 5.2.1 Kriterien; 5.2.2 Listen; 5.2.3 Vektoren; 5.2.4 Assoziative Felder; 5.2.5 Warteschlangen und Stacks; 5.2.6 Multimengen; 6 Entwurfsmuster; 6.1 Zugriff auf gemeinsame Daten; 6.1.1 Grundlegende Synchronisationsmuster; 6.1.2 Threadlokaler Speicher; 6.1.3 Futures; 6.1.4 Synchronisationsproxy; 6.1.5 Active Object; 6.2 Zerlegung in parallel bearbeitbare Teilprobleme; 6.2.1 Grundlegende Zerlegungsmuster |
|
6.2.2 Master-Slave6.2.3 Erzeuger-Verbraucher; 6.2.4 Aktoren; 6.2.5 Reihenfolgebewahrender Threadpool; 6.3 Fließbandverarbeitung; 6.3.1 Pipelines; 6.3.2 Pipelines mit parallelen Stufen; 6.3.3 Parallele Pipelines; 7 Architektur paralleler Software; 7.1 Entwurf paralleler Algorithmen; 7.2 Entwurf paralleler Architekturen; II Sprachen und Bibliotheken; 8 Threads und Synchronisation in C/C++; 8.1 POSIX-Threads; 8.1.1 Threads; 8.1.2 Synchronisationsmechanismen; 8.1.3 Threadlokaler Speicher und Speicherallokation; 8.2 Windows-Threads; 8.2.1 Threads; 8.2.2 Synchronisationsmechanismen |
Summary |
Hauptbeschreibung Nur parallel arbeitende Software kann die Leistung heutiger Multicore-Prozessoren ausnutzen. Das Buch vermittelt ein solides Grundwissen über Softwareentwicklung im Multicore-Zeitalter und dient als Nachschlagewerk für die tägliche Arbeit. Der erste Teil führt gut lesbar durch alle praxisrelevanten Grundlagen der Programmierung und der Architektur paralleler Software. Mit dem zweiten Teil erhält der Leser einen kompakt und strukturiert aufbereiteten Leitfaden für die produktive Entwicklung in den Sprachen C/C++, Java und C♯. Biographische Inf |
Notes |
8.2.3 Threadlokaler Speicher und Speicherallokation |
Bibliography |
Includes bibliographical references and index |
Notes |
Print version record |
Subject |
Computer software -- Development.
|
|
Multiprocessors.
|
|
Parallel programming (Computer science)
|
|
Systems on a chip.
|
|
Computer software -- Development
|
|
Multiprocessors
|
|
Parallel programming (Computer science)
|
|
Systems on a chip
|
Form |
Electronic book
|
Author |
Schüle, Tobias
|
ISBN |
9783864910807 |
|
3864910803 |
|
3898647587 |
|
9783898647588 |
|
338986475X |
|
9783389864753 |
|