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