POP-C++: Parallel Object
Programming in C++
POP-C++ is a comprehensive object-oriented system for developing
HPC applications on the Grid. It consists of a programming
suite (language, compiler) and a run-time system for running
POP-C++ applications.
POP-C++ language is an extension of C++ that
implements the parallel object model with the integration
of resource requirements into distributed objects. We try
to keep this extension as close as possible to C++ so that
programmers can easily learn POP-C++ and that existing C++
libraries can be parallelized using POP-C++ without too much
effort.
POP-C++ run-time is an object-oriented open
design which aim at integrating different Grid and distributed
computing toolkits into an infrastructure for executing requirement-driven
object-oriented applications. Our idea is to use objects to
serve objects: the system provides basic services for executing
objects. Again, each service is implemented as an object with
an well-defined "virtual" interface which is customizable
for different Grid toolkits by the object (service) inheritance.
A new type of services called application scope service is
introduced into the POP-C++ architecture which serves application
related tasks. These services are instantiated inside each
application and are accessible from other standard system-wide
services to perform application-specific tasks. The result
of this open design is the POP-C++ runtime system which can
be used to glue today and tomorrow Grid toolkits to create
a broader environment for executing high performance computing
applications. |