Welcome to the front page of the HiPPO research project at the School of Computing Science, University of Newcastle upon Tyne, UK.
Designing and implementing parallel software systems is HARD! We want to make it easier.
Keywords: Parallel, object-oriented software systems, visual design notations, object-oriented databases, CASE, object-oriented numerical applications.
Project page on main CS Website: High Performance (Parallel) Object-Oriented Software Systems (HiPPO)
This project was funded by the Engineering and Physical Sciences Research Council (EPSRC) in the UK.
Our long-term vision is an object-oriented software development environment in which a software engineer can use (visual) notations to design, implement, and debug the performance of a parallel, object-oriented software system. The parallelism will be automatically extracted from the notations used, and the engineer will not be concerned with the detail of specifying and controlling parallelism, nor with tailoring software to run on a particular parallel system.
The engineer will be able to link the software with large, object-oriented databases, which can "feed" objects into the software system for processing. The engineer will find it easy to pull existing software components together, e.g. to use libraries of numerical algorithms (also built using the same environment). In addition the engineer (and the producers of the numeric libraries) will have substantial support in the notation for constructing new numerical software.
Research to support this vision is the topic of this research project.
To advance the state of the art in tools to support the use and implementation of high-performance (parallel) object-oriented software systems.
Building on existing work into visual notations (Vorlon), run-time systems (NIP) and parallel object-oriented databases (Polar), the HiPPO project's objectives are:
- To design and implement visual notations and CASE tools for building high-performance (parallel) object-oriented systems (HiPPO), with support for:
- exploiting parallelism automatically
- linking to large, object-oriented databases
- building both numeric and non-numeric applications
- performance monitoring and debugging
- the software lifecycle
- To design and implement a high-performance run-time system to support programs generated using the above CASE tools:
- running on a variety of commodity hardware platforms
- supporting the optimisation of performance
- To research the interactions between HiPPO and parallel object-oriented databases so that they are able to store and retrieve data for high performance o-o applications.
The Project intends to design and implement a visual notation for expressing object-oriented software systems. The intention is that a parallel software system can be automatically generated from the graph representing a program's design, and executed efficiently on a parallel platform built from commodity hardware. Work on run-time mechanisms to support the parallel software generated will also be required.
In addition the notation will permit programs to link to object-oriented databases to permit a program to obtain information from, and store results in, that database.
The notations and techniques that are developed will form the basis for significant practical experiments which will try out the ideas "in anger" in order to evaluate their effectiveness. One particular applications area of interest is numerical algorithms, where the use of object-oriented techniques is one important research area, and where of course the desire for high-performance through the use of parallelism is paramount.