PVM można używać pisząc programy w różnych językach, tu omówione zostanie ich zastosowanie w językach C i C++.
Standardowo, mamy do dyspozycji zestaw funkcji z parametrami. Umożliwia to przekazywanie argumentów jako wartości zmiennych i/lub wskaźników oraz zwracanie przez funkcje odpowiednich wartości
Dodatkowo, mamy do dyspozycji zestaw makr i stałych systemowych (np. errno i pvm_ermo do obsługi błędów) - ułatwia to rozróżnianie różnych
PVM
Każdemu procesowi (zwanemu zadaniem - task) w momencie „rejestracji" nadawany jest jego unikalny numer typu integer (task identifier - UD). Ten identyfikator jest niezależny zarówno od sprzętu, na którym pracuje proces jak i od architektury systemu. Identyfikator jest unikalny i może być uważany za „adres" procesu.
Identyfikator można wykorzystywać przy różnych procedurach - można przesłać informacje pod dany „adres", można zdalnie "zabić" proces o danym identyfikatorze itp.