Figure 1. Simplified Performance Prophet Architecture.
Objective:
prediction of the performance behavior of parallel and distributed
applications on cluster and grid architectures.
Support:
early application development stages.
Design aim:
comparative accuracy.
Hybrid approach:
simplify a detailed model and combine simulation and analytical
techniques to reduce the time needed to evaluate the model.
Modeling:
The development of parallel and distributed applications
is a time-consuming, error-prone, and tedious process that
involves many cycles of code editing, compiling, executing,
and performance analysis. A visual modeling language could
substantially alleviate the development of parallel and
distributed applications and improve the understanding of
the resulting performance behavior on a given target machine.
We employ the Unified Modeling
Language (UML) to model parallel
and distributed applications. UML offers an extensive set
of diagrams for modeling. However, the semantics of specific
diagrams aren't always clear so as to decide how to model
specific aspects of parallel and distributed programs. In
order to overcome this deficiency we utilize the UML extension
mechanisms to customize UML for the domain of distributed
and parallel computing. A set of UML building blocks is
identified that model some of the most important constructs
of message passing and shared memory parallel paradigms
which can be used to develop models for large and complex
parallel and distributed applications.
In order to provide an adequate
tool support we have developed Teuta which is a graphical
editor for UML based modeling of distributed and parallel
applications.
Simulation:
The objective is to develop a parametrized simulation tool
for cluster and grid architectures. The Performance Prophet
architecture is depicted in Figure 1. Based on a UML model of
an application and a simulator for a target architecture,
one can predict the execution behavior of the application
model. The user develops the model for an application by
composing existing templates (building blocks). Thereafter,
the annotated model is transformed to an intermediate form
based on which the simulator examines the behavior for this
application on a given target machine model that is selected
by the user.
Presentations slides that
briefly describe our work are available
here (PDF).
Our approach
is described in more detail in our publications.
Implementation:
We have implemented Performance Prophet in Java and C++.
The current implementation includes about 22000 lines of
code, from which about 2500 are comment lines.
|