Samiksha Jaiswal (Editor)

PUPS P3

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Developer(s)
  
Mark A. O'Neill

Operating system
  
Linux, BSD

Written in
  
C

Platform
  
i686, x86-64, ARM

PUPS P3

Stable release
  
2.1.5b / December 2014; 2 years ago (2014-12)

License
  
GNU General Public License version 2 or later

PUPS/P3 is an implementation of an organic computing environment for Linux which provides support for the implementation of low level persistent software agents.

Contents

Introduction

PUPS/P3 is a cluster computing environment derived from the MSPS operating environment implemented on the BBC Microcomputer.

It requires the Linux kernel source code to build. The PUPS P3 environment has been used in the infrastructure of a number of scientific computing projects include the Daisy automated species identification system and a number of computational neuroscience projects.

Features of the P3 process

PUPS/P3 processes are homeostatic agents. These agents are able to save their state and migrate between machines running compatible Linux kernels (via CRIU). The PUPS/P3 API also gives them significant access to the state of their environment: like biological organisms they are animate. That is, they are able to sense changes in their environment and respond appropriately. Fir example, a P3 process may elect to save its state or migrate if some resource, for example processor cycles become scarce. Effectively, this is the machine equivalent of an animal electing hibernate or migrate when its food resources become scarce. PUPS/P3 can also share data resources via a low level persistent object, the shared heap. The semantics of using this are similar to those used by the free()/malloc() API supplied by standard C libraries.

Computations can be jointly executed by a cluster of co-operating P3 processes. This cluster is in many ways analalogous to a multicellular organism: like cells within an organisms, individual P3 processes can specialise. For example, in the case of the Daisy pattern recognition system, the cluster consists of (ipm) processes which pre-process pattern-data, (floret) processes which run the PSOM neural nets used to classify those patterns, and (vhtml) processes which communicate the identity of patterns Daisy has discovered to the user. In addition, the Daisy cluster also has specialist (maggot and kepher) processes to clear and recycle file and memory space and (lyosome) processes which destroy and replace other processes within the cluster which have become corrupted and therefore non functional.

In conjunction with virtualisation systems, for example the Oracle VirtualBox system, it is possible to use PUPS/P3 to build homeostatic virtual (Linux) machines which can carry computational payloads while living in a dynamic cloud environment.

P3 process network

The P3 system facilitates dynamic asynchronous peer to peer communication between processes and also dynamic asycnhronous communication between processes and the user. In the example process network shown, several of the communications methods implemented in PUPS/P3 are illustrated. These include:

User to PSRP server via PSRP client (using PSRP protocol). This communication mode establishes an asynchronous pseudotty connection between the psrp client (and hence the user) and the PSRP server process.

Peer to peer (between PSRP servers) via SIC channel. A PSRP server wishing to communicate directly with another server slaves an instance of the psrp client via a Slaved Interaction Client Channel (SIC). It then instructs this slaved psrp client to open a PSRP channel to the peer it wishes to talk to.

Peer to peer (between PSRP servers) via sensitive file. In this mode a PSRP server sends data to another server via file. To prevent any server reading the file it tagged with a key which has a matching lock on the recipient server. This lock and key system was inspired by enzyme-substrate and biological signaling systems.

References

PUPS P3 Wikipedia