Konzepte
logische Dateisicht:
Etype:
Basiseinheit für Datenzugriff und für Positionierung in Datei
jeder vordefinierte MPI-Datentyp möglich
selbstdefinierte Datentypen, falls:
aufsteigende Anordnung der Elemente
keine negativen Offsets
Filetype:
besteht aus einem oder mehreren Etypes, mit Löchern in Etype-Größe
View:
beschreibt, auf welche Filedaten eine Task zugreifen kann
ergibt sich aus Etype, Filetype und Offset zum File-Anfang (in Bytes)
verschiedene Views auf ein File möglich (z.B. für verschiedene Dateiabschnitte)
Kombination der Views aller Tasks beschreibt die globale Verteilung der Daten:
Zugriffsweisen:
Positionierung:
individueller Filepointer pro Task (z.B.
MPI_File_read
)
gemeinsamer Filepointer für alle Tasks (z.B.
MPI_File_read_shared
) (erfordert einheitlichen View für alle Tasks)
expliziter Offset (z.B.
MPI_File_read_at
)
Synchronisierung:
blockierend (z.B.
MPI_File_read
)
nicht-blockierend (z.B.
MPI_File_iread
/
MPI_Wait
)
Koordinierung:
individuell (z.B.
MPI_File_read
)
kollektiv (z.B.
MPI_File_read_all
)
physikalische Dateisicht
Informationen über das "physikalische" File in MPI_Info-Objekt
Einige Keys reserviert, z.B.:
file_perm
Zugriffsrechte bei File-Erzeugung
io_node_list
Liste von I/O-Devices für das File
striping_factor
Zahl der Devices für Disk-Striping
Portierbarkeit
Darstellung der Daten im File i.a. abhängig von der Maschinenarchitektur
Wegen zusätzlicher Formatumrechnungen gilt:
höhere Portabilität
geringere Performance
Parameter datarep bei Definition des Fileviews für verschiedene Anforderungen:
native:
internes (Hauptspeicher-) Format
möglichst nur in homogenen Umgebungen
internal:
einheitlich innerhalb einer inhomogenen Umgebung
external32:
architekturunabhängige Darstellung
portabel zwischen verschiedenen MPI-Implementierungen
Peter Junglas 16.2.1999