soww

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