Programmierung von parallelen und verteilten Systemen
Zunächst unterscheiden wir zwischen
- parallelen Rechnen
- hier stehen Algorithmen zur Debatte, die schnell ausgeführt werden sollen. Hier sind vorallem Multiprozessoeren und die Rechnerarchitekturen UMA (uniform Memory Access),NUMA (Non Uniform Memory Access) zur Debatte.
Hier stehen auch parallelisierende Compiler zu Debatte, vor allem für feingranulare Parallelsierung.
- Verteiltem Rechnen
- Hier hat das Anwendungssystem einschließ Hardware meist schon eine verteilte Natur NORMA (No Remote Memory Access) wie z.B. ganze Produktionsanlagen.
Das Objektorientierte Design ist meist die Wahl mit geeigneten Middlewaremechanismen.
Gemeinsam ist beiden:
- Parallelität Nebenläufigkeit
- Koordinierungsprobleme
Verschiedene Aspekte
Literatur
- Theo Ungerer, Sascha Uhrig :" Systemnahe Programmierung: Parallele Programmierung" Uni Augsburg 2007
- guter Überblick über die parallele Programmierung
Aktualität
- The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software