PUPS P3

Last updated

PUPS/P3
Developer(s) Mark A. O'Neill
Stable release
3-5.4.9 / October 2023;0 months ago (2023-10)
Written in C
Operating system Linux
Platform i686, x86-64, ARM|AARCH64
License GNU General Public License version 3 or later
Website github.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]

Contents

Introduction

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 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.

Related Research Articles

<span class="mw-page-title-main">Client–server model</span> Distributed application structure in computing

The client–server model is a distributed application structure that partitions tasks or workloads between the providers of a resource or service, called servers, and service requesters, called clients. Often clients and servers communicate over a computer network on separate hardware, but both client and server may reside in the same system. A server host runs one or more server programs, which share their resources with clients. A client usually does not share any of its resources, but it requests content or service from a server. Clients, therefore, initiate communication sessions with servers, which await incoming requests. Examples of computer applications that use the client–server model are email, network printing, and the World Wide Web.

In software engineering, multitier architecture is a client–server architecture in which presentation, application processing and data management functions are physically separated. The most widespread use of multitier architecture is the three-tier architecture.

<span class="mw-page-title-main">Server (computing)</span> Computer to access a central resource or service on a network

In computing, a server is a piece of computer hardware or software that provides functionality for other programs or devices, called "clients". This architecture is called the client–server model. Servers can provide various functionalities, often called "services", such as sharing data or resources among multiple clients or performing computations for a client. A single server can serve multiple clients, and a single client can use multiple servers. A client process may run on the same device or may connect over a network to a server on a different device. Typical servers are database servers, file servers, mail servers, print servers, web servers, game servers, and application servers.

<span class="mw-page-title-main">Load balancing (computing)</span> Set of techniques to improve the distribution of workloads across multiple computing resources

In computing, load balancing is the process of distributing a set of tasks over a set of resources, with the aim of making their overall processing more efficient. Load balancing can optimize the response time and avoid unevenly overloading some compute nodes while other compute nodes are left idle.

<span class="mw-page-title-main">Beowulf cluster</span> Type of computing cluster

A Beowulf cluster is a computer cluster of what are normally identical, commodity-grade computers networked into a small local area network with libraries and programs installed which allow processing to be shared among them. The result is a high-performance parallel computing cluster from inexpensive personal computer hardware.

<span class="mw-page-title-main">Inter-process communication</span> How computer operating systems enable data sharing

In computer science, inter-process communication (IPC), also spelled interprocess communication, are the mechanisms provided by an operating system for processes to manage shared data. Typically, applications can use IPC, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing.

The Network Information Service, or NIS, is a client–server directory service protocol for distributing system configuration data such as user and host names between computers on a computer network. Sun Microsystems developed the NIS; the technology is licensed to virtually all other Unix vendors.

SuperCollider is an environment and programming language originally released in 1996 by James McCartney for real-time audio synthesis and algorithmic composition.

Checkpointing is a technique that provides fault tolerance for computing systems. It basically consists of saving a snapshot of the application's state, so that applications can restart from that point in case of failure. This is particularly important for long running applications that are executed in failure-prone computing systems.

In computer science, message queues and mailboxes are software-engineering components typically used for inter-process communication (IPC), or for inter-thread communication within the same process. They use a queue for messaging – the passing of control or of content. Group communication systems provide similar kinds of functionality.

<span class="mw-page-title-main">Port forwarding</span> Computer networking feature

In computer networking, port forwarding or port mapping is an application of network address translation (NAT) that redirects a communication request from one address and port number combination to another while the packets are traversing a network gateway, such as a router or firewall. This technique is most commonly used to make services on a host residing on a protected or masqueraded (internal) network available to hosts on the opposite side of the gateway, by remapping the destination IP address and port number of the communication to an internal host.

In computer science and networking in particular, a session is a time-delimited two-way link, a practical layer in the TCP/IP protocol enabling interactive expression and information exchange between two or more communication devices or ends – be they computers, automated systems, or live active users. A session is established at a certain point in time, and then ‘torn down’ - brought to an end - at some later point. An established communication session may involve more than one message in each direction. A session is typically stateful, meaning that at least one of the communicating parties needs to hold current state information and save information about the session history to be able to communicate, as opposed to stateless communication, where the communication consists of independent requests with responses.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

<span class="mw-page-title-main">Mark A. O'Neill</span>

Mark A. O'Neill is an English computational biologist with interests in artificial intelligence, systems biology, complex systems and image analysis. He is the creator and lead programmer on a number of computational projects including the Digital Automated Identification SYstem (DAISY) for automated species identification and PUPS P3, an organic computing environment for Linux.

Sideband computing is where a user connects to some normal network service, and a separate communication channel is opened through which a server distributes tasks to the clients. Through sideband computing method, any network server which has a lot of clients can form into a large-scale super-computing network. During this process, the resources in the clients could be utilized through the central server so long as the main channel is maintained. Sideband computing is related to the distributed computing and multiple communication channels.

<span class="mw-page-title-main">Xgrid</span> Distributed computing protocol created by Apple

Xgrid is a proprietary grid computing program and protocol developed by the Advanced Computation Group subdivision of Apple Inc.

<span class="mw-page-title-main">Digital Automated Identification System</span>

Digital automated identification system (DAISY) is an automated species identification system optimised for the rapid screening of invertebrates by non-experts.

Middleware is a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glue".

Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers. The service has both free and premium tiers. The software that hosts the containers is called Docker Engine. It was first released in 2013 and is developed by Docker, Inc.

Enduro/X is an open-source middleware platform for distributed transaction processing. It is built on proven APIs such as X/Open group's XATMI and XA. The platform is designed for building real-time microservices based applications with a clusterization option. Enduro/X functions as an extended drop-in replacement for Oracle Tuxedo. The platform uses in-memory POSIX Kernel queues which insures high interprocess communication throughput.

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.