Logo

Free Software


Copyright (c) 2003 - 2010, DSRLab, LLC

All Rights Reserved

"Open source software in support of distributed systems research."


Software:

Here are some software tools, along with their documentation, that we developed in support of our own efforts; we hope they will be of some help to yours.

CLIENT-SERVER:

Client-Server - two pairs of socket programming examples in C: one uses UDP datagram, the other uses TCP stream sockets. (60k tar/zip)

Client-Server Manual - describes how to run these client-server pairs on a local area network. (11k pdf)


PERFORMANCE MONITORING:

Performance Monitoring - a main monitor process receives near real-time performance statistics from one or more instances of a remote daemon process running on each of the active nodes in your cluster. After a simple installation procedure you start the monitor on a non-cluster node in the network and the daemon process starts automatically on each of the cluster nodes where it is defined. Stop the monitor and all the daemons end gracefully. DPMon runs independently of, and at a minimum impact to any application you may be running on your cluster. This version supports the /proc formats in Red Hat 9 Linux. (70k tar-zip)

Performance Monitoring - same as above, but this version supports Fedora Core 9. (70k tar-zip)

Performance Monitoring Manual - describes how to install and run DPMon, the Distributed Performance Monitor. (90k pdf)

NOTE - Every new release of Linux seems to have a slightly different format for its /proc pseudo-files. (These are text-like files that contain OS performance statistics.) The kernel maintains them and anyone may cat them out as if they were text files. The remote DPMon daemon reads these files and sends a summary packet to the DPMon monitor process, which displays the performance of all active cluster nodes in a single, simple report. The DPMon daemon must know precisely where to find each of its performance metrics. The above versions differ in their dpmond.c source code. Issue man proc for further details.


MIDDLE-MAN:

MiddleMan Software - these debugging-aid "middleman" programs allow you to test client-server pairs that use either UDP or TCP sockets, or HTTP when the server is a web site. xxxTap runs between a Client-Server pair, allowing you to monitor and/or modify the data portion of a TCP (tcpTap), a UDP (udpTap), or a HTTP (webTap) inter-process communication in either direction, or both directions at once. Note that webTap is in development. (90k tar/zip)

MiddleMan Manual - describes an interactive set of user commands that is recognized by each of these three tools and includes many examples. (21k pdf) [Note: If you do not already have a Client-Server pair to test with this application, download the Client-Server examples, above.]


MANIFOLD-SERVER:

MSI Software - the Manifold-Server Interface provides an API and a liaison task that allows you to convert a single node server application for use in a parallel cluster computing environment. (410k tar/zip - TBD)

MSI White Paper describes how you can make minor changes to a single-server application to convert it into a distributed software architecture that will run efficiently on your cluster server. (74k pdf)
MSI White Paper - long version. (79k pdf)

MSI Presentation Slides presents the MSI in more detail as a complement to the published paper. (106k pdf)


DATA SERVER HOW-TO:

Linux Cluster Architecture - book describes a Master-Slave data server that exploits the parallelism in a transaction oriented system by splitting up the client queries among the several slave processor nodes on the cluster's local network. Click on the DOWNLOADS tab at the publisher's site to get a copy of the software. Then buy the book for the details about how to install it, run it, and tune it!


DISTRIBUTED ALGORITHMS: Coming soon!

Distributed Algorithms in C - book describes several basic distributed algorithms. Click on the link above to get a copy of the software. Then buy the Wiley & Sons book for the details about how they all work!