Pochodne typy danych

MPI_Type_contiguous

Produkuje nowy typ danych przez stworzenie count kopii istniejącego typu danych.

MPI_Type_contiguous (count,oldtype,*newtype)
MPI_TYPE_CONTIGUOUS (count,oldtype,newtype,ierr)

MPI_Type_vector
MPI_Type_hvector

Tworzy macierz o blocklength kolumnach, count wierszach, i o stride odstępach między wierszami. MPI_Type_hvector i MPI_Type_vector są identyczne z wyjątkiem tego, że w MPI_Type_hvector stride jest podawany w bajtach.

MPI_Type_vector (count,blocklength,stride,oldtype,*newtype)
MPI_TYPE_VECTOR (count,blocklength,stride,oldtype,newtype,ierr)

MPI_Type_indexed
MPI_Type_hindexed

Podobnie do poprzedniej do MPI_Type_vector tworzy macierz, ale pozwala na określenie różnej liczby kolumn dla różnych wierszy. Offset jest tablicą w której wyspecyfikowane są liczby kolumn dla kolejnych wierszy. MPI_Type_hindexed i MPI_Type_indexed są identyczne z wyjątkiem tego, że w MPI_Type_hindexed offsets podawany jest w bajtach.

MPI_Type_indexed (count,blocklens[],offsets[],old_type,*newtype)
MPI_TYPE_INDEXED (count,blocklens(),offsets(),old_type,newtype,ierr)

MPI_Type_struct

Tworzy nową strukturę danych w pełni definiowalną.

MPI_Type_struct (count,blocklens[],offsets[],old_types,*newtype)
MPI_TYPE_STRUCT (count,blocklens(),offsets(),old_types,newtype,ierr)

MPI_Type_extent

Zwraca rozmiar w bajtach danego typu danych. Funkcja ta jest użyteczna w podprogramach , które wymagają rozmiaru danego typu w bajtach np. w celu obliczenia przesunięcia.

MPI_Type_extent (datatype,*extent)
MPI_TYPE_EXTENT (datatype,extent,ierr)

MPI_Type_commit

Zatwierdza nowy typ w systemie. Wymagane dla wszystkich nowo stworzonych pochodnych typów danych.

MPI_Type_commit (datatype)
MPI_TYPE_COMMIT (datatype,ierr)


Przykład: Pochodne typy danych (MPI_Type_Contiguous).


Przykład: Pochodne typy danych (MPI_Type_vector).


Przykład: Pochodne typy danych (MPI_Type_indexed).


Przykład: Pochodne typy danych (MPI_Type_struct).