PVM provides the ability for processes to form into groups identified by a character string name, which is held in a single central database process called the PVM Group Server PVMGS. Processes can join and leave any number of groups at any time, making membership completely dynamic. Processes are allocated instance numbers when they join, in the order that they join a group. The first join operation creates the group, and the group is destroyed when the membership falls to zero (i.e., no empty groups), although groups may have gaps in their membership as processes leave out of order.
The group service provides a limited number of collective operations such as barrier and reduce. Also provided is a broadcast operation that allows messages to be sent to all members of a group (unless the sender is one). However, there are no point-to-point operations on a group. Thus, the user must explicitly look up process addresses and use the normal point-to-point send and receive primitives.
Until recently, the group database was centrally stored and thus had to be accessed before each
group operation took place, even if the group had not altered.
led to serious degradation in
Later versions of PVM 3.3 enabled the groups to be frozen
and their details to be cached locally.
In some cases,
full dynamic group caching has also been developed [#GROUPS1#
Fri Apr 12 11:15:36 EDT 1996