Ich suche nach online verfügbaren Vorlesungsskripten oder anderen Ressourcen, die eine gute Einführung in die parallele Programmierung bieten, genau wie das parallele Analogon der Grundkurse in der Informatik.
Mein Fokus liegt auf Folgendem: Während ich über Divide & Conquer, gierige Algorithmen, dynamische Programmierung und dergleichen sprechen kann, dh über grundlegende Muster sequentieller Algorithmen (und Probleme), habe ich nicht die geeignete Sprache, um Ansätze in parallele Algorithmen zu klassifizieren.
Zum Beispiel möchte ich die passenden Begriffe erwerben, um die Tatsache auszudrücken, dass die offensichtlichen parallelen Ansätze für jedes der folgenden Probleme ein unterschiedliches qualitatives Verhalten aufweisen:
- Setzen eines Arrays von Ganzzahlen auf Null (skaliert perfekt.)
- Summieren eines Arrays von Ganzzahlen (je mehr Threads Sie verwenden, desto mehr Overhead.)
- Listen Sie bei einem gegebenen Array die Produkte jedes Eintrags miteinander auf (wenn wir die kanonische Double-for-Loop parallelisieren, wird die Laufzeit auf das Quadrat der Anzahl der Prozessoren skaliert.)
Eine Umgebung mit gemeinsamem Speicher reicht aus, und die Kommunikation zwischen Prozessen ist für mich nicht so relevant (tatsächlich interessiere ich mich für Algorithmen, die dies überhaupt vermeiden). Darüber hinaus sind die technischen Aspekte für mich vernachlässigbar.