Application studies, like this work, are a critical component in the
development process of a new language. The main goal is to aid in the
identification of bugs and problems within a prototype implementation
of the compiler and the runtime system (if required), as well as also
allow feedback from the programmer and give the opportunity to compare
the performance on an application level with other systems.
This thesis implements such a study for the Illinois Concert system,
which provides a high--level programming model for parallel
programs using the Concurrent Object Oriented Programming model
(COOP model for short). It is based on a sophisticated compiler with
a rich analysis framework and an efficient runtime system. It runs
on parallel high performance machines like the CM/5 and the T3D,
but will also be ported to networks of workstations. Two
different front end languages, Concurrent Aggregates and Illinois
Concert C++, are implemented within this system.
The latter language offers the advantage of developing the code
in C++ in a conventional manner. Concurrency constructs and special
features of the Illinois Concert system are included afterwards.
In contrast to systems where the whole code is developed entirely
in the new language, this approach considerably decreases the
overall development time of the application.
The purpose of this thesis is to evaluate the usability of this model
with respect to volume rendering. With the increasing demand for
virtual reality systems in conjunction with visualization of
scientific data sets, applications in this area may well become
core applications in future high performance systems.
The thesis itself describes the design and the implementation
of a volume rendering code using a surface extraction algorithm
on top of the Illinois Concert system. It shows how the newly
created language ICC++, with its special properties and functionalities,
can be used to efficiently develop and implement a large application.
It also gives a detailed description and analysis of the optimization
process and shows that in the current implementation special annotations,
influencing the program behavior in a distributed or parallel
system, are vital for a high performance implementation.