Hwajung Lee ITEC452 Distributed Computing Lecture 8 Representing Distributed Algorithms.

Slides:



Advertisements
Similar presentations
Modeling issues Book: chapters 4.12, 5.4, 8.4, 10.1.
Advertisements

Problems and Their Classes
Global States.
Partial Order Reduction: Main Idea
Models of Concurrency Manna, Pnueli.
CS3771 Today: deadlock detection and election algorithms  Previous class Event ordering in distributed systems Various approaches for Mutual Exclusion.
Program correctness The State-transition model A global state S  s 0 x s 1 x … x s m {s k = local state of process k} S0  S1  S2  … Each state transition.
Ch. 7 Process Synchronization (1/2) I Background F Producer - Consumer process :  Compiler, Assembler, Loader, · · · · · · F Bounded buffer.
Timed Automata.
Mutual Exclusion.
The Theory of NP-Completeness
Outline. Theorem For the two processor network, Bit C(Leader) = Bit C(MaxF) = 2[log 2 ((M + 2)/3.5)] and Bit C t (Leader) = Bit C t (MaxF) = 2[log 2 ((M.
Spin Tutorial (some verification options). Assertion is always executable and has no other effect on the state of the system than to change the local.
Database Replication techniques: a Three Parameter Classification Authors : Database Replication techniques: a Three Parameter Classification Authors :
Chapter 11: Distributed Processing Parallel programming Principles of parallel programming languages Concurrent execution –Programming constructs –Guarded.
Concurrency in Distributed Systems: Mutual exclusion.
Prof. Fateman CS 164 Lecture 221 Global Optimization Lecture 22.
Representing distributed algorithms Why do we need these? Don’t we already know a lot about programming? Well, you need to capture the notions of atomicity,
1 The Theory of NP-Completeness 2012/11/6 P: the class of problems which can be solved by a deterministic polynomial algorithm. NP : the class of decision.
The Complexity of Distributed Algorithms. Common measures Space complexity How much space is needed per process to run an algorithm? (measured in terms.
1 The Theory of NP-Completeness 2 Cook ’ s Theorem (1971) Prof. Cook Toronto U. Receiving Turing Award (1982) Discussing difficult problems: worst case.
Program correctness The State-transition model The set of global states = so x s1 x … x sm {sk is the set of local states of process k} S0 ---> S1 --->
Program correctness The State-transition model A global states S  s 0 x s 1 x … x s m {s k = set of local states of process k} S0  S1  S2  Each state.
Hwajung Lee. The State-transition model The set of global states = s 0 x s 1 x … x s m {s k is the set of local states of process k} S0  S1  S2  Each.
Hwajung Lee. The State-transition model The set of global states = s 0 x s 1 x … x s m {s k is the set of local states of process k} S0  S1  S2  Each.
Hwajung Lee. Well, you need to capture the notions of atomicity, non-determinism, fairness etc. These concepts are not built into languages like JAVA,
Hwajung Lee. Why do we need these? Don’t we already know a lot about programming? Well, you need to capture the notions of atomicity, non-determinism,
1 Fault tolerance in distributed systems n Motivation n robust and stabilizing algorithms n failure models n robust algorithms u decision problems u impossibility.
Program Correctness. The designer of a distributed system has the responsibility of certifying the correctness of the system before users start using.
Presented by: Belgi Amir Seminar in Distributed Algorithms Designing correct concurrent algorithms Spring 2013.
1 Chapter 11 Global Properties (Distributed Termination)
Agenda  Quick Review  Finish Introduction  Java Threads.
Semaphores Chapter 6. Semaphores are a simple, but successful and widely used, construct.
Introduction to distributed systems description relation to practice variables and communication primitives instructions states, actions and programs synchrony.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Sept COMP60611 Fundamentals of Parallel and Distributed Systems Lecture 8 Introduction to Modelling Concurrency John Gurd, Graham Riley Centre for.
Chapter 10 NP-Complete Problems.
Model and complexity Many measures Space complexity Time complexity
When Is Agreement Possible
G.Anuradha Reference: William Stallings
Memory Consistency Models
Formal verification in SPIN
Memory Consistency Models
Ivy Eva Wu.
Alternating Bit Protocol
ICS 353: Design and Analysis of Algorithms
Atomicity, Non-determinism, Fairness
Chapter 26 Concurrency and Thread
ITEC452 Distributed Computing Lecture 5 Program Correctness
ITEC452 Distributed Computing Lecture 7 Mutual Exclusion
Mutual Exclusion CS p0 CS p1 p2 CS CS p3.
NP-Complete Problems.
Semaphores Chapter 6.
Distributed Transactions
Abstraction.
Exercises for Chapter 14: Distributed Transactions
Physical clock synchronization
CSE 451: Operating Systems Autumn 2003 Lecture 7 Synchronization
CSE 451: Operating Systems Autumn 2005 Lecture 7 Synchronization
ITEC452 Distributed Computing Lecture 7 Mutual Exclusion
CS333 Intro to Operating Systems
Lecture 24: Multiprocessors
CIS 720 Lecture 5.
COMP60621 Designing for Parallelism
ITEC452 Distributed Computing Lecture 8 Distributed Snapshot
Foundations and Definitions
Lecture: Coherence and Synchronization
Lecture 18: Coherence and Synchronization
CIS 720 Lecture 5.
Presentation transcript:

Hwajung Lee ITEC452 Distributed Computing Lecture 8 Representing Distributed Algorithms

Representing distributed algorithms Why do we need these? Don’t we already know a lot about programming? Well, you need to capture the notions of atomicity, non-determinism, fairness etc. These concepts are not built into languages like JAVA, C++ etc!

Syntax & semantics Structure of a program In the opening line program <name>; To define variables and constants define <variable name>: <variable type>; (ex 1) define n: message; (ex 2) type message = record a: integer b: integer c: boolean end define m: message

Syntax & semantics To assign an initial value to a variable Initially <variable> = <initial value>; (ex) initially x = 0; A simple assignment <variable> := <expression> (ex) x := E A compound assignment <variable 1>[,<variable n>] := <expression 1>[,<expression n>] (ex) x, y := m.a, 2 It is equivalent to x := m.a and y := 2

Syntax & semantics Example (We will revisit this program later.) program uncertain; define x : integer; initially x = 0; do x < 4  x := x + 1  x = 3  x := 0 od

Syntax & semantics Guarded Action: Conditional Statement <guard G>  <action A> is equivalent to if G then A Not: ¬

Syntax & semantics Sequential actions S0; S1; S2; . . . ; Sn Alternative constructs if . . . . . . . . . . fi Repetitive constructs do . . . . . . . . . od The specification is useful for representing abstract algorithms, not executable codes.

Syntax & semantics Alternative construct if G1  S1  G2  S2 …  Gn  Sn fi When no guard is true, skip (do nothing). When multiple guards are true, the choice of the action to be executed is completely arbitrary.

Syntax & semantics do G1  S1  G2  S2 .  Gn  Sn od Repetitive construct do G1  S1  G2  S2 .  Gn  Sn od Keep executing the actions until all guards are false and the program terminates. When multiple guards are true, the choice of the action is arbitrary.

Example: graph coloring There are four processes. The system has to reach a configuration in which no two neighboring processes have the same color. 1 {program for process i} do j  neighbor(i): c(j) = c(i)  c(i) := 1-c(i) od 1 Optimal coloring Vertex coloring in the general case is an NP-Complete problem. Instead of asking for the smallest number of colors needed to color the graph, we can ask easier questions of the form "Can we color the graph with at most k colors?" The case k = 2 is equivalent to determining whether or not the graph is bipartite. This can be accomplished in polynomial time. For k >= 3 the problem is NP-Complete. By the gap theorem, this implies that the problem can not be approximated by a polynomial algorithm within a factor of 4/3 unless P=NP. One consequence of the Strong Perfect Graph Theorem of Chudnovsky, Robertson, Seymour, and Thomas is that it is possible to determine the chromatic number of a perfect graph in polynomial time. [edit] Existing algorithms The coloring algorithms can be divided into two categories: - The optimal coloring algorithms (for example the algorithm of , the method of branch and bound, etc.). - The algorithms that do not ensure a result with the smallest possible number of colors. Here we can find the sequential algorithms (those that color one vertex at a time), , global randomized algorithms, metaheuristic algorithms (using simulated annealing, tabu search, etc.), and genetic algorithms, to name several types. Will the above computation terminate?

Consider another example program uncertain; define x : integer; initially x = 0 do x < 4  x := x + 1  x = 3  x := 0 od Question. Will the program terminate? Our goal here is to understand fairness A Major issue in a distributed computation is global termination A Major issue in a distributed computation is global termination (1) the execution of the program for each process has terminated, and (2) for message passing systems, there is no message in transit along any of the channels.

The adversary A distributed computation can be viewed as a game between the system and an adversary. The adversary may come up with feasible schedules to challenge the system and cause “bad things”. A correct algorithm must be able to prevent those bad things from happening.

Deterministic Computation vs. Nondeterministic Computation The behaviors remains the same during every run of the program Nondeterministic Computation The behaviors of a program may be different during different runs since the scheduler may choose other alternative actions.

Non-determinism  ¬ empty (c1)  send ACK along c1  … define x: array [0..k-1] of boolean initially all channels are empty do ¬ empty (c0)  send ACK along c0  ¬ empty (c1)  send ACK along c1  …  ¬ empty (ck-1)  send ACK along ck-1 od For example, if all three requests are sent simultaneously, client 2 or 3 may never get the token with a deterministic scheduler! The outcome could have been different if the server makes a non-deterministic choice Is it fair? A system that is proven correct with nondeterministic choice is guaranteed to behave correctly under a deterministic scheduler. Non-determinism is abundant in the real world. Examples?

Examples of non-determinism Non-determinism is abundant in the real world. If there are multiple processes ready to execute actions, who will execute the action first is nondeterministic. If message propagation delays are arbitrary, the order of message reception is non-deterministic Determinism has a specific order and is a special case of non-determinism.

Atomicity (or granularity) (1) Atomic = all or nothing Atomic actions = indivisible actions do red message  x:= 0 {red action}  blue message  x:=7 {blue action} od Regardless of how nondeterminism is handled, we would expect that the value of x will be an arbitrary sequence of 0 and 7. Right or wrong? x

Atomicity (2) [Q] Assignment? do red message  x:= 0 {red action}  blue message  x:=7 {blue action} od Let x be a 3-bit integer x2 x1 x0, so x:=7 means x2:=1, x1:= 1, x2:=1, and x:=0 means x2:=0, x1:= 0, x2:=0 If the assignment is not atomic, then many Interleavings are possible, leading to any possible values of x x So, the answer may depend on atomicity

Atomicity (4) [Q] Critical Section Code? Unless stated, we will assume that G  A is an “atomic operation.” Does it make a difference if it is not so? Transactions are atomic by definition (in spite of process failures). Also, critical section codes are atomic. Can the other process B read the state of the process A while the process A is executing the if statement? if x ≠ y  x:= ¬ x fi x Can the other process B read the state of the process A while the process A is executing the if statement? grain of atomicity. Read-write atomicity in a fine-grain atomicity: only one read or write at a time Coarse-grain atomicity model: all the read can be done in a single step, but not write In many shared-memory multiprocessors, special atomic instruction like test-and-set or compare-and-swap lock the memory bus (or switch) for two consecutive memory cycles, enabling the program to perform an indivisible read-modify-write operation. If G A is not an atomic operation: The example shows that, even if the two processes does not execute the statement parallelly, x ends up become not equal to y. y if x ≠ y  y:= ¬ y fi

Fairness Defines the choices or restrictions on the scheduling of actions. No such restriction implies an unfair scheduler. For fair schedulers, the following types of fairness have received attention: Unconditional fairness Weak fairness Strong fairness Fairness is a property of a scheduler. Scheduler / demon / adversary

Fairness Program test define x : integer {initial value unknown} do true  x : = 0  x = 0  x : = 1  x = 1  x : = 2 od An unfair scheduler may never schedule the second (or the third actions). So, x may always be equal to zero. An unconditionally fair scheduler will eventually give every statement a chance to execute without checking their eligibility. (Example: process scheduler in a multiprogrammed OS.)

Weak fairness Program test define x : integer {initial value unknown} do true  x : = 0  x = 0  x : = 1  x = 1  x : = 2 od A scheduler is weakly fair, when it eventually executes every guarded action whose guard becomes true, and remains true thereafter A weakly fair scheduler will eventually execute the second action, but may never execute the third action. Why?

Strong fairness Program test define x : integer {initial value unknown} do true  x : = 0  x = 0  x : = 1  x = 1  x : = 2 od A scheduler is strongly fair, when it eventually executes every guarded action whose guard is true infinitely often. The third statement will be executed under a strongly fair scheduler. Why?

Central vs. Distributed Scheduler Since each individual process has a local scheduler, it leaves the scheduling decision to these individual schedulers, without attempting any kind of global coordination. Central Scheduler or Serial Scheduler It based on the interleaving of actions. It assumes that an invisible demon finds out all the guards that are enabled, arbitrarily picks any one of these guards, schedules the corresponding actions, and waits for the completion of this action before re-evaluating the guards.

Central vs. Distributed Scheduler Example Goal: To make x[i+1 mod 2] = x[i] {in all the processors i} do  x[i+1 mod 2] ≠ x[i]  x [i] := ¬ x[i] od Will this program terminate? using distributed scheduler using central scheduler

Simulation of a Distributed scheduling model Example Let y[k,i] denotes the local copy of the state x[k] of process k as maintained by a neighboring process i. To evaluate the guard by process i process i copies the state of each neighbor k, that is, y[k,i] := x[k] Each process evaluates its guard(s) using the local copies of its neighbors’ state and decides if an action will be scheduled. The number of steps allowed to copy the neighbors’ states will depend on the grain of atomicity. Read-write atomicity in a fine-grain atomicity: only one read at a time Coarse-grain atomicity model: all the read can be done in a single step

Advantage & Disadvantage of Central scheduling Relatively easy of correctness proof Disadvantage Poor parallelism and poor scalability  To avoid a serious problem, a correctness proof of the designed scheduler (scheduling algorithm) is very important.

Correctness proof (1) Example No System function correctly with distributed schedulers unless it functions correctly under a central scheduler. In restricted cases, correct behavior with a central scheduler guarantees correct behavior with a distributed scheduler. Theorem 4.1 If a distributed system works correctly with a central scheduler and no enabled guard of a process is disabled by the actions of their neighbors, the system is also correct with a distributed scheduler.

Correctness proof (2) Example Proof. Assume that i and j are neighboring processes. Consider the following four events: (1) the evaluation of Gi as true; (2) the execution of Si; (3) the evaluation of Gj as true; and (4) the execution of Sj. Distributed schedulers allow the following schedules: Case 1: (1)(2)(3)(4) Case 2: (1)(3)(4)(2) Case 3: (1)(3)(2)(4) Since the case 2 and the case 3 can be reduced to the case 1 and the case 1 corresponds to that of a central schedule. Thus, the theorem is proven.