Faucets Technology Stacks
|
User Stack
|
Middleware Stack
|
Cluster Level Stack
|
Command Client (CC)
The Command Client is a command-line application for connecting to and using the Faucets system.
To submit a job, it requests a list of Cluster Daemons from the Central Server and requests a bid from each cluster.
After each CD independently evaluates the Quality of Service contract and presents a bid price, the Command Client submits the job to the CD with the best bid.
|
Central Server (CS)
The Central Server regulates communication between the users and the computational resources.
This includes maintaining cluster information, accounting information for users and cluster groups, and data on submitted, running, and completed jobs.
The central server accepts "retrieve" and "update information" requests from the cluster daemon, command client, and GUI.
Cluster Bartering Example
|
Cluster Daemon (CD)
The Cluster Daemon controls communication to the cluster manager from the Faucets system.
It resides on the same node as the cluster manager and uses the scheduler commands listed in the scheduler section.
The cluster daemon communicates with the central server and command client with single line XML.
On start up, the cluster daemon gathers cluster information to make an initial guess at the work rate compared to the standard cluster and reads a file that specifies applications that the CD will support.
The work rate is used to change bids to make accurate runtime and other values for different cluster configurations.
|
Graphical User Interface (GUI)
The GUI client is an application that frees the users of the Faucets system from the complications of a command prompt.
Users can connect to the system and submit and monitor jobs.
The GUI is packaged as a .jar file that can be downloaded here.
Contact ppl to request access and a user account.
A GUI example with Pictures
|
Cluster View (CV)
The Cluster View package is intended to give users a rough approximation of a cluster's usage.
The results of the scripts can be viewed in the resulting web page.
An example page of the University of Illinois architecture cluster can be found here.
|
Cluster Manger (CM)
The Cluster Manager executes jobs and their associated processes on the physical cluster.
The critical component of the Cluster Manager is the scheduler.
The scheduler uses a scheduling strategy to manipulate the order in which jobs execute.
Furthermore, the scheduler can be used as a standalone unit for a single cluster.
Instructions on the use of the scheduler can be found here.
|
Faucet Advantages
|
SSL encryption
Beside user/password authentication, Faucets uses powerful RSA keypair ssl encryption to ensure the security of the system.
The Parallel Programming Group maintains its own Faucets Certificate Authority to maintian the web of trust between different Faucets components.
|
Zero-Sum Cluster Bartering
To ensure fair trade between cluster groups and encourge activity, Zero-Sum Cluster Bartering is used to regulate transactions between users and cluster groups.
This method is flexible and allows different sharing schemes with little administrative overhead.
|
XML QOS Contracts
QOS contracts are made in XML.
This provides expandability and compatability with different versions of Faucets and external software.
XML Framework
|
Performance Monitoring
Included with the CC and GUI is PerfMonitor, a performance monitoring tool for Charm and AMPI programs.
The application displays current utilization for every processor and the utilization averaged for all processors over time.
|
Work Evaluation Framework
The Cluster Daemon provides a framework for work evaluation.
The bidGenerator class can calculate the amount of work that a cluster must do to run an application.
This value, along with the computational power of a cluster, can be used to estimate the runtime of a job.
|
Support for Migratable Jobs
Support for Migratable jobs written in Charm++ or AMPI is built in.
The ability to reorganize a job can increase utilization.
|