Zweck des Caching: 
- Information (``Attribute'') zwischen Aufruf von Bibliotheks-Routinen an
         einen Communicator binden
 
- keine veralteten Informationen, falls Communicator gelöscht
  
 
Besonderheiten: 
- Zugriff auf Attribute durch systemverwalteten Index (``key'') 
        
 verschiedene Bibliotheken stören sich nicht
 
- Communicator wird dupliziert oder gelöscht 
        
 Aufruf von Callback-Funktionen für jedes Attribut 
  
 
Routinen: 
- int MPI_Keyval_create(MPI_Copy_function * copy_fn, 
       MPI_Delete_function * delete_fn, int *keyval, void *extra_state)
Erzeugen eines neuen Keys
 
- int copy_fn(MPI_Comm *oldcomm, int *keyval, void *extra, void *attr_in, 
         void **attr_out, int *flag) 
Callback-Funktion zur Kopie der Attributwerte
 
- int delete_fn(MPI_Comm *comm, int *keyval, void *attr_val, void *extra) 
Callback-Funktion zum Löschen von Attribut-Speicher 
 
- MPI_KEYVAL_INVALID  
spezieller Wert für Keys, nützlich zum Initialisieren
 
- int MPI_Attr_put(MPI_Comm comm, int keyval, (void *) attr_val)
Wert eines Attributs zu einem Key in einen Communicator schreiben
 
- int MPI_Attr_get(MPI_Comm comm, int keyval, (void **) attr_val, int *flag)
Wert eines Attributs zu einem Key aus einem Communicator lesen
  
 
    
     

Peter Junglas 11.5.2000