Information Technology Reference
In-Depth Information
time of a parallel program, however, is extremely sensitive to this distinction:
e.g., computations in a parallel component can be for \free." The execution
time of the considered execution is determined by the computations of the bot-
tleneck component, i.e., the component which requires most activity. Thus, the
as-early-as-possible placement strategy, which in the sequential setting leads to
computationally (and executionally) optimal results, is inappropriate for the
parallel setting because here computational optimality it is aiming at does not
induce the desired executional optimality . In the parallel setting reasonable PRE-
transformations must take the dierence between computational and executional
optimality, which does not show up in the sequential setting, into account. In
Section 7 we discuss means for achieving this.
a)
b)
c)
h1
:= c+b
h2 := e+f
h3 := a+b
h2
:= e+f
ParBegin
ParBegin
ParBegin
h3 := a+b
h1 := c+b
y := e+f
x := a+b
y :=
h2
x :=
y :=
h3
x :=
h2
h3
z := c+b
z :=
v := e+f
v :=
h1
h2
z := h1
v :=
h2
ParEnd
ParEnd
ParEnd
y := e+f
y := a+b
y :=
h2
y :=
y :=
h3
y :=
h2
h3
d := c+b
d :=
h1
d :=
h1
Fig. 8. Computational optimality vs. executional optimality.
6 The Object-Oriented Setting
In this section we switch to the object-oriented programming paradigm. The
spectrum of languages belonging to this paradigm is quite large. It ranges from
untyped languages like Smalltalk over hybrid ones like C++ to strongly typed
languages like Oberon-2. However, there is an important feature common to all
of them. Late procedure binding, dynamic function dispatch, or dynamic method
binding. These are all dierent language dependent jargons for essentially the
same facts. The procedure called at a specic call site is usually not compile-
time but run-time determined. Replacing late procedure binding by the more
ecient early binding, where possible, is one of the most common and impor-
tant optimizations of object-oriented programs [38,39]. Essentially, this amounts
to determining the receiver of a method call as precisely as possible. The class
Search WWH ::




Custom Search