The PVM system is not only used by programmers who wish to construct parallel programs, but systems builders who are interested in the issues related to building distributed systems. To aid systems builders we have exposed certain functionalities of PVM, allowing systems programmers to easily extend these base functionalities. We would like to emphasize that the normal PVM programming interface for applications programmers is unaffected by these extensions.
New interfaces in version 3.3 allow PVM tasks to take over functions normally performed by the pvmds: Starting hosts and tasks, and making scheduling decisions. These interfaces allow the PVM system to be extended without modifications to the source code; this can be an important labor-saving device for researchers wanting to integrate their additions to PVM and distribute the resulting code. The tasks can be registered dynamically while the virtual machine and applications are running, which aids in debugging the additions, and all communication is done via normal PVM messages.
The pvmds were modified to allow them to receive messages from arbitrary tasks (tasks of other pvmds). A new entry point in the pvmd, schentry(), serves all three new interfaces.