Interactive Supercomputing
Using high performance computers effectively is seldom considered a user-friendly exercise. Programmers typically have to deal with a multitude of possibly incompatible parallel languages, compilers, and libraries. This is in sharp contrast to the desktop world where packages such as Maple, Mathematica, and Matlab provide their users with interactive, easy-to-use environments for solving their scientific and engineering problems. These programs, however, were not written with the needs of the high performance computing community in mind, and so their use is limited to prototyping algorithms or solving very small problems.
The Parallel Problems Server started out as joint project between the MIT Artificial Intelligence Laboratory and the MIT Laboratory for Computer Science. Work has continued at LBL and at Georgia Tech. It bridges the gap between scientific computing in the workstation and supercomputer worlds, providing interactive clients with access to powerful functionality and users of parallel machines access to interactive environments where they can manipulate and visualize large data sets.
To demonstrate the power of this idea, we have developed a Matlab 5 front end to the Parallel Problems Server's computational engine. By using Matlab 5's object oriented programming features, most server operations are completely transparent. Combining the Matlab environment with the PPServer, we have been able to build applications for information retrieval, machine learning, and scientific computing.
Features:
![]() |
a realization of a novel client-server model for computation on very large matrices. |
![]() |
a powerful communication interface to clients, removing the need to endow clients with communication primitives, or force them to manage data among various processes. |
![]() |
the PPMatlab/Matlab*p extensions: ppclient, a implementation of the client interface in MEX; Matlab .m files that serve as wrappers for many of the PPServer functions, including common constructors such as zeros, ones, rand and randn; layout variables, a Matlab 5 class that allows Matlab 5 access the PPServer in such a way that is transparent to the Matlab user. |
![]() |
direct extensibility via packages, compiled libraries complete with a robust protocol for communication. Each package represents its own namespace, defining a set of functions and visible function names, supporting data encapsulation, and allowing users to hide a subset of functions in one package by loading another that defines the same names. |
![]() |
several highly optimized public libraries realized as packages, including ScaLAPACK, S3L, PARPACK, Petsc. |
![]() |
several in-house packages, including basic matrix operations and gradient descent. |
![]() |
package support for common parallel idioms (like applying a function to every element of a matrix). |
Important Links:
![]() |
Papers and Documentation on the Parallel Problems Server |
![]() |
Source and Binaries |
People/Groups Associated with the PPServer: