Sourcen:
Gitter-Communicatoren:
- int MPI_Cart_sub(MPI_Comm comm, int *remain_dims,
MPI_Comm *newcomm)
Erzeugen von Spalten- und Zeilen-Communicator
- Beispiel:
- 3 x 2 - Gitter (rows x cols)
- remaining_dims: (true, false)
- Ergebnis: 2 Communikators mit je 3 Mitgliedern (Spalten-Communikator)
Skalarprodukt:
- verschiedene Versionen in Abhängigkeit von Kommunikations-Parametern
- nostride:
lokal Summe über alle Elemente
global über Spalten (bzw. Zeilen) summieren
- stride:
lokal nur Teilsummen bilden
global über ganzes Gitter summieren
nutzt Kopien des Vektors über Zeilen (bzw. Spalten)
- Beispiel nostride: 2x3 Prozessoren, Spaltenvektor,
13 Elemente, Scatter-Verteilung:
- Zeit-Vergleich stride/nostride für
PxQ Prozessoren, Spaltenvektor mit N Elementen:
- Problem: automatische Auswahl der schnelleren Funktion

Peter Junglas 11.5.2000