MPI-2 I/O
Plik jest dzielony pomiędzy procesy z pomocą access template, czyli szablonu dostępu.
Możliwość wykonywania odczytów blokujących i nieblokujących, pojedynczych i zbiorowych.
Wskaźniki do plików, offsety i automatyczna konwersja danych w systemach heterogenicznych.
Przykładowe funkcje:
- MPI_FILE_OPEN – kolektywne w obszarze komunikatora. Nazwa pliku musi odnosić się do
tego samego pliku na wszystkich procesach. Zwraca uchwyt do pliku – fh. Można otwierać
lokalne pliki (np tylko na maszynie gdzie działa nty proces), trzeba przekazać jako argument
MPI_COMM_SELF).
- MPI_FILE_CLOSE – zamknięcie pliku otwartego przez file_open.
- MPI_FILE_DELETE – usunięcie pliku, który nie jest aktualnie otwarty
- MPI_FILE_WRITE_AT – zapis do pliku sekwencji danych z podanym bezpośrednio offsetem.
- MPI_FILE_SET_VIEW – ustalenie widoku, czyli jaką część danych z pliku widzi dany proces
- MPI_FILE_GET_VIEW – zwraca widok z punktu widzenia danego procesu.
- MPI_FILE_SEEK – przejście do miejsca w pliku
- MPI_FILE_GET_POSITION – pobranie pozycji w pliku
- MPI_FILE_READ_SHARED – operacja odczytu ze współdzielonym wskaźnikiem do pliku.
Konieczny ten sam widok we wszystkich procesach. Dostęp odbywa się po kolei po rank.
Tryby dostępu w MPI2:
- MPI_MODE_RDONLY - read only
- MPI_MODE_RDWR - read/write access
- MPI_MODE_WRONLY - write only
- MPI_MODE_CREATE - create file if it does not exist
- MPI_MODE_EXCL - error if creating file that already exists
- MPI_MODE_DELETE_ON_CLOSE - delete file on close
- MPI_MODE_UNIQUE_OPEN - block file opening elsewhere
- MPI_MODE_SEQUENTIAL - file will only be accessed sequentially
- MPI_MODE_APPEND - set initial positions of all file pointers to EOF