Departments of Cybernetics,
PO BOX 225, Whiteknights,
The University of Reading,
Reading, UK, RG6 6AY
A number of processes cooperating over the execution of a task maybe grouped together for convenience of addressing and to adhere to software engineering principles. Members of a group may be accessed via a simple universal identifier, without need for knowledge of actual locations.
Current implementations of group services within PVM environment use a central group server to maintain details of group membership. The centralised server enables a high level of coherency by authorising every group operation, creating a bottleneck leading to poor performance in many real world applications. Certain vendor implementations of PVM only provide the barrier group operation.
A new primitive receive from group, pvm_grouprecv, has been introduced. Simplifying the use of message tags, and enabling users to match sends and receives.
We have also developed a new set of group operations, based on existing PVM point-to-point operations. The new group server operations offer multi-level name caching, which in a typical application avoids the bottleneck and leads to improved performance. The multi-level caching enables the implementation to determine the amount of historical information that can be retained in the cache. For example group ers will need all the information associated with other members of the same group, in addition to limited information about associated groups.
Details of the implementation on standard PVM (3.3.7) are given along with preliminary benchmarks and comparisons with the original systems.
It is hoped that by improving group services in both semantic and performance terms that groups will become widely utilised, and no longer seen as a fashionable extension of the original system. Their use can only enhance the elegance of solutions leading to improved clarity and ease of maintenance.