Jump to content

PUPS P3

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Citation bot (talk | contribs) at 21:40, 8 September 2020 (Add: s2cid. | You can use this bot yourself. Report bugs here. | Suggested by Abductive | Category:All articles with unidentified words | via #UCB_Category). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

PUPS/P3
Developer(s)Mark A. O'Neill
Stable release
3.5.0.0 / September 2019; 5 years ago (2019-09)
Written inC
Operating systemLinux
Platformi686, x86-64, ARM|AARCH64
LicenseGNU General Public License version 3 or later
Websitegithub.com/xylophanes/PupsP3/

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]

Introduction

PUPS/P3 is a cluster computing environment derived from the MSPS operating environment implemented on the BBC Microcomputer.[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 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[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 virtualization (via Docker (software) and check pointing and subsequent migration and/or restoration via CRIU.

P3 process network

The P3 system facilitates dynamic asynchronous peer to peer communication between processes and also dynamic asynchronous 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

  1. ^ O'Neill, Mark A.; Hilgetag, Claus-C. (2001). "PUPS: A dynamically configurable environment for building neuro and bio- informatic data analysis tools". Philosophical Transactions of the Royal Society B. 356 (1412): 1259–1276. doi:10.1098/rstb.2001.0912. PMC 1088514. PMID 11545702.
  2. ^ "PUPS/P3 - Introduction". Tumbling Dice. 2007. Retrieved 19 December 2010.
  3. ^ Watson, Anna T.; O'Neill, Mark A.; Kitching, Ian J. (2004). "Automated identification of live moths (Macrolepidoptera) using digital automated identification System (DAISY)". Systematics and Biodiversity. 1 (3): 287–300. doi:10.1017/S1477200003001208. S2CID 86265419.
  4. ^ Burns, Gully A. P. C.; Khan, Arshad M.; Ghandeharizadeh, Shahram; O'Neill, Mark; Chen, Yi-Shin (2003). "Tools and approaches for the construction of knowledge models from the neuroscientific literature". Neuroinformatics. 1 (1): 81–109. doi:10.1385/NI:1:1:081. PMC 4479506. PMID 15055395.
  5. ^ O'Neill, Mark A.; Burns, Gully A. P. C.; Hilgetag, Claus C. (2003). The PUPS-MOSIX environment: a homeostatic environment for neuro- and bio-informatic applications. Springer. pp. 81–109. doi:10.1007/978-1-4615-1079-6_13. ISBN 978-1-4613-5384-3.