int zajmuje 4 bajty więc adres powinien być podzielny przez 4, więc dla: {(int,0),(char,4)} lb=min(0,4)=0 ub=max(0+4,4+1)+pad=5+pad=8 extent=5+pad=8 rozmiar=5
Pochodne typy danych Contiguous Jest to najprostszy typ pochodny; elementy są kopiami danego typu wejściowego a ich pozycje są wielokrotnościami jego rozpiętości.
int MPI_Type_contiguous(int count, MPI_Datatype oldtype,MPI_Datatype *newtype);
Vector Elementy są kopiami danego typu wejściowego, ale pomiędzy nimi występują odstępy będące wielokrotnościami rozpiętości tego typu.
int MPI_Type_vector(int count, int block_length,int stride, MPI_Datatype element_type,MPI_Datatype *newtype);
Hvector Jak Vector ale odstępy między elementami są określone w bajtach.
int MPI_Type_vector(int count, int block_length,int stride, MPI_Datatype element_type,MPI_Datatype *newtype);
Indexed Jak Vector ale odstępy między elementami są określone dowolnie przez tablicę przesunięć.
int MPI_Type_indexed(int count,int *array_of_block_lengths,int *array_of_displacements,MPI_Datatype element_type, MPI_Datatype *newtype);
Hindexed Jak Indexed ale elementy tablicy przesunięć są podane w bajtach.
int MPI_Type_indexed(int count,int *array_of_block_lengths,int *array_of_displacements,MPI_Datatype element_type,MPI_Datatype *newtype);