last-modified: September 5, 2004
Overview of P3
P3 is middleware for distributed computing with volatile PCs,
in which participants provide and also use other's computers.
This project is also an effort to develop such middleware on pure P2P
facilities provided by JXTA.
Table of Contents
P3 utilizes JXTA
a widely accepted P2P communication library.
P2P concepts which JXTA implements efficiently support P3:
PCs dynamically discover each other and jobs without a centralized server.
- Peer Group:
PCs are grouped into job peer groups, where computers carry out
code distribution, job control,
and group communication for parallel computation
Enables end-to-end communication over NAT and firewall.
Thanks to it, P3 supports parallel processing in the message passing model.
Fig. 1: Peer groups.
Two parallel programming APIs to application writers are provided:
These libraries are implemented over the Object Passing Library.
An Emulator of the Object Passing Library is also provided and
it hosts a parallel application even though it runs on one computer.
Supports master-worker parallel processing.
This library can confirm the correctness of calculation results
collected from workers by voting.
Application programmers do not have to be conscious of this confirmation
and this function can be disabled when submitting an application.
- Message passing:
In this model, each computer is identified by an integer, rank
and a computer can send an object to another computer or all ones.
Fig. 2: Libraries and an emulator.
A parallel application using these libraries is usually
hosted by P3 Job Management system,
but the libraries are highly independent from it.
It is possible to run the application with a simple wrapping program
or other hosting facilities.
Job Management system conducts discovery of PCs and jobs,
code distribution and execution control of submitted jobs.
This subsystem consists of the following two programs:
- Controller (Fig. 3):
- Resource users submit and control their jobs with this tool.
- Controller has three types of user interfaces,
as graphical user interface (GUI), character user interface (CUI)
and Web browser.
- Host (Fig. 4):
A resource provider (PC contributor) runs this daemon program
on their PCs.
A Host can run in a head(GUI)-less mode.
In this case, it decides whether to host a found job or not
according the digital signature on the job and a job acceptance policy
supplied by the resource provider.
A Host can host multiple jobs simultaneously.
Fig. 3: Controller.
Fig. 4: Host.
On a web browser,
a resource user can monitor progress of calculation for submitted jobs.
Fig. 5: Job Monitor.
Fig. 6: Host Information part on Job Monitor screen.
Return to P3 main page