W MPI możemy tworzyć własne typy danych. Najczęściej chcemy, aby typ przesyłanych danych był różny od standardowych typów zdefiniowanych w bibliotece MPI. W MPI zdecydowano się na rozwiązanie, w którym programista ma możliwość tworzenia nowych typów danych w czasie wykonywania programu. Takie typy danych nazywane są POCHODNYMI TYPAMI DANYCH lub TYPAMI UŻYTKOWNIKA. Pochodne typy danych tworzymy z podstawowych typów danych.
Typy pochodne Każdy typ danych w MPI jest określony przez tablice typemap podającą dla każdego elementu parami typ podstawowy i przesunięcie w bajtach
Typemap={(type0 ,disp0 ),...,(typen-1 ,dispn-1 )}
przykład: MPI_INT (int,0)
Definicje Dolnej i Górnej Granicy oraz Rozpiętości i Rozmiaru Typów Danych
lb(Typemap) = minj (dispj) ub(Typemap) = maxj (dispj+sizeof(typej))+pad extent(Typemap) = ub(Typemap)-lb(Typemap) „pad” określa poprawkę ze względu na rozmieszczenie danych w pamięci komputera, w większości przypadków wymagane jest aby dane określonego typu były umieszczone pod adresami będącymi wielokrotnością rozmiaru danego typu, np.