PUPS P3
From Wikipedia, the free encyclopedia
| PUPS/P3 | |
|---|---|
| Developer | Mark A. O'Neill |
| Stable release | 3-5.4.9
/ October 2023 |
| Written in | C |
| Operating system | Linux |
| Platform | i686, x86-64, ARM|AARCH64 |
| License | GNU General Public License version 3 or later |
| Website | github |
PUPS/P3 is an implementation of an organic computing environment for Linux which provides support for the implementation of low level persistent software agents.[1]
PUPS/P3 is a cluster computing environment derived from the MSPS operating environment implemented on the BBC Micro.[2]
The PUPS P3 environment has been used in the infrastructure of a number of scientific computing projects include the Daisy [3] automated species identification system and a number of computational neuroscience projects.[4] [5]
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 organism, 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[check spelling]) 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. The latest release of PUPS/P3 also supports container based operating system-level virtualisation (via Docker and check pointing and subsequent migration and/or restoration via CRIU.