Implementation of a Coordination Language
Abstract
This paper presents some details about the
implementation of the coordination language K2.
Several design goals guided this implementation:
the generated code should be executable on
heterogeneous distributed computer systems
and
it must have localized control
to avoid potential bottlenecks when scaling to
large distributed systems.
To meet these ends,
a compiler and a runtime system have been implemented
which use PVM as message passing library.
This decision
helps us to meet the first
goal
since PVM has been designed to fulfill
this requirement.
The
second
goal is met due to the language design of K2,
which is based on a variant of colored Petri nets.
Communication structures are restricted to synchronization graphs,
hence no conflicts can occur
other than those
introduced
by primitive process types.
K2 process systems can be graphically specified
with the help of an editor,
which translates those systems into an intermediate
language that is used as input for a compiler.
The compiler generates a C program,
wherein each process is translated into a so-called wrapper.
A wrapper manages the communication between processes
with the help of routines provided by
the runtime library.
The C program is compiled and linked against the runtime
and the PVM library yielding one executable program.
This paper explains
how a K2 process system is compiled,
the basic algorithms of a wrapper,
and
the routines provided by the runtime system
to implement these algorithms.
It also provides a performance comparison of
K2 programs
and programs using PVM directly.
Keywords
coordination language,
distributed computing,
Petri nets,
implementation
[Hints about e-mail/sendmail]
[Content]
[What's new?]
[Hotlist]
Claus Aßmann
Please send comments to:
<ca@informatik.uni-kiel.de>