This is the initial release of the PTP Scalable Debug Manager (SDM). The SDM is a framework for debugging parallel programs.
It comprises the following components:

1. An MPI-based client/server framework for controlling multiple distributed processes. The primary purpose of this
   framework is to attach backend debuggers to the processes being debugged, and to provide a library interface
   to control the debugging of these processes.
   
2. A proxy library that allows the client/server framework to be controlled from a remote location.  This is particularly
   important, since it is not always possible to know the location of the SDM client (it may be placed on a random
   node in the parallel machine).

3. A JNI library for interfacing Java applications to the proxy client. This allows applications like Eclipse to control
   the debug framework, respond to events, etc.