//
Parametry: group – nazwa grupy (łańcuch znakowy). msgtag – etykieta komunikatu określana przez użytkownika. Etykieta msgtag musi być >=0 i pozwala programowi rozróżniać rodzaje komunikatów. retval – kod statusu zwracany przez funkcję (retval < 0 oznacza błąd podczas wykonania operacji).
Uwagi:
Funkcja wysyła komunikat zapamiętany w aktywnym buforze komunikatów do wszystkich procesów danej grupy. Komunikat nie jest przesyłany do procesu wysyłającego (jeżeli należy do tej grupy). Funkcja może zostać wywołana przez proces, który nie należy do tej grupy. Wysłanie komunikatu jest asynchroniczne (ale realizacja jest sekwencyjna – nie jest to typowy 'broadcast'). Funkcja w pierwszej kolejności określa identyfikatory zadań procesów danej grupy a następnie rozpoczyna wysyłanie do tych procesów komunikatu. Jeżeli w trakcie wykonania tej funkcji grupa się zmieni, to nie będzie to miało wpływu na to, do których procesów zostanie wysłany komunikat.
PRZYKŁAD
pvm_reduce int retval = pvm_reduce( void (*func)(), void *data, int count, int datatype, int msgtag, char *group, int root);