Der erfolgreiche Einsatz von Rechnern bei der Lösung von Problemen in
fast allen Lebensbereichen beruht u.a. auf der technologischen
Entwicklung, die zu schnelle- ren Rechnern mit größerem Speicher führte,
auf der größeren Benutzerfreundlich- keit der Rechner und auf
effizienteren Algorithmen zur Lösung der betrachteten Probleme. Dieses
Buch befaßt sich mit dem Entwurf effizienter Algorithmen für
grundlegende Probleme, die häufig als Teilprobleme in komplexeren
Problemen auftreten. Während auf der unteren Ebene der Hardware von
Rechnern, also in Schaltkreisen, Schaltwerken und VLSI-Chips, schon
immer mit einem hohen Grad an Parallelität gearbeitet wurde, konnte auf
höherer Ebene lange Zeit nur sequentiell gerechnet werden. Dies ändert
sich nun durch die Entwicklung von Rechnern mit immer mehr Prozessoren.
Das Buch legt daher einen Schwerpunkt auf Algorithmen, die gleich-
zeitig bezüglich paralleler Rechenzeit und Hardwaregröße (bei
Hardwarelösungen) bzw. bezüglich paralleler Rechenzeit, Zahl der
benutzten Prozessoren und Spei- cherplatz (bei Softwarelösungen)
effizient sind. Es werden effiziente Algorithmen für den Entwurf
optimaler P LA's diskutiert. Danach werden die grundlegenden
arithmetischen Funktionen Addition, Subtrak- tion, Multiplikation und
Division, die symmetrischen Funktionen, die auch als Zählfunktionen
bezeichnet werden können, und Speicherzugriffsfunktionen behan- delt. In
diesem Teil des Buches werden vor allem Hardwarelösungen präsentiert.
Für das Rechnen mit Matrizen, einfache Probleme auf Graphen,
Sortierprobleme und Probleme der Elementaren Zahlentheorie werden
effiziente Softwarelösungen vorgestellt. Das Buch enthält außerdem
allgemeine Methoden der automatischen Parallelisierung sequentieller
Algorithmen, Reduktionskonzepte zum Vergleich der Komplexität der
behandelten Probleme und effiziente Simulationen zwischen den benutzten
Rechenmodellen.