SlideShare une entreprise Scribd logo
1  sur  8
Télécharger pour lire hors ligne
Robust and Tuneable Family
of Gossiping Algorithms
Vincenzo De Florio and Chris Blondia
University of Antwerp
Department of Mathematics and Computer Science
Performance Analysis of Telecommunication Systems group
Middelheimlaan 1, 2020 Antwerp, Belgium
Interdisciplinary Institute for Broadband Technology (IBBT)
Gaston Crommenlaan 8, 9050 Ghent-Ledeberg, Belgium

Abstract

here we first show that by assigning different classes of permutations to the participants it is possible to scale dynamically the amount of communication requests triggered by
the execution of our algorithm. In other words, this enables
the expression of a spectrum of codes each characterized by
a different algorithmic parallelism.
Secondly, we show here how this can be used to reach an
optimal match with the contextual (that is, physical) parallelism provided by the deployment platform and networks.
Such an optimal tuning allows the avoidance of shortcoming and excess of algorithmic parallelism. While in the former case one would under-utilize the available resources, in
the latter case one would issue a number of requests higher
than the available communication resources, which could
lead to undesirable conditions such as overloading of request queues and packet collisions.
In what follows we first define our family of algorithms
and concisely recall its characteristics in Sect. 2. Next, in
Sect. 3, we introduce hybrid gossiping—a strategy to tune
the algorithmic parallelism in function of the physical parallelism characterizing the current context. Section 4 explains
how that strategy can be used to design autonomic evolution
engines exploiting hybrid gossiping. State of the art is then
briefly summarized in Sect. 5. Our conclusions follow in
Sect. 6.

We present a family of gossiping algorithms whose members share the same structure though they vary their performance in function of a combinatorial parameter. We show
that such parameter may be considered as a “knob” controlling the amount of communication parallelism characterizing the algorithms. After this we introduce procedures
to operate the knob and choose parameters matching the
amount of communication channels currently provided by
the available communication system(s). In so doing we provide a robust mechanism to tune the production of requests
for communication after the current operational conditions
of the consumers of such requests. This can be used to
achieve high performance and programmatic avoidance of
undesirable events such as message collisions.

1

Introduction

The main character in this text is a family of algorithms
for distributed gossiping whose members differ in the strategy adopted to discipline the right to transmit. That strategy
can be expressed as a permutation of the indices of the participants. In [7] a formal model for this family of algorithms
was introduced and the performance of some of its members
was analyzed. In the cited paper in particular it was shown
how the choice of the structure of the permutations controlling these algorithms translates in different requirements on
the underlying communication system—namely, different
amounts of concurrent send and receive requests.
The focus of this paper is not on the functional properties
of the gossiping algorithms but rather on the non-functional
characteristics exhibited by them with the change of the
adopted permutations. Building on top of our past research,

2

A Family of Gossiping Algorithms

In this section we recall the main features of a family
of gossiping algorithms firstly introduced in [7]. We refer
the reader to the cited paper for a thorough discussion of
the features of those algorithms. Introductions to gossiping,
which may be concisely defined as all-to-all pairwise interprocess communication, may be found e.g. in [12, 2, 11].
1
In what follows we define a formal model for such family
of algorithms and we highlight the characteristics of two of
its members.

2.1

Formal Model

Let t represent time and N > 0 be an integer. We shall
consider a set of N + 1 communicating processes. We assume that such processes may be uniquely identified via integers in {0, . . . , N }. Processes are deployed in processing
nodes linked together via one or more communication networks. We shall refer to the set of nodes and networks as to
“the system”. Nodes are equipped with a limited number of
communication ports. Likewise, networks provide a limited
number of independent full-duplex point-to-point communication lines. At any time t a new communication can only
be initiated if a free port and a free line are available in the
system. If that is not the case, the requesting process is put
in a wait state. Due to resource competition, the number of
ports and that of lines vary dynamically. Depending on the
available ports and lines, at any time t at most N (t) send
and at most N (t) receive requests may be allowed to execute. Communication is synchronous and blocking.
Processes own some local data they need to share (for
instance, to execute a voting algorithm as in [9] or [3]). In
order to do so, each process broadcasts its local data to all
the others through multiple consecutive send requests, and
receives the N data items owned by its fellows via multiple consecutive receive requests. A discrete time model is
assumed—events occur at discrete time steps, and during
any time step any process can be involved in only one such
event. More specifically, on a given time step t process i
may be:
1. sending a message to process j, j = i; this is represented as i S t j;
2. receiving a message from process j, j = i; this is
shown as i Rt j;
3. blocked, waiting for messages to be received from any
process; symbol “ ” will be used to mean this case;
4. blocked, waiting for a message to be sent, i.e. for an
addressee to enter the receiving state. Symbol “ ”
will be used for this.
A slot is defined as a process’ temporal “window” one
time step long. On each given time step t, N + 1 slots are
available within the system. Process i makes use of slot t if
and only if ∃ j (i S t j ∨ i Rt j); on the contrary, process i is
said to waste slot t.
By the term “run” we shall refer in what follows to the
the collection of slots required to execute the above algorithm on a given system, as well as to the values of the
events corresponding to those slots.

Let us define the following four state templates:
WR state. A process is in state WRj if it is waiting for
the arrival of a message from process j. Where the
subscript is not important it will be omitted. Once in
WR, a process stays there for one or more time steps,
corresponding to the same number of “ ” actions.
S state. A process i is in state Sj when it is sending a message to process j. After one time step i leaves state Sj .
This corresponds to one i S t j action.
WS state. A process i waiting to send process j its message is said to be in state WSj . Where the subscript is
not important it will be omitted. Once in WSj , process
i stays there for one or more time steps, corresponding
to the same number of “ ” actions.
R state. When process i is receiving a message from process j, it is said to be in state Rj . This state transition also lasts one time step and corresponds to action
i Rt j.
Let P 1 , . . . , P N represent a permutation of integers
0, . . . , i − 1, i + 1, . . . , N . Then the above state templates
can be used to compose N + 1 finite state automata as described in Algorithm 1.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

Algorithm 1: Compose the FSA solving gossiping
for process i ∈ {0, . . . , N }
Input: A ≡ (i, N, P)
Output: FSA(A)
begin
/* emit the initial state */
FSA(A) := START
for j := 0 to i − 1 do
/* operator “←” appends a new state to the FSA */
FSA(A) ← WR
FSA(A) ← R
enddo
for j := 1 to N do
FSA(A) ← WSP j
FSA(A) ← SP j
enddo
for j := i + 1 to N do
FSA(A) ← WR
FSA(A) ← R
enddo
/* emit the final state */
FSA(A) ← STOP
end.

Figure 1 shows the finite state automaton that solves distributed gossiping for process i, which we obtained by executing Alg. 1. The first row is the condition that has to be
Length. This is the number of time steps in a run. It represents a measure of the time needed for the distributed
algorithm to complete. λN , or more simply λ, will be
used for lengths.

Figure 1. The state diagram of the FSA run by
process i. The first row consists of i (WR, R)
couples. (P 1 , . . . , P N ) represents a permutation of the N integers 0, . . . , i − 1, i + 1, . . . , N .
The last row contains N − i (WR, R) couples.

For any time step t, we shall call νt as the number of slots
that were used during t. The λ-tuple ν = [ν1 , ν2 , . . . , νλ ],
orderly encoding the number of used slots for each time step
in a run, shall be called “utilization string.”
In [7] several cases of P were introduced and discussed.
In particular in the above cited reference it was shown how
varying the structure of P produces quite different values
of µ and λ. This fact, coupled with physical constraints
of the system as modeled by N (t), determine the overall
performance of our algorithm.
In what follows we focus on two particular cases representing the minimal and maximal algorithmic parallelism.

2.2

Identity Permutation

As a first case, let P be the identity permutation:
reached before process i is allowed to begin its broadcast: a
series of i (WR, R) couples.
Once process i has successfully received i messages, it
acquires the right to broadcast. Broadcasting is performed
according to the rule expressed in the second row of Fig. 1:
process i orderly sends its message to its fellows, the j-th
message being sent to process P j .
The third row of Fig. 1 instructs the reception of the remaining N − i messages, which is coded as a sequence of
N − i (WR, R) couples.
In [7] it was shown how, irrespective of the value of P,
such FSA’s implement a distributed deadlock-free gossiping
algorithm. As intuition may suggest, the choice of which
permutation to use has indeed a deep impact on the overall performance of the algorithm—together with the physical characteristics of the system. In fact, different permutations translate in different amounts of communication parallelism; when such algorithmic parallelism is backed up
by contextual parallelism—that is, by a sufficiently large
number of independent communication ports and lines in
the system, modeled as dynamic system N (t)—then there
is an optimal match between the algorithm and the deployment platform.
In order to evaluate the above impact we shall make use
of the following “quality metrics”:
Average slot utilization. This is the average number of
used slots per time step in a given run. It will be indicated as µN , or simply as µ. µ can be interpreted
as the average degree of parallelism expressed by the
algorithm—hence it will be referred to also as the “algorithmic parallelism”. µ can take any real value in
[0, N + 1].

0, . . . , i − 1, i + 1, . . . , N
,
0, . . . , i − 1, i + 1, . . . , N

(1)

i.e., in cycle notation [17], P = (0) . . . (i−1)(i+1) . . . (N ).
This means that, once process i acquires the right to
broadcast, it first sends its message to process 0 (possibly
having to wait for it to become available), then it will do the
same with process 1, and so forth up to process N , obviously skipping itself. This is shown in Table 1 for N = 5.
In what follows we shall refer to tables such as Table 1 as to
“run-tables.”
In [7] it was shown how it is possible to characterize
some properties of the quality metrics of the member corresponding to the identity permutation. Among such properties particularly useful here are the following two ones:
• The algorithm makes use of O(N 2 ) time—more pre1
cisely, λN = 3 N 2 + 5 N + 2 ⌊N/2⌋.
4
4
• The asymptotic value of algorithmic parallelism, that
8
is limk→∞ µk , equals 3 .

2.3

Pipelined Permutation

We now consider a second case—the one corresponding
to permutation
0, . . . , i − 1, i + 1, . . . , N
.
i + 1, . . . , N, 0, . . . , i − 1

(2)

Note how permutation (2) is equivalent to i cyclic logical
left shifts of the identity permutation.
When P is as in (2), then process i first sends its message to process i + 1, then to process i + 2, and so on until
step

id

↓→ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
0 S1 S2 S3 S4 S5 R 1 R 2
R3
R4
R5
1 R0
S0 S2 S3 S4 S5 R 2
R3
R4
R5
2
R0
R 1 S0
S1 S3 S4 S5 R 3
R4
R5
3
R0
R1
R 2 S0 S1 S2 S4 S5
R4
R5
R0
R1
R2
R 3 S0 S1 S2 S3 S5
R5
4
5
R0
R1
R2
R3
R 4 S0 S1 S2 S3 S4
used

→ 2 2 2 2 2 2 2 4 2 2 2 2 4 4 2 2 4 2 2 2 2 2 2 2 2 2

Table 1. Run (N = 5) for P equal to the identity permutation. The step row represents time steps. Id’s
identify processes. ν is the utilization string. In this case µ (that is, algorithmic parallelism) is about
2.3077 slots, and length λ = 26. Note that, if the slot is a used one, then entry (i, t) = Rj of this matrix
is action i Rt j.

it reaches process N . After that, i wraps around and sends
from process 0 to process i − 1. This is shown in Table 2
for N = 8. As can be seen from that table, (2) maximally
overlaps the processes’ broadcast sessions the same way as
machine instructions are being overlapped in pipelined microprocessors [13]. This similarity brought to the name of
“pipelined permutation” for (2) [7].
In [7] some of the quality metrics of the member corresponding to the pipelined permutation were also characterized. In particular it was shown that:
• The algorithm makes use of O(N ) time, and more precisely λN = 3N.
Figure 2. Hybrid gossiping: processes operate using a permutation selected from two or
more classes.

• Algorithmic parallelism linearly depends on the
amount of involved processes: ∀k > 0 : µk =
2
3 (k + 1).

3

Tuning Algorithmic Parallelism through
Hybrid Gossiping

The two cases introduced in the previous section represent two “extremes” in the spectrum of possible permutation structures: the identity permutation and the pipelined
permutation respectively translate in very low and very high
algorithmic parallelism. These emerging behaviors characterize homogeneous gossiping—gossiping that is in which
all processes make use of the same permutation. A useful
property of our family of algorithms is that it also supports
hybrid gossiping: in this case the gossiping processes make
use of a permutation selected (with some predefined logic)
from two or more classes, as depicted in Fig. 2. A noteworthy assignment logic is the one that schedules the pipelined
permutation to a certain percentage of the processes and the
identity permutation to the rest. By doing so we experimentally found that the ensuing algorithmic parallelism grows

after the percentage of pipelined permutations assigned to
the processes. In what follows we shall use symbol “HN ”
(or where possible without ambiguity, “H”) to refer to such
percentage. Figure 3 shows values of µ (algorithmic parallelism) for up to 50 participating processes when various
percentages are used.

4

Autonomic System Evolution

The ability to tune algorithmic parallelism paves the way
to the definition of autonomic procedures to evolve the system. In general such evolutions take the form of a socalled “MAPE” adaptation loop [15], where MAPE stands
for “Monitor-Analyze-Plan-Execute”. In the case at hand,
Monitor signifies being able to estimate N (t),
Analyze means checking whether µN matches the esti-
step

id

↓ → 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
0 S1 S2 S3 S4 S5 S6 S7 S8 R 1 R 2 R 3 R 4 R 5 R 6 R 7 R 8
1 R 0 S2 S3 S4 S5 S6 S7 S8 S0 R 2 R 3 R 4 R 5 R 6 R 7 R 8
2
R 0 R 1 S3 S4 S5 S6 S7 S8 S0 S1 R 3 R 4 R 5 R 6 R 7 R 8
3
R 0 R 1 R 2 S4 S5 S6 S7 S8 S0 S1 S2 R 4 R 5 R 6 R 7 R 8
R 0 R 1 R 2 R 3 S5 S6 S7 S8 S0 S1 S2 S3 R 5 R 6 R 7 R 8
4
5
R 0 R 1 R 2 R 3 R 4 S6 S7 S8 S0 S1 S2 S3 S4 R 6 R 7 R 8
R 0 R 1 R 2 R 3 R 4 R 5 S7 S8 S0 S1 S2 S3 S4 S5 R 7 R 8
6
7
R 0 R 1 R 2 R 3 R 4 R 5 R 6 S8 S0 S1 S2 S3 S4 S5 S6 R 8
8
R 0 R 1 R 2 R 3 R 4 R 5 R 6 R 7 S0 S1 S2 S3 S4 S5 S6 S7
ν

→

2 2 4 4 6 6 8 8 8 8 8 8 8 8 8 8 8 8 6 6 4 4 2 2

Table 2. Run-table for N = 8 and the pipelined permutation. In this case algorithmic parallelism is 6
and length is 24. Efficiency (channel exploitation) is of 6 slots out of 9, that is 66.67%.

mated value of N (t),
Plan is a “meta-algorithm” (also known as “evolution engine” [6]) responsible for choosing how to evolve the
system,
Execute is the execution of the meta-algorithm and the corresponding evolution of the managed system.
In what follows we assume the availability of a monitoring function called sense. A reflective system such as the
one introduced in [5] or [8] could be used to provide transparent access to the number of currently available ports and
lines—that is, N (t). The “Analyze” step is merely the assessment of how close the current value of HN is to the
estimated value of N (t). The system would evolve only in
case of two conditions: overshooting, that is a value of HN
overabundant with respect to that of N (t), and undershooting—namely, a value of HN that would translate in a suboptimal exploitation of the available contextual parallelism.
In case the system would indeed require adaptation, several
meta-algorithms may be selected for the Planning step depending on e.g. the characteristic of the mission and the
system assumptions: in fact complex planning is likely to
call for non-negligible amounts of system resources, which
could interfere e.g. with real-time requirements. A possible cost-effective solution for the meta-algorithm could
then be to make use of look-up tables providing for several values of N the algorithmic parallelism corresponding
to some sampling of HN . Figure 4 shows 200 samples of
H200 , which could be computed off-line and stored in one
such look-up table. Algorithm 2 could then be used for the
“Execute” step. Alternatively, should performance penalties be deemed preferable to the memory penalty to store
the look-up table, one could compute the curve best fitting
the sampling of HN at run-time.

1

2
3
4
5

Algorithm 2: Tune algorithmic parallelism
after contextual parallelism
Input: N (t), N , look-up table MN ; Output: Hbest
begin
/* cp holds the current contextual parallelism */
/* Function now returns current time */
cp ← sense(N (now()))
Hbest ← min{h : MN (h) ≥ cp}
return Hbest
end.

Another possibility is for instance the one described in
Algorithm 3. In this case we define MN as an associative
map, that is, a growing set of domain-to-value associations
that link known values of HN to corresponding known values of µN . A system such as the one described in [4] could
implement such a map. The specific difference with respect
to a look-up table lies in the dynamic nature of MN , as
it is possible to add new associations to it at all times. It
is assumed that MN is initialized at least with the associations corresponding to the identity and the pipelined permutations.
The strategy followed in this case is to return a best
match with the entries currently available in MN , and to
add new entries to refine dichotomically the list. The current linear strategy may be replaced by a more efficient one
designed after the non-linear nature of µ. Figure 5 graphically depicts the working of Algorithm 3 under the following conditions: N = 200; M200 initially includes only the
identity and pipelined permutations; N (t) = 13 for all values of t. At the eighth iteration |M200 | = 9 and the selected
best value for µ is 13.11.
35

Identity
Hybrid, 50%
Hybrid, 75%
Hybrid, 87.5%
Hybrid, 95%
Hybrid, 98.7%
Pipelined

Algorithmic parallelism

30
25
20

◦
•

•
••

••

•

•
••

•
••
◦
◦◦

••
◦◦

•

•
••

◦◦

••

◦
◦◦◦

•
••

◦◦

••

◦◦

◦

•
◦◦◦
••
◦◦
◦◦
••
◦
••
◦◦
•• ◦◦◦◦
2
◦
••
2222222222 22
•• ◦◦◦◦
222222222
•
2 22
• • ◦ ◦ ◦ ◦2
2222 22
∗ ∗∗ ∗∗∗∗∗
◦
• • ◦22222∗222∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗
•2◦2∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗
• ◦∗
▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽
• •22▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽
◦ ◦ ◦ ∗2∗
∗∗
◦ ◦ ∗2
∗∗
+++++++++++++++++++++++++++++++++++++++++++++++++
▽▽▽▽
••◦
222∗▽▽

15
10
5
0

+
▽
∗
2

0

5

10

15

20
25
30
participants

35

40

45

50

Figure 3. Hybrid gossiping produces different amounts of algorithmic parallelism depending on the
scheduling distribution of the pipelined and identity permutations.

1
2
3
4
5
6

7
8
9
10

5

Algorithm 3: Tune algorithmic parallelism
after contextual parallelism
Input: N (t), N , associative map MN ; Output: Hbest
begin
cp ← sense(N (now()))
Hbest ← min{h : MN (h) ≥ cp}
if MN (Hbest ) = cp then return Hbest fi
/* MN (Hbest ) > cp */
sb ← max{h : MN (h) < MN (Hbest )}
Hbest ← (MN (Hbest ) − MN (sb))/2
/* computeµ simulates a run */
/* and computes the corresponding µ */
µ ← computeµ (Hbest )
MN ← MN ∪ {Hbest → µ}
return Hbest
end.

State of the Art

In this section we briefly report on methods and strategies to tune the characteristics of a software system so as to
achieve high performance e.g. through the expression and
exploitation of algorithmic parallelism.
Concerns such as this normally are not localized in a single physical module (e.g. a function) or logical component
(e.g., a formal parameter, as it is the case for our gossiping algorithms); on the contrary, they often span through

several modules and require the joint evolution of multiple
correlated variables. In other words, the expression of parallelism is a typical cross-cutting concern. A typical way
to tackle such concerns is through the usage of Aspect Oriented Programming (AOP) [16]. In AOP the source core
consists of two separate “blocks”: the functional code dealing with the business logic and the aspect code to express
one or more cross-cutting concerns. The actual source code
is the result of a merging process called weaving where the
functional code is rearranged, instrumented, and patched,
according to what prescribed in the aspect code. This allows software systems to be effectively evolved so as to
maximize one or more target concerns—including e.g. the
expression of algorithmic parallelism [18]. Widely used in
industry and academia, AOP proved in many cases to be
able to manage effectively the complexity of software evolution.
The general problem of guaranteeing the emergence
of certain expected features or behaviors in a system—
software or otherwise—was termed by Jen [14] as “robust
evolvability”. In the cited paper the author defines evolvability as an entity’s ability to “alter their structure or function so as to adapt to changing circumstances” and discusses
a system’s capability to retain certain characteristics of interests (e.g. maximizing algorithmic parallelism) despite
changes in its composition and deployment environment.
Such capability is called by Jen as robustness: feature persistence under specified and unforeseen perturbations, obtained by switching among multiple strategic options such
140
×

120

×

Algorithmic parallelism

100

×

80

×
60

×

×
×
×
×
×
×
×
×
×
×
×
×
×
×
20
×
×
×
××
××
××
××
××
×
×
××
××
×× ×
×× ×
××××
× × ××
× ×× ×××
× ×× ×××
× × × ×× ×
×××× ×× ×× ××××× ×
× ×× ×× ×× ××××× ×
× × × × × ×× ×
× × × × × ×××× ×× ×× ××
× × × ×
××××××× ×× ×× ×× ××× ×× ×× ×× ×× ××
× ×× ××× ×× ×× ×× ××× ×× ×× ×× ×× ×
× ×× ××× ×× ×× ×× ××× ×× ×× ×× ×× ×
× ×
0
40

0

20

40

60

80

100

120

140

160

180

200

H200 × 2

Figure 4. Algorithmic parallelism when H200 varies from 0.5% to 100% with step 0.5%.
that those changes are dynamically tolerated or even exploited. Interestingly enough, Jen distinguishes two classes
of evolvable systems.
• Phenotypically plastic systems. Such systems retain
their structure and organization throughout adaptations
and only achieve evolution by switching among a few,
preordained, structurally equivalent configurations that
depend on some internal parameter. Obviously this is
the case for our gossiping algorithms.
• Phenotypically dynamic systems programming system, which are able to assume different structures and
organizations by mutating the topology, the role, and
the number of their components. An example of this is
given by AOP systems.
A deeper discussion and some examples of systems matching the above classes may be found e.g. in [6].
We believe as worth mentioning here the case of FFTW,
an evolvable software system that tunes its logics so as to
maximize performance on a given target platform. FFTW
(whose name stands for “Fastest Fourier Transform in the
West”) is a code generator for Fast Fourier Transforms that
defines and assembles blocks of C code that optimally solve
FFT sub-problems on a given machine [10].
Finally we observe how nowadays it is common practice
designing software for families of target platforms, which
selectively enable or disable target-specific optimizations.
One such software is the mplayer video player [1], which
explicitly states such optimizations with messages such as
“Using optimized IMDCT transform” or “Using MMX optimized resampler.” The same software also permits to in-

struct the use of a number of threads that matches optimally
the amount of parallelism available on a multi-core target
machine.

6

Conclusions

We presented the properties of a family of algorithms
which retain their structural characteristics though vary
their operation depending on a combinatorial parameter. We
showed how such “phenotypically plastic” system [14, 6]
may be used to meet various changing requirements by
tuning dynamically the amount of algorithmic parallelism
manifested by the software. This paves the way to enabling robust control on the emergence of several properties and behaviors, e.g. collision avoidance, deterministic
upper bounds on energy consumption, and optimal use of
the available communication resources. Finally we showed
how several evolution engines may be adopted to achieve
autonomic context-aware selection of members that best
match the current contextual conditions.

References
[1] Anonymous. Mplayer—the movie player. Retrieved on August 7, 2011 from www.mplayerhq.hu/design7/info.html.
[2] J.-C. Bermond et al. Fast gossiping by short messages. SIAM
J. Comput., 27:917–941, 1998.
[3] J. Buys, V. De Florio, and C. Blondia. Towards contextaware adaptive fault tolerance in SOA applications. In Proc.
of the 5th ACM International Conference on Distributed
Event-Based Systems (DEBS), pages 63–74. ACM, 2011.
1000
8

Algorithmic parallelism

7
6
5
4
3
2
1
N= 13

100

10

1
1

10
H

100

Figure 5. A graphical representation of Algorithm 3 when N = 200 and ∀t : N (t) = 13. Logarithmic
scales are used.

[4] V. De Florio. Array associativi, linguaggio C e programmazione CGI. DEV., (27), February 1996. (In Italian).
[5] V. De Florio. Software assumptions failure tolerance: Role,
strategies, and visions. In A. Casimiro, R. de Lemos, and
C. Gacek, eds.: Architecting Dependable Systems VII, volume 6420 of LNCS. Springer, 2010.
[6] V. De Florio. Robust-and-evolvable resilient software systems — open problems and lessons learned. In Proc. of the
ESEC/FSE 2011 Workshop on Assurances for Self-Adaptive
Systems (ASAS 2011), Szeged, Hungary, Sept. 2011.
[7] V. De Florio and C. Blondia. The algorithm of pipelined
gossiping. Journal of Systems Architecture, 52(4):235–256,
2006.
[8] V. De Florio and C. Blondia. Reflective and refractive variables: A model for effective and maintainable adaptive-anddependable software. In Proc. of the 33rd Euromicro Conf.
on Software Engineering and Advanced Applications (SEEA
2007), L¨ beck, Germany, August 2007. IEEE.
u
[9] V. De Florio, G. Deconinck and R. Lauwereins. Software
tool combining fault masking with user-defined recovery
strategies. IEE Proceedings – Software, 145(6):203–211,
Dec. 1998. IEE in association with the British Computer
Society.
[10] M. Frigo. A fast fourier transform compiler. SIGPLAN Not.,
39(4):642–655, 2004.

[11] T. F. Gonzales. An efficient algorithm for gossiping in the
multicasting communication environment. IEEE Transactions on Parallel and Distributed Systems, 14(7), July 2003.
[12] S. Hedetniemi, S. Hedetniemi, and A. Leistman. A survey
of gossiping and broadcasting in communication networks.
Networks, 18:419–435, 1988.
[13] J. L. Hennessy and D. A. Patterson. Computer Architecture,
Fourth Edition: A Quantitative Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2006.
[14] E. Jen. Stable or robust? what’s the difference? In E. Jen,
editor, Robust Design: a repertoire of biological, ecological,
and engineering case studies, SFI Studies in the Sciences of
Complexity, pages 7–20. Oxford University Press, 2004.
[15] J. O. Kephart and D. M. Chess. The vision of autonomic
computing. Computer, 36:41–50, January 2003.
[16] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda,
C. Videira Lopes, J.M. Loingtier and J. Irwin. Aspectoriented programming. In Proc. of the European Conf. on
Object-Oriented Programming (ECOOP), volume 1241 of
LNCS, Finland, June 1997.
[17] D. E. Knuth. The Art of Computer Programming, Volume 1
(Fundamental Algorithms). Addison-Wesley, Reading MA,
2nd edition, 1973.
[18] S. Subotic and J. Bishop. Emergent behaviour of aspects in
high performance and distributed computing. In Proc. of the
2005 annual conf. on IT research in developing countries,
SAICSIT ’05, pages 11–19, Republic of South Africa, 2005.

Contenu connexe

Tendances

Computer Communication Networks- Introduction to Transport layer
Computer Communication Networks- Introduction to Transport layerComputer Communication Networks- Introduction to Transport layer
Computer Communication Networks- Introduction to Transport layerKrishna Nanda
 
Queuing theory and its applications
Queuing theory and its applicationsQueuing theory and its applications
Queuing theory and its applicationsDebasisMohanty37
 
Report on data link layer
Report on data link layerReport on data link layer
Report on data link layerAlisha Korpal
 
Data Link Layer Numericals
Data Link Layer NumericalsData Link Layer Numericals
Data Link Layer NumericalsManisha Keim
 
3a data link layer
3a data link layer 3a data link layer
3a data link layer kavish dani
 
data-link layer protocols
data-link layer protocols  data-link layer protocols
data-link layer protocols BE Smârt
 
Ch 6 data and computer communicationwilliam stallings (1)
Ch 6 data and computer communicationwilliam stallings (1)Ch 6 data and computer communicationwilliam stallings (1)
Ch 6 data and computer communicationwilliam stallings (1)bheemsain
 
Introduction to the Data Link Layer
Introduction to the Data Link LayerIntroduction to the Data Link Layer
Introduction to the Data Link LayerMeenakshi Paul
 
Unit 4 data link layer
Unit 4 data link layerUnit 4 data link layer
Unit 4 data link layermekind
 
New strategy to optimize the performance of spray and wait routing protocol
New strategy to optimize the performance of spray and wait routing protocolNew strategy to optimize the performance of spray and wait routing protocol
New strategy to optimize the performance of spray and wait routing protocolijwmn
 
Data link layer
Data link layerData link layer
Data link layersbkbca
 
Physical And Data Link Layers
Physical And Data Link LayersPhysical And Data Link Layers
Physical And Data Link Layerstmavroidis
 
Presentation of computer network on data link layer
Presentation of computer network on data link layerPresentation of computer network on data link layer
Presentation of computer network on data link layersumit gyawali
 
link layer
link layerlink layer
link layerGS Kosta
 
Framming data link layer
Framming data link layerFramming data link layer
Framming data link layerPREMAL GAJJAR
 
Transport Layer
Transport LayerTransport Layer
Transport LayerAmin Omi
 
A Proposal Analytical Model and Simulation of the Attacks in Routing Protocol...
A Proposal Analytical Model and Simulation of the Attacks in Routing Protocol...A Proposal Analytical Model and Simulation of the Attacks in Routing Protocol...
A Proposal Analytical Model and Simulation of the Attacks in Routing Protocol...graphhoc
 
AGPM: An Authenticated Secure Group Communication Protocol for MANETs
AGPM: An Authenticated Secure Group Communication Protocol for MANETsAGPM: An Authenticated Secure Group Communication Protocol for MANETs
AGPM: An Authenticated Secure Group Communication Protocol for MANETsIDES Editor
 

Tendances (20)

N sys s 32
N sys s 32N sys s 32
N sys s 32
 
Computer Communication Networks- Introduction to Transport layer
Computer Communication Networks- Introduction to Transport layerComputer Communication Networks- Introduction to Transport layer
Computer Communication Networks- Introduction to Transport layer
 
Queuing theory and its applications
Queuing theory and its applicationsQueuing theory and its applications
Queuing theory and its applications
 
Report on data link layer
Report on data link layerReport on data link layer
Report on data link layer
 
Data Link Layer Numericals
Data Link Layer NumericalsData Link Layer Numericals
Data Link Layer Numericals
 
3a data link layer
3a data link layer 3a data link layer
3a data link layer
 
R44089799
R44089799R44089799
R44089799
 
data-link layer protocols
data-link layer protocols  data-link layer protocols
data-link layer protocols
 
Ch 6 data and computer communicationwilliam stallings (1)
Ch 6 data and computer communicationwilliam stallings (1)Ch 6 data and computer communicationwilliam stallings (1)
Ch 6 data and computer communicationwilliam stallings (1)
 
Introduction to the Data Link Layer
Introduction to the Data Link LayerIntroduction to the Data Link Layer
Introduction to the Data Link Layer
 
Unit 4 data link layer
Unit 4 data link layerUnit 4 data link layer
Unit 4 data link layer
 
New strategy to optimize the performance of spray and wait routing protocol
New strategy to optimize the performance of spray and wait routing protocolNew strategy to optimize the performance of spray and wait routing protocol
New strategy to optimize the performance of spray and wait routing protocol
 
Data link layer
Data link layerData link layer
Data link layer
 
Physical And Data Link Layers
Physical And Data Link LayersPhysical And Data Link Layers
Physical And Data Link Layers
 
Presentation of computer network on data link layer
Presentation of computer network on data link layerPresentation of computer network on data link layer
Presentation of computer network on data link layer
 
link layer
link layerlink layer
link layer
 
Framming data link layer
Framming data link layerFramming data link layer
Framming data link layer
 
Transport Layer
Transport LayerTransport Layer
Transport Layer
 
A Proposal Analytical Model and Simulation of the Attacks in Routing Protocol...
A Proposal Analytical Model and Simulation of the Attacks in Routing Protocol...A Proposal Analytical Model and Simulation of the Attacks in Routing Protocol...
A Proposal Analytical Model and Simulation of the Attacks in Routing Protocol...
 
AGPM: An Authenticated Secure Group Communication Protocol for MANETs
AGPM: An Authenticated Secure Group Communication Protocol for MANETsAGPM: An Authenticated Secure Group Communication Protocol for MANETs
AGPM: An Authenticated Secure Group Communication Protocol for MANETs
 

En vedette

Implementing a Role Based Mutual Assistance Community with Semantic Service D...
Implementing a Role Based Mutual Assistance Community with Semantic Service D...Implementing a Role Based Mutual Assistance Community with Semantic Service D...
Implementing a Role Based Mutual Assistance Community with Semantic Service D...Vincenzo De Florio
 
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...Vincenzo De Florio
 
Icssea 2013 arrl_final_08102013
Icssea 2013 arrl_final_08102013Icssea 2013 arrl_final_08102013
Icssea 2013 arrl_final_08102013Vincenzo De Florio
 
Service-oriented Communities: Models and Concepts towards Fractal Social Orga...
Service-oriented Communities: Models and Concepts towards Fractal Social Orga...Service-oriented Communities: Models and Concepts towards Fractal Social Orga...
Service-oriented Communities: Models and Concepts towards Fractal Social Orga...Vincenzo De Florio
 

En vedette (6)

Otcaosr v2.4
Otcaosr v2.4Otcaosr v2.4
Otcaosr v2.4
 
Implementing a Role Based Mutual Assistance Community with Semantic Service D...
Implementing a Role Based Mutual Assistance Community with Semantic Service D...Implementing a Role Based Mutual Assistance Community with Semantic Service D...
Implementing a Role Based Mutual Assistance Community with Semantic Service D...
 
Autoresilience
AutoresilienceAutoresilience
Autoresilience
 
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
 
Icssea 2013 arrl_final_08102013
Icssea 2013 arrl_final_08102013Icssea 2013 arrl_final_08102013
Icssea 2013 arrl_final_08102013
 
Service-oriented Communities: Models and Concepts towards Fractal Social Orga...
Service-oriented Communities: Models and Concepts towards Fractal Social Orga...Service-oriented Communities: Models and Concepts towards Fractal Social Orga...
Service-oriented Communities: Models and Concepts towards Fractal Social Orga...
 

Similaire à Pdp12

A Deterministic Model Of Time For Distributed Systems
A Deterministic Model Of Time For Distributed SystemsA Deterministic Model Of Time For Distributed Systems
A Deterministic Model Of Time For Distributed SystemsJim Webb
 
Analysis of single server fixed batch service queueing system under multiple ...
Analysis of single server fixed batch service queueing system under multiple ...Analysis of single server fixed batch service queueing system under multiple ...
Analysis of single server fixed batch service queueing system under multiple ...Alexander Decker
 
Towards a Concurrence Analysis in Business Processes
Towards a Concurrence Analysis in Business ProcessesTowards a Concurrence Analysis in Business Processes
Towards a Concurrence Analysis in Business ProcessesAnastasija Nikiforova
 
Universal Scalability Law (USL)
Universal Scalability Law (USL) Universal Scalability Law (USL)
Universal Scalability Law (USL) Pasindu Tennage
 
Simulation analysis of single server queuing model
Simulation  analysis of single server queuing modelSimulation  analysis of single server queuing model
Simulation analysis of single server queuing modelijitjournal
 
Comparative analysis of congestion
Comparative analysis of congestionComparative analysis of congestion
Comparative analysis of congestionijwmn
 
2018867974 sulaim (2)
2018867974 sulaim (2)2018867974 sulaim (2)
2018867974 sulaim (2)sulaim_qais
 
Simulation of Wireless Sensor Networks
Simulation of Wireless Sensor NetworksSimulation of Wireless Sensor Networks
Simulation of Wireless Sensor NetworksDaniel Zuniga
 
Provably Secure Authenticated Key Management Protocol Against De-Synchronizat...
Provably Secure Authenticated Key Management Protocol Against De-Synchronizat...Provably Secure Authenticated Key Management Protocol Against De-Synchronizat...
Provably Secure Authenticated Key Management Protocol Against De-Synchronizat...IJRESJOURNAL
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2DBU
 
Simple queuingmodelspdf
Simple queuingmodelspdfSimple queuingmodelspdf
Simple queuingmodelspdfAnkit Katiyar
 
AN EFFICIENT GROUP AUTHENTICATION FOR GROUP COMMUNICATIONS
AN EFFICIENT GROUP AUTHENTICATION FOR GROUP COMMUNICATIONSAN EFFICIENT GROUP AUTHENTICATION FOR GROUP COMMUNICATIONS
AN EFFICIENT GROUP AUTHENTICATION FOR GROUP COMMUNICATIONSIJNSA Journal
 

Similaire à Pdp12 (20)

A Deterministic Model Of Time For Distributed Systems
A Deterministic Model Of Time For Distributed SystemsA Deterministic Model Of Time For Distributed Systems
A Deterministic Model Of Time For Distributed Systems
 
Analysis of single server fixed batch service queueing system under multiple ...
Analysis of single server fixed batch service queueing system under multiple ...Analysis of single server fixed batch service queueing system under multiple ...
Analysis of single server fixed batch service queueing system under multiple ...
 
Towards a Concurrence Analysis in Business Processes
Towards a Concurrence Analysis in Business ProcessesTowards a Concurrence Analysis in Business Processes
Towards a Concurrence Analysis in Business Processes
 
Universal Scalability Law (USL)
Universal Scalability Law (USL) Universal Scalability Law (USL)
Universal Scalability Law (USL)
 
DATA STRUCTURE.pdf
DATA STRUCTURE.pdfDATA STRUCTURE.pdf
DATA STRUCTURE.pdf
 
DATA STRUCTURE
DATA STRUCTUREDATA STRUCTURE
DATA STRUCTURE
 
Os
OsOs
Os
 
Simulation analysis of single server queuing model
Simulation  analysis of single server queuing modelSimulation  analysis of single server queuing model
Simulation analysis of single server queuing model
 
Fairness in Transfer Control Protocol for Congestion Control in Multiplicativ...
Fairness in Transfer Control Protocol for Congestion Control in Multiplicativ...Fairness in Transfer Control Protocol for Congestion Control in Multiplicativ...
Fairness in Transfer Control Protocol for Congestion Control in Multiplicativ...
 
Comparative analysis of congestion
Comparative analysis of congestionComparative analysis of congestion
Comparative analysis of congestion
 
2018867974 sulaim (2)
2018867974 sulaim (2)2018867974 sulaim (2)
2018867974 sulaim (2)
 
Simulation of Wireless Sensor Networks
Simulation of Wireless Sensor NetworksSimulation of Wireless Sensor Networks
Simulation of Wireless Sensor Networks
 
9517cnc03
9517cnc039517cnc03
9517cnc03
 
Distributed System
Distributed System Distributed System
Distributed System
 
Bh36352357
Bh36352357Bh36352357
Bh36352357
 
Provably Secure Authenticated Key Management Protocol Against De-Synchronizat...
Provably Secure Authenticated Key Management Protocol Against De-Synchronizat...Provably Secure Authenticated Key Management Protocol Against De-Synchronizat...
Provably Secure Authenticated Key Management Protocol Against De-Synchronizat...
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2
 
Simple queuingmodelspdf
Simple queuingmodelspdfSimple queuingmodelspdf
Simple queuingmodelspdf
 
Notes on Class 3
Notes on Class 3Notes on Class 3
Notes on Class 3
 
AN EFFICIENT GROUP AUTHENTICATION FOR GROUP COMMUNICATIONS
AN EFFICIENT GROUP AUTHENTICATION FOR GROUP COMMUNICATIONSAN EFFICIENT GROUP AUTHENTICATION FOR GROUP COMMUNICATIONS
AN EFFICIENT GROUP AUTHENTICATION FOR GROUP COMMUNICATIONS
 

Plus de Vincenzo De Florio

Models and Concepts for Socio-technical Complex Systems: Towards Fractal Soci...
Models and Concepts for Socio-technical Complex Systems: Towards Fractal Soci...Models and Concepts for Socio-technical Complex Systems: Towards Fractal Soci...
Models and Concepts for Socio-technical Complex Systems: Towards Fractal Soci...Vincenzo De Florio
 
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...Vincenzo De Florio
 
Service-oriented Communities: A Novel Organizational Architecture for Smarter...
Service-oriented Communities: A Novel Organizational Architecture for Smarter...Service-oriented Communities: A Novel Organizational Architecture for Smarter...
Service-oriented Communities: A Novel Organizational Architecture for Smarter...Vincenzo De Florio
 
On codes, machines, and environments: reflections and experiences
On codes, machines, and environments: reflections and experiencesOn codes, machines, and environments: reflections and experiences
On codes, machines, and environments: reflections and experiencesVincenzo De Florio
 
Tapping Into the Wells of Social Energy: A Case Study Based on Falls Identifi...
Tapping Into the Wells of Social Energy: A Case Study Based on Falls Identifi...Tapping Into the Wells of Social Energy: A Case Study Based on Falls Identifi...
Tapping Into the Wells of Social Energy: A Case Study Based on Falls Identifi...Vincenzo De Florio
 
How Resilient Are Our Societies? Analyses, Models, Preliminary Results
How Resilient Are Our Societies?Analyses, Models, Preliminary ResultsHow Resilient Are Our Societies?Analyses, Models, Preliminary Results
How Resilient Are Our Societies? Analyses, Models, Preliminary ResultsVincenzo De Florio
 
Advanced C Language for Engineering
Advanced C Language for EngineeringAdvanced C Language for Engineering
Advanced C Language for EngineeringVincenzo De Florio
 
A framework for trustworthiness assessment based on fidelity in cyber and phy...
A framework for trustworthiness assessment based on fidelity in cyber and phy...A framework for trustworthiness assessment based on fidelity in cyber and phy...
A framework for trustworthiness assessment based on fidelity in cyber and phy...Vincenzo De Florio
 
Fractally-organized Connectionist Networks - Keynote speech @PEWET 2015
Fractally-organized Connectionist Networks - Keynote speech @PEWET 2015Fractally-organized Connectionist Networks - Keynote speech @PEWET 2015
Fractally-organized Connectionist Networks - Keynote speech @PEWET 2015Vincenzo De Florio
 
A behavioural model for the discussion of resilience, elasticity, and antifra...
A behavioural model for the discussion of resilience, elasticity, and antifra...A behavioural model for the discussion of resilience, elasticity, and antifra...
A behavioural model for the discussion of resilience, elasticity, and antifra...Vincenzo De Florio
 
Considerations and ideas after reading a presentation by Ali Anani
Considerations and ideas after reading a presentation by Ali AnaniConsiderations and ideas after reading a presentation by Ali Anani
Considerations and ideas after reading a presentation by Ali AnaniVincenzo De Florio
 
A Behavioral Interpretation of Resilience and Antifragility
A Behavioral Interpretation of Resilience and AntifragilityA Behavioral Interpretation of Resilience and Antifragility
A Behavioral Interpretation of Resilience and AntifragilityVincenzo De Florio
 
Community Resilience: Challenges, Requirements, and Organizational Models
Community Resilience: Challenges, Requirements, and Organizational ModelsCommunity Resilience: Challenges, Requirements, and Organizational Models
Community Resilience: Challenges, Requirements, and Organizational ModelsVincenzo De Florio
 
On the Behavioral Interpretation of System-Environment Fit and Auto-Resilience
On the Behavioral Interpretation of System-Environment Fit and Auto-ResilienceOn the Behavioral Interpretation of System-Environment Fit and Auto-Resilience
On the Behavioral Interpretation of System-Environment Fit and Auto-ResilienceVincenzo De Florio
 
Antifragility = Elasticity + Resilience + Machine Learning. Models and Algori...
Antifragility = Elasticity + Resilience + Machine Learning. Models and Algori...Antifragility = Elasticity + Resilience + Machine Learning. Models and Algori...
Antifragility = Elasticity + Resilience + Machine Learning. Models and Algori...Vincenzo De Florio
 
Service-oriented Communities and Fractal Social Organizations - Models and co...
Service-oriented Communities and Fractal Social Organizations - Models and co...Service-oriented Communities and Fractal Social Organizations - Models and co...
Service-oriented Communities and Fractal Social Organizations - Models and co...Vincenzo De Florio
 
Seminarie Computernetwerken 2012-2013: Lecture I, 26-02-2013
Seminarie Computernetwerken 2012-2013: Lecture I, 26-02-2013Seminarie Computernetwerken 2012-2013: Lecture I, 26-02-2013
Seminarie Computernetwerken 2012-2013: Lecture I, 26-02-2013Vincenzo De Florio
 
TOWARDS PARSIMONIOUS RESOURCE ALLOCATION IN CONTEXT-AWARE N-VERSION PROGRAMMING
TOWARDS PARSIMONIOUS RESOURCE ALLOCATION IN CONTEXT-AWARE N-VERSION PROGRAMMINGTOWARDS PARSIMONIOUS RESOURCE ALLOCATION IN CONTEXT-AWARE N-VERSION PROGRAMMING
TOWARDS PARSIMONIOUS RESOURCE ALLOCATION IN CONTEXT-AWARE N-VERSION PROGRAMMINGVincenzo De Florio
 
A Formal Model and an Algorithm for Generating the Permutations of a Multiset
A Formal Model and an Algorithm for Generating the Permutations of a MultisetA Formal Model and an Algorithm for Generating the Permutations of a Multiset
A Formal Model and an Algorithm for Generating the Permutations of a MultisetVincenzo De Florio
 

Plus de Vincenzo De Florio (20)

My little grundgestalten
My little grundgestaltenMy little grundgestalten
My little grundgestalten
 
Models and Concepts for Socio-technical Complex Systems: Towards Fractal Soci...
Models and Concepts for Socio-technical Complex Systems: Towards Fractal Soci...Models and Concepts for Socio-technical Complex Systems: Towards Fractal Soci...
Models and Concepts for Socio-technical Complex Systems: Towards Fractal Soci...
 
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
On the Role of Perception and Apperception in Ubiquitous and Pervasive Enviro...
 
Service-oriented Communities: A Novel Organizational Architecture for Smarter...
Service-oriented Communities: A Novel Organizational Architecture for Smarter...Service-oriented Communities: A Novel Organizational Architecture for Smarter...
Service-oriented Communities: A Novel Organizational Architecture for Smarter...
 
On codes, machines, and environments: reflections and experiences
On codes, machines, and environments: reflections and experiencesOn codes, machines, and environments: reflections and experiences
On codes, machines, and environments: reflections and experiences
 
Tapping Into the Wells of Social Energy: A Case Study Based on Falls Identifi...
Tapping Into the Wells of Social Energy: A Case Study Based on Falls Identifi...Tapping Into the Wells of Social Energy: A Case Study Based on Falls Identifi...
Tapping Into the Wells of Social Energy: A Case Study Based on Falls Identifi...
 
How Resilient Are Our Societies? Analyses, Models, Preliminary Results
How Resilient Are Our Societies?Analyses, Models, Preliminary ResultsHow Resilient Are Our Societies?Analyses, Models, Preliminary Results
How Resilient Are Our Societies? Analyses, Models, Preliminary Results
 
Advanced C Language for Engineering
Advanced C Language for EngineeringAdvanced C Language for Engineering
Advanced C Language for Engineering
 
A framework for trustworthiness assessment based on fidelity in cyber and phy...
A framework for trustworthiness assessment based on fidelity in cyber and phy...A framework for trustworthiness assessment based on fidelity in cyber and phy...
A framework for trustworthiness assessment based on fidelity in cyber and phy...
 
Fractally-organized Connectionist Networks - Keynote speech @PEWET 2015
Fractally-organized Connectionist Networks - Keynote speech @PEWET 2015Fractally-organized Connectionist Networks - Keynote speech @PEWET 2015
Fractally-organized Connectionist Networks - Keynote speech @PEWET 2015
 
A behavioural model for the discussion of resilience, elasticity, and antifra...
A behavioural model for the discussion of resilience, elasticity, and antifra...A behavioural model for the discussion of resilience, elasticity, and antifra...
A behavioural model for the discussion of resilience, elasticity, and antifra...
 
Considerations and ideas after reading a presentation by Ali Anani
Considerations and ideas after reading a presentation by Ali AnaniConsiderations and ideas after reading a presentation by Ali Anani
Considerations and ideas after reading a presentation by Ali Anani
 
A Behavioral Interpretation of Resilience and Antifragility
A Behavioral Interpretation of Resilience and AntifragilityA Behavioral Interpretation of Resilience and Antifragility
A Behavioral Interpretation of Resilience and Antifragility
 
Community Resilience: Challenges, Requirements, and Organizational Models
Community Resilience: Challenges, Requirements, and Organizational ModelsCommunity Resilience: Challenges, Requirements, and Organizational Models
Community Resilience: Challenges, Requirements, and Organizational Models
 
On the Behavioral Interpretation of System-Environment Fit and Auto-Resilience
On the Behavioral Interpretation of System-Environment Fit and Auto-ResilienceOn the Behavioral Interpretation of System-Environment Fit and Auto-Resilience
On the Behavioral Interpretation of System-Environment Fit and Auto-Resilience
 
Antifragility = Elasticity + Resilience + Machine Learning. Models and Algori...
Antifragility = Elasticity + Resilience + Machine Learning. Models and Algori...Antifragility = Elasticity + Resilience + Machine Learning. Models and Algori...
Antifragility = Elasticity + Resilience + Machine Learning. Models and Algori...
 
Service-oriented Communities and Fractal Social Organizations - Models and co...
Service-oriented Communities and Fractal Social Organizations - Models and co...Service-oriented Communities and Fractal Social Organizations - Models and co...
Service-oriented Communities and Fractal Social Organizations - Models and co...
 
Seminarie Computernetwerken 2012-2013: Lecture I, 26-02-2013
Seminarie Computernetwerken 2012-2013: Lecture I, 26-02-2013Seminarie Computernetwerken 2012-2013: Lecture I, 26-02-2013
Seminarie Computernetwerken 2012-2013: Lecture I, 26-02-2013
 
TOWARDS PARSIMONIOUS RESOURCE ALLOCATION IN CONTEXT-AWARE N-VERSION PROGRAMMING
TOWARDS PARSIMONIOUS RESOURCE ALLOCATION IN CONTEXT-AWARE N-VERSION PROGRAMMINGTOWARDS PARSIMONIOUS RESOURCE ALLOCATION IN CONTEXT-AWARE N-VERSION PROGRAMMING
TOWARDS PARSIMONIOUS RESOURCE ALLOCATION IN CONTEXT-AWARE N-VERSION PROGRAMMING
 
A Formal Model and an Algorithm for Generating the Permutations of a Multiset
A Formal Model and an Algorithm for Generating the Permutations of a MultisetA Formal Model and an Algorithm for Generating the Permutations of a Multiset
A Formal Model and an Algorithm for Generating the Permutations of a Multiset
 

Dernier

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 

Dernier (20)

Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Pdp12

  • 1. Robust and Tuneable Family of Gossiping Algorithms Vincenzo De Florio and Chris Blondia University of Antwerp Department of Mathematics and Computer Science Performance Analysis of Telecommunication Systems group Middelheimlaan 1, 2020 Antwerp, Belgium Interdisciplinary Institute for Broadband Technology (IBBT) Gaston Crommenlaan 8, 9050 Ghent-Ledeberg, Belgium Abstract here we first show that by assigning different classes of permutations to the participants it is possible to scale dynamically the amount of communication requests triggered by the execution of our algorithm. In other words, this enables the expression of a spectrum of codes each characterized by a different algorithmic parallelism. Secondly, we show here how this can be used to reach an optimal match with the contextual (that is, physical) parallelism provided by the deployment platform and networks. Such an optimal tuning allows the avoidance of shortcoming and excess of algorithmic parallelism. While in the former case one would under-utilize the available resources, in the latter case one would issue a number of requests higher than the available communication resources, which could lead to undesirable conditions such as overloading of request queues and packet collisions. In what follows we first define our family of algorithms and concisely recall its characteristics in Sect. 2. Next, in Sect. 3, we introduce hybrid gossiping—a strategy to tune the algorithmic parallelism in function of the physical parallelism characterizing the current context. Section 4 explains how that strategy can be used to design autonomic evolution engines exploiting hybrid gossiping. State of the art is then briefly summarized in Sect. 5. Our conclusions follow in Sect. 6. We present a family of gossiping algorithms whose members share the same structure though they vary their performance in function of a combinatorial parameter. We show that such parameter may be considered as a “knob” controlling the amount of communication parallelism characterizing the algorithms. After this we introduce procedures to operate the knob and choose parameters matching the amount of communication channels currently provided by the available communication system(s). In so doing we provide a robust mechanism to tune the production of requests for communication after the current operational conditions of the consumers of such requests. This can be used to achieve high performance and programmatic avoidance of undesirable events such as message collisions. 1 Introduction The main character in this text is a family of algorithms for distributed gossiping whose members differ in the strategy adopted to discipline the right to transmit. That strategy can be expressed as a permutation of the indices of the participants. In [7] a formal model for this family of algorithms was introduced and the performance of some of its members was analyzed. In the cited paper in particular it was shown how the choice of the structure of the permutations controlling these algorithms translates in different requirements on the underlying communication system—namely, different amounts of concurrent send and receive requests. The focus of this paper is not on the functional properties of the gossiping algorithms but rather on the non-functional characteristics exhibited by them with the change of the adopted permutations. Building on top of our past research, 2 A Family of Gossiping Algorithms In this section we recall the main features of a family of gossiping algorithms firstly introduced in [7]. We refer the reader to the cited paper for a thorough discussion of the features of those algorithms. Introductions to gossiping, which may be concisely defined as all-to-all pairwise interprocess communication, may be found e.g. in [12, 2, 11]. 1
  • 2. In what follows we define a formal model for such family of algorithms and we highlight the characteristics of two of its members. 2.1 Formal Model Let t represent time and N > 0 be an integer. We shall consider a set of N + 1 communicating processes. We assume that such processes may be uniquely identified via integers in {0, . . . , N }. Processes are deployed in processing nodes linked together via one or more communication networks. We shall refer to the set of nodes and networks as to “the system”. Nodes are equipped with a limited number of communication ports. Likewise, networks provide a limited number of independent full-duplex point-to-point communication lines. At any time t a new communication can only be initiated if a free port and a free line are available in the system. If that is not the case, the requesting process is put in a wait state. Due to resource competition, the number of ports and that of lines vary dynamically. Depending on the available ports and lines, at any time t at most N (t) send and at most N (t) receive requests may be allowed to execute. Communication is synchronous and blocking. Processes own some local data they need to share (for instance, to execute a voting algorithm as in [9] or [3]). In order to do so, each process broadcasts its local data to all the others through multiple consecutive send requests, and receives the N data items owned by its fellows via multiple consecutive receive requests. A discrete time model is assumed—events occur at discrete time steps, and during any time step any process can be involved in only one such event. More specifically, on a given time step t process i may be: 1. sending a message to process j, j = i; this is represented as i S t j; 2. receiving a message from process j, j = i; this is shown as i Rt j; 3. blocked, waiting for messages to be received from any process; symbol “ ” will be used to mean this case; 4. blocked, waiting for a message to be sent, i.e. for an addressee to enter the receiving state. Symbol “ ” will be used for this. A slot is defined as a process’ temporal “window” one time step long. On each given time step t, N + 1 slots are available within the system. Process i makes use of slot t if and only if ∃ j (i S t j ∨ i Rt j); on the contrary, process i is said to waste slot t. By the term “run” we shall refer in what follows to the the collection of slots required to execute the above algorithm on a given system, as well as to the values of the events corresponding to those slots. Let us define the following four state templates: WR state. A process is in state WRj if it is waiting for the arrival of a message from process j. Where the subscript is not important it will be omitted. Once in WR, a process stays there for one or more time steps, corresponding to the same number of “ ” actions. S state. A process i is in state Sj when it is sending a message to process j. After one time step i leaves state Sj . This corresponds to one i S t j action. WS state. A process i waiting to send process j its message is said to be in state WSj . Where the subscript is not important it will be omitted. Once in WSj , process i stays there for one or more time steps, corresponding to the same number of “ ” actions. R state. When process i is receiving a message from process j, it is said to be in state Rj . This state transition also lasts one time step and corresponds to action i Rt j. Let P 1 , . . . , P N represent a permutation of integers 0, . . . , i − 1, i + 1, . . . , N . Then the above state templates can be used to compose N + 1 finite state automata as described in Algorithm 1. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Algorithm 1: Compose the FSA solving gossiping for process i ∈ {0, . . . , N } Input: A ≡ (i, N, P) Output: FSA(A) begin /* emit the initial state */ FSA(A) := START for j := 0 to i − 1 do /* operator “←” appends a new state to the FSA */ FSA(A) ← WR FSA(A) ← R enddo for j := 1 to N do FSA(A) ← WSP j FSA(A) ← SP j enddo for j := i + 1 to N do FSA(A) ← WR FSA(A) ← R enddo /* emit the final state */ FSA(A) ← STOP end. Figure 1 shows the finite state automaton that solves distributed gossiping for process i, which we obtained by executing Alg. 1. The first row is the condition that has to be
  • 3. Length. This is the number of time steps in a run. It represents a measure of the time needed for the distributed algorithm to complete. λN , or more simply λ, will be used for lengths. Figure 1. The state diagram of the FSA run by process i. The first row consists of i (WR, R) couples. (P 1 , . . . , P N ) represents a permutation of the N integers 0, . . . , i − 1, i + 1, . . . , N . The last row contains N − i (WR, R) couples. For any time step t, we shall call νt as the number of slots that were used during t. The λ-tuple ν = [ν1 , ν2 , . . . , νλ ], orderly encoding the number of used slots for each time step in a run, shall be called “utilization string.” In [7] several cases of P were introduced and discussed. In particular in the above cited reference it was shown how varying the structure of P produces quite different values of µ and λ. This fact, coupled with physical constraints of the system as modeled by N (t), determine the overall performance of our algorithm. In what follows we focus on two particular cases representing the minimal and maximal algorithmic parallelism. 2.2 Identity Permutation As a first case, let P be the identity permutation: reached before process i is allowed to begin its broadcast: a series of i (WR, R) couples. Once process i has successfully received i messages, it acquires the right to broadcast. Broadcasting is performed according to the rule expressed in the second row of Fig. 1: process i orderly sends its message to its fellows, the j-th message being sent to process P j . The third row of Fig. 1 instructs the reception of the remaining N − i messages, which is coded as a sequence of N − i (WR, R) couples. In [7] it was shown how, irrespective of the value of P, such FSA’s implement a distributed deadlock-free gossiping algorithm. As intuition may suggest, the choice of which permutation to use has indeed a deep impact on the overall performance of the algorithm—together with the physical characteristics of the system. In fact, different permutations translate in different amounts of communication parallelism; when such algorithmic parallelism is backed up by contextual parallelism—that is, by a sufficiently large number of independent communication ports and lines in the system, modeled as dynamic system N (t)—then there is an optimal match between the algorithm and the deployment platform. In order to evaluate the above impact we shall make use of the following “quality metrics”: Average slot utilization. This is the average number of used slots per time step in a given run. It will be indicated as µN , or simply as µ. µ can be interpreted as the average degree of parallelism expressed by the algorithm—hence it will be referred to also as the “algorithmic parallelism”. µ can take any real value in [0, N + 1]. 0, . . . , i − 1, i + 1, . . . , N , 0, . . . , i − 1, i + 1, . . . , N (1) i.e., in cycle notation [17], P = (0) . . . (i−1)(i+1) . . . (N ). This means that, once process i acquires the right to broadcast, it first sends its message to process 0 (possibly having to wait for it to become available), then it will do the same with process 1, and so forth up to process N , obviously skipping itself. This is shown in Table 1 for N = 5. In what follows we shall refer to tables such as Table 1 as to “run-tables.” In [7] it was shown how it is possible to characterize some properties of the quality metrics of the member corresponding to the identity permutation. Among such properties particularly useful here are the following two ones: • The algorithm makes use of O(N 2 ) time—more pre1 cisely, λN = 3 N 2 + 5 N + 2 ⌊N/2⌋. 4 4 • The asymptotic value of algorithmic parallelism, that 8 is limk→∞ µk , equals 3 . 2.3 Pipelined Permutation We now consider a second case—the one corresponding to permutation 0, . . . , i − 1, i + 1, . . . , N . i + 1, . . . , N, 0, . . . , i − 1 (2) Note how permutation (2) is equivalent to i cyclic logical left shifts of the identity permutation. When P is as in (2), then process i first sends its message to process i + 1, then to process i + 2, and so on until
  • 4. step id ↓→ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0 S1 S2 S3 S4 S5 R 1 R 2 R3 R4 R5 1 R0 S0 S2 S3 S4 S5 R 2 R3 R4 R5 2 R0 R 1 S0 S1 S3 S4 S5 R 3 R4 R5 3 R0 R1 R 2 S0 S1 S2 S4 S5 R4 R5 R0 R1 R2 R 3 S0 S1 S2 S3 S5 R5 4 5 R0 R1 R2 R3 R 4 S0 S1 S2 S3 S4 used → 2 2 2 2 2 2 2 4 2 2 2 2 4 4 2 2 4 2 2 2 2 2 2 2 2 2 Table 1. Run (N = 5) for P equal to the identity permutation. The step row represents time steps. Id’s identify processes. ν is the utilization string. In this case µ (that is, algorithmic parallelism) is about 2.3077 slots, and length λ = 26. Note that, if the slot is a used one, then entry (i, t) = Rj of this matrix is action i Rt j. it reaches process N . After that, i wraps around and sends from process 0 to process i − 1. This is shown in Table 2 for N = 8. As can be seen from that table, (2) maximally overlaps the processes’ broadcast sessions the same way as machine instructions are being overlapped in pipelined microprocessors [13]. This similarity brought to the name of “pipelined permutation” for (2) [7]. In [7] some of the quality metrics of the member corresponding to the pipelined permutation were also characterized. In particular it was shown that: • The algorithm makes use of O(N ) time, and more precisely λN = 3N. Figure 2. Hybrid gossiping: processes operate using a permutation selected from two or more classes. • Algorithmic parallelism linearly depends on the amount of involved processes: ∀k > 0 : µk = 2 3 (k + 1). 3 Tuning Algorithmic Parallelism through Hybrid Gossiping The two cases introduced in the previous section represent two “extremes” in the spectrum of possible permutation structures: the identity permutation and the pipelined permutation respectively translate in very low and very high algorithmic parallelism. These emerging behaviors characterize homogeneous gossiping—gossiping that is in which all processes make use of the same permutation. A useful property of our family of algorithms is that it also supports hybrid gossiping: in this case the gossiping processes make use of a permutation selected (with some predefined logic) from two or more classes, as depicted in Fig. 2. A noteworthy assignment logic is the one that schedules the pipelined permutation to a certain percentage of the processes and the identity permutation to the rest. By doing so we experimentally found that the ensuing algorithmic parallelism grows after the percentage of pipelined permutations assigned to the processes. In what follows we shall use symbol “HN ” (or where possible without ambiguity, “H”) to refer to such percentage. Figure 3 shows values of µ (algorithmic parallelism) for up to 50 participating processes when various percentages are used. 4 Autonomic System Evolution The ability to tune algorithmic parallelism paves the way to the definition of autonomic procedures to evolve the system. In general such evolutions take the form of a socalled “MAPE” adaptation loop [15], where MAPE stands for “Monitor-Analyze-Plan-Execute”. In the case at hand, Monitor signifies being able to estimate N (t), Analyze means checking whether µN matches the esti-
  • 5. step id ↓ → 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 0 S1 S2 S3 S4 S5 S6 S7 S8 R 1 R 2 R 3 R 4 R 5 R 6 R 7 R 8 1 R 0 S2 S3 S4 S5 S6 S7 S8 S0 R 2 R 3 R 4 R 5 R 6 R 7 R 8 2 R 0 R 1 S3 S4 S5 S6 S7 S8 S0 S1 R 3 R 4 R 5 R 6 R 7 R 8 3 R 0 R 1 R 2 S4 S5 S6 S7 S8 S0 S1 S2 R 4 R 5 R 6 R 7 R 8 R 0 R 1 R 2 R 3 S5 S6 S7 S8 S0 S1 S2 S3 R 5 R 6 R 7 R 8 4 5 R 0 R 1 R 2 R 3 R 4 S6 S7 S8 S0 S1 S2 S3 S4 R 6 R 7 R 8 R 0 R 1 R 2 R 3 R 4 R 5 S7 S8 S0 S1 S2 S3 S4 S5 R 7 R 8 6 7 R 0 R 1 R 2 R 3 R 4 R 5 R 6 S8 S0 S1 S2 S3 S4 S5 S6 R 8 8 R 0 R 1 R 2 R 3 R 4 R 5 R 6 R 7 S0 S1 S2 S3 S4 S5 S6 S7 ν → 2 2 4 4 6 6 8 8 8 8 8 8 8 8 8 8 8 8 6 6 4 4 2 2 Table 2. Run-table for N = 8 and the pipelined permutation. In this case algorithmic parallelism is 6 and length is 24. Efficiency (channel exploitation) is of 6 slots out of 9, that is 66.67%. mated value of N (t), Plan is a “meta-algorithm” (also known as “evolution engine” [6]) responsible for choosing how to evolve the system, Execute is the execution of the meta-algorithm and the corresponding evolution of the managed system. In what follows we assume the availability of a monitoring function called sense. A reflective system such as the one introduced in [5] or [8] could be used to provide transparent access to the number of currently available ports and lines—that is, N (t). The “Analyze” step is merely the assessment of how close the current value of HN is to the estimated value of N (t). The system would evolve only in case of two conditions: overshooting, that is a value of HN overabundant with respect to that of N (t), and undershooting—namely, a value of HN that would translate in a suboptimal exploitation of the available contextual parallelism. In case the system would indeed require adaptation, several meta-algorithms may be selected for the Planning step depending on e.g. the characteristic of the mission and the system assumptions: in fact complex planning is likely to call for non-negligible amounts of system resources, which could interfere e.g. with real-time requirements. A possible cost-effective solution for the meta-algorithm could then be to make use of look-up tables providing for several values of N the algorithmic parallelism corresponding to some sampling of HN . Figure 4 shows 200 samples of H200 , which could be computed off-line and stored in one such look-up table. Algorithm 2 could then be used for the “Execute” step. Alternatively, should performance penalties be deemed preferable to the memory penalty to store the look-up table, one could compute the curve best fitting the sampling of HN at run-time. 1 2 3 4 5 Algorithm 2: Tune algorithmic parallelism after contextual parallelism Input: N (t), N , look-up table MN ; Output: Hbest begin /* cp holds the current contextual parallelism */ /* Function now returns current time */ cp ← sense(N (now())) Hbest ← min{h : MN (h) ≥ cp} return Hbest end. Another possibility is for instance the one described in Algorithm 3. In this case we define MN as an associative map, that is, a growing set of domain-to-value associations that link known values of HN to corresponding known values of µN . A system such as the one described in [4] could implement such a map. The specific difference with respect to a look-up table lies in the dynamic nature of MN , as it is possible to add new associations to it at all times. It is assumed that MN is initialized at least with the associations corresponding to the identity and the pipelined permutations. The strategy followed in this case is to return a best match with the entries currently available in MN , and to add new entries to refine dichotomically the list. The current linear strategy may be replaced by a more efficient one designed after the non-linear nature of µ. Figure 5 graphically depicts the working of Algorithm 3 under the following conditions: N = 200; M200 initially includes only the identity and pipelined permutations; N (t) = 13 for all values of t. At the eighth iteration |M200 | = 9 and the selected best value for µ is 13.11.
  • 6. 35 Identity Hybrid, 50% Hybrid, 75% Hybrid, 87.5% Hybrid, 95% Hybrid, 98.7% Pipelined Algorithmic parallelism 30 25 20 ◦ • • •• •• • • •• • •• ◦ ◦◦ •• ◦◦ • • •• ◦◦ •• ◦ ◦◦◦ • •• ◦◦ •• ◦◦ ◦ • ◦◦◦ •• ◦◦ ◦◦ •• ◦ •• ◦◦ •• ◦◦◦◦ 2 ◦ •• 2222222222 22 •• ◦◦◦◦ 222222222 • 2 22 • • ◦ ◦ ◦ ◦2 2222 22 ∗ ∗∗ ∗∗∗∗∗ ◦ • • ◦22222∗222∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ •2◦2∗ ∗ ∗ ∗ ∗ ∗ ∗ ∗ • ◦∗ ▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽ • •22▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽▽ ◦ ◦ ◦ ∗2∗ ∗∗ ◦ ◦ ∗2 ∗∗ +++++++++++++++++++++++++++++++++++++++++++++++++ ▽▽▽▽ ••◦ 222∗▽▽ 15 10 5 0 + ▽ ∗ 2 0 5 10 15 20 25 30 participants 35 40 45 50 Figure 3. Hybrid gossiping produces different amounts of algorithmic parallelism depending on the scheduling distribution of the pipelined and identity permutations. 1 2 3 4 5 6 7 8 9 10 5 Algorithm 3: Tune algorithmic parallelism after contextual parallelism Input: N (t), N , associative map MN ; Output: Hbest begin cp ← sense(N (now())) Hbest ← min{h : MN (h) ≥ cp} if MN (Hbest ) = cp then return Hbest fi /* MN (Hbest ) > cp */ sb ← max{h : MN (h) < MN (Hbest )} Hbest ← (MN (Hbest ) − MN (sb))/2 /* computeµ simulates a run */ /* and computes the corresponding µ */ µ ← computeµ (Hbest ) MN ← MN ∪ {Hbest → µ} return Hbest end. State of the Art In this section we briefly report on methods and strategies to tune the characteristics of a software system so as to achieve high performance e.g. through the expression and exploitation of algorithmic parallelism. Concerns such as this normally are not localized in a single physical module (e.g. a function) or logical component (e.g., a formal parameter, as it is the case for our gossiping algorithms); on the contrary, they often span through several modules and require the joint evolution of multiple correlated variables. In other words, the expression of parallelism is a typical cross-cutting concern. A typical way to tackle such concerns is through the usage of Aspect Oriented Programming (AOP) [16]. In AOP the source core consists of two separate “blocks”: the functional code dealing with the business logic and the aspect code to express one or more cross-cutting concerns. The actual source code is the result of a merging process called weaving where the functional code is rearranged, instrumented, and patched, according to what prescribed in the aspect code. This allows software systems to be effectively evolved so as to maximize one or more target concerns—including e.g. the expression of algorithmic parallelism [18]. Widely used in industry and academia, AOP proved in many cases to be able to manage effectively the complexity of software evolution. The general problem of guaranteeing the emergence of certain expected features or behaviors in a system— software or otherwise—was termed by Jen [14] as “robust evolvability”. In the cited paper the author defines evolvability as an entity’s ability to “alter their structure or function so as to adapt to changing circumstances” and discusses a system’s capability to retain certain characteristics of interests (e.g. maximizing algorithmic parallelism) despite changes in its composition and deployment environment. Such capability is called by Jen as robustness: feature persistence under specified and unforeseen perturbations, obtained by switching among multiple strategic options such
  • 7. 140 × 120 × Algorithmic parallelism 100 × 80 × 60 × × × × × × × × × × × × × × × 20 × × × ×× ×× ×× ×× ×× × × ×× ×× ×× × ×× × ×××× × × ×× × ×× ××× × ×× ××× × × × ×× × ×××× ×× ×× ××××× × × ×× ×× ×× ××××× × × × × × × ×× × × × × × × ×××× ×× ×× ×× × × × × ××××××× ×× ×× ×× ××× ×× ×× ×× ×× ×× × ×× ××× ×× ×× ×× ××× ×× ×× ×× ×× × × ×× ××× ×× ×× ×× ××× ×× ×× ×× ×× × × × 0 40 0 20 40 60 80 100 120 140 160 180 200 H200 × 2 Figure 4. Algorithmic parallelism when H200 varies from 0.5% to 100% with step 0.5%. that those changes are dynamically tolerated or even exploited. Interestingly enough, Jen distinguishes two classes of evolvable systems. • Phenotypically plastic systems. Such systems retain their structure and organization throughout adaptations and only achieve evolution by switching among a few, preordained, structurally equivalent configurations that depend on some internal parameter. Obviously this is the case for our gossiping algorithms. • Phenotypically dynamic systems programming system, which are able to assume different structures and organizations by mutating the topology, the role, and the number of their components. An example of this is given by AOP systems. A deeper discussion and some examples of systems matching the above classes may be found e.g. in [6]. We believe as worth mentioning here the case of FFTW, an evolvable software system that tunes its logics so as to maximize performance on a given target platform. FFTW (whose name stands for “Fastest Fourier Transform in the West”) is a code generator for Fast Fourier Transforms that defines and assembles blocks of C code that optimally solve FFT sub-problems on a given machine [10]. Finally we observe how nowadays it is common practice designing software for families of target platforms, which selectively enable or disable target-specific optimizations. One such software is the mplayer video player [1], which explicitly states such optimizations with messages such as “Using optimized IMDCT transform” or “Using MMX optimized resampler.” The same software also permits to in- struct the use of a number of threads that matches optimally the amount of parallelism available on a multi-core target machine. 6 Conclusions We presented the properties of a family of algorithms which retain their structural characteristics though vary their operation depending on a combinatorial parameter. We showed how such “phenotypically plastic” system [14, 6] may be used to meet various changing requirements by tuning dynamically the amount of algorithmic parallelism manifested by the software. This paves the way to enabling robust control on the emergence of several properties and behaviors, e.g. collision avoidance, deterministic upper bounds on energy consumption, and optimal use of the available communication resources. Finally we showed how several evolution engines may be adopted to achieve autonomic context-aware selection of members that best match the current contextual conditions. References [1] Anonymous. Mplayer—the movie player. Retrieved on August 7, 2011 from www.mplayerhq.hu/design7/info.html. [2] J.-C. Bermond et al. Fast gossiping by short messages. SIAM J. Comput., 27:917–941, 1998. [3] J. Buys, V. De Florio, and C. Blondia. Towards contextaware adaptive fault tolerance in SOA applications. In Proc. of the 5th ACM International Conference on Distributed Event-Based Systems (DEBS), pages 63–74. ACM, 2011.
  • 8. 1000 8 Algorithmic parallelism 7 6 5 4 3 2 1 N= 13 100 10 1 1 10 H 100 Figure 5. A graphical representation of Algorithm 3 when N = 200 and ∀t : N (t) = 13. Logarithmic scales are used. [4] V. De Florio. Array associativi, linguaggio C e programmazione CGI. DEV., (27), February 1996. (In Italian). [5] V. De Florio. Software assumptions failure tolerance: Role, strategies, and visions. In A. Casimiro, R. de Lemos, and C. Gacek, eds.: Architecting Dependable Systems VII, volume 6420 of LNCS. Springer, 2010. [6] V. De Florio. Robust-and-evolvable resilient software systems — open problems and lessons learned. In Proc. of the ESEC/FSE 2011 Workshop on Assurances for Self-Adaptive Systems (ASAS 2011), Szeged, Hungary, Sept. 2011. [7] V. De Florio and C. Blondia. The algorithm of pipelined gossiping. Journal of Systems Architecture, 52(4):235–256, 2006. [8] V. De Florio and C. Blondia. Reflective and refractive variables: A model for effective and maintainable adaptive-anddependable software. In Proc. of the 33rd Euromicro Conf. on Software Engineering and Advanced Applications (SEEA 2007), L¨ beck, Germany, August 2007. IEEE. u [9] V. De Florio, G. Deconinck and R. Lauwereins. Software tool combining fault masking with user-defined recovery strategies. IEE Proceedings – Software, 145(6):203–211, Dec. 1998. IEE in association with the British Computer Society. [10] M. Frigo. A fast fourier transform compiler. SIGPLAN Not., 39(4):642–655, 2004. [11] T. F. Gonzales. An efficient algorithm for gossiping in the multicasting communication environment. IEEE Transactions on Parallel and Distributed Systems, 14(7), July 2003. [12] S. Hedetniemi, S. Hedetniemi, and A. Leistman. A survey of gossiping and broadcasting in communication networks. Networks, 18:419–435, 1988. [13] J. L. Hennessy and D. A. Patterson. Computer Architecture, Fourth Edition: A Quantitative Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2006. [14] E. Jen. Stable or robust? what’s the difference? In E. Jen, editor, Robust Design: a repertoire of biological, ecological, and engineering case studies, SFI Studies in the Sciences of Complexity, pages 7–20. Oxford University Press, 2004. [15] J. O. Kephart and D. M. Chess. The vision of autonomic computing. Computer, 36:41–50, January 2003. [16] G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Videira Lopes, J.M. Loingtier and J. Irwin. Aspectoriented programming. In Proc. of the European Conf. on Object-Oriented Programming (ECOOP), volume 1241 of LNCS, Finland, June 1997. [17] D. E. Knuth. The Art of Computer Programming, Volume 1 (Fundamental Algorithms). Addison-Wesley, Reading MA, 2nd edition, 1973. [18] S. Subotic and J. Bishop. Emergent behaviour of aspects in high performance and distributed computing. In Proc. of the 2005 annual conf. on IT research in developing countries, SAICSIT ’05, pages 11–19, Republic of South Africa, 2005.