Chapter 1: Introduction Ajay Kshemkalyani and Mukesh Singhal - - PowerPoint PPT Presentation

chapter 1 introduction
SMART_READER_LITE
LIVE PREVIEW

Chapter 1: Introduction Ajay Kshemkalyani and Mukesh Singhal - - PowerPoint PPT Presentation

Chapter 1: Introduction Ajay Kshemkalyani and Mukesh Singhal Distributed Computing: Principles, Algorithms, and Systems Cambridge University Press A. Kshemkalyani and M. Singhal (Distributed Computing) Introduction CUP 2008 1 / 36


slide-1
SLIDE 1

Chapter 1: Introduction

Ajay Kshemkalyani and Mukesh Singhal

Distributed Computing: Principles, Algorithms, and Systems

Cambridge University Press

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 1 / 36

slide-2
SLIDE 2

Distributed Computing: Principles, Algorithms, and Systems

Definition

Autonomous processors communicating over a communication network Some characteristics

◮ No common physical clock ◮ No shared memory ◮ Geographical seperation ◮ Autonomy and heterogeneity

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 2 / 36

slide-3
SLIDE 3

Distributed Computing: Principles, Algorithms, and Systems

Distributed System Model

M memory bank(s)

P P P P P P P M M M M M M M Communication network (WAN/ LAN)

P processor(s) Figure 1.1: A distributed system connects processors by a communication network.

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 3 / 36

slide-4
SLIDE 4

Distributed Computing: Principles, Algorithms, and Systems

Relation between Software Components

protocols

Operating system Distributed software Network protocol stack

Transport layer Data link layer Application layer

(middleware libraries)

Network layer

Distributed application

Extent of distributed

Figure 1.2: Interaction of the software components at each process.

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 4 / 36

slide-5
SLIDE 5

Distributed Computing: Principles, Algorithms, and Systems

Motivation for Distributed System

Inherently distributed computation Resource sharing Access to remote resources Increased performance/cost ratio Reliability

◮ availability, integrity, fault-tolerance

Scalability Modularity and incremental expandability

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 5 / 36

slide-6
SLIDE 6

Distributed Computing: Principles, Algorithms, and Systems

Parallel Systems

Multiprocessor systems (direct access to shared memory, UMA model)

◮ Interconnection network - bus, multi-stage sweitch ◮ E.g., Omega, Butterfly, Clos, Shuffle-exchange networks ◮ Interconnection generation function, routing function

Multicomputer parallel systems (no direct access to shared memory, NUMA model)

◮ bus, ring, mesh (w w/o wraparound), hypercube topologies ◮ E.g., NYU Ultracomputer, CM* Conneciton Machine, IBM Blue gene

Array processors (colocated, tightly coupled, common system clock)

◮ Niche market, e.g., DSP applications

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 6 / 36

slide-7
SLIDE 7

Distributed Computing: Principles, Algorithms, and Systems

UMA vs. NUMA Models

M memory

M P P P P P P M M M M M

M M M M P P P P

Interconnection network Interconnection network (a) (b)

P processor

Figure 1.3: Two standard architectures for parallel systems. (a) Uniform memory access (UMA) multiprocessor system. (b) Non-uniform memory access (NUMA)

  • multiprocessor. In both architectures, the processors may locally cache data from

memory.

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 7 / 36

slide-8
SLIDE 8

Distributed Computing: Principles, Algorithms, and Systems

Omega, Butterfly Interconnects

3−stage Butterfly network 101 110 111 100 111 110 100 011 010 000 001 P0 P1 P2 P3 P4 P6 P7 101 P5 000 001 M0 M1 010 011 100 101 110 111 M2 M3 M4 M5 M6 M7 000 001 010 011 M0 M1 M2 M3 M4 M5 M6 M7 110 111 011 010 000 001 100 101 P0 P1 P2 P3 P4 P5 P6 P7 (a) 3−stage Omega network (n=8, M=4) (b) (n=8, M=4)

Figure 1.4: Interconnection networks for shared memory multiprocessor systems. (a) Omega network (b) Butterfly network.

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 8 / 36

slide-9
SLIDE 9

Distributed Computing: Principles, Algorithms, and Systems

Omega Network

n processors, n memory banks log n stages: with n/2 switches of size 2x2 in each stage Interconnection function: Output i of a stage connected to input j of next stage: j =

  • 2i

for 0 ≤ i ≤ n/2 − 1 2i + 1 − n for n/2 ≤ i ≤ n − 1 Routing function: in any stage s at any switch: to route to dest. j, if s + 1th MSB of j = 0 then route on upper wire else [s + 1th MSB of j = 1] then route on lower wire

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 9 / 36

slide-10
SLIDE 10

Distributed Computing: Principles, Algorithms, and Systems

Interconnection Topologies for Multiprocesors

1101 0110 0100 0000 0001 0010 0111 0011 0101

(b) (a) processor + memory

1100 1000 1110 1010 1111 1011 1001

Figure 1.5: (a) 2-D Mesh with wraparound (a.k.a. torus) (b) 3-D hypercube

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 10 / 36

slide-11
SLIDE 11

Distributed Computing: Principles, Algorithms, and Systems

Flynn’s Taxonomy

(c) MISD

D D D I I I I I I I I I

C C C C P P P P P

D D

P C C

I instruction stream D

P Control Unit Processing Unit data stream (a) SIMD (b) MIMD

Figure 1.6: SIMD, MISD, and MIMD modes. SISD: Single Instruction Stream Single Data Stream (traditional) SIMD: Single Instruction Stream Multiple Data Stream

◮ scientific applicaitons, applications on large arrays ◮ vector processors, systolic arrays, Pentium/SSE, DSP chips

MISD: Multiple Instruciton Stream Single Data Stream

◮ E.g., visualization

MIMD: Multiple Instruction Stream Multiple Data Stream

◮ distributed systems, vast majority of parallel systems

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 11 / 36

slide-12
SLIDE 12

Distributed Computing: Principles, Algorithms, and Systems

Terminology

Coupling

◮ Interdependency/binding among modules, whether hardware or software (e.g.,

OS, middleware)

Parallelism: T(1)/T(n).

◮ Function of program and system

Concurrency of a program

◮ Measures productive CPU time vs. waiting for synchronization operations

Granularity of a program

◮ Amt. of computation vs. amt. of communication ◮ Fine-grained program suited for tightly-coupled system

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 12 / 36

slide-13
SLIDE 13

Distributed Computing: Principles, Algorithms, and Systems

Message-passing vs. Shared Memory

Emulating MP over SM:

◮ Partition shared address space ◮ Send/Receive emulated by writing/reading from special mailbox per pair of

processes

Emulating SM over MP:

◮ Model each shared object as a process ◮ Write to shared object emulated by sending message to owner process for the

  • bject

◮ Read from shared object emulated by sending query to owner of shared object

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 13 / 36

slide-14
SLIDE 14

Distributed Computing: Principles, Algorithms, and Systems

Classification of Primitives (1)

Synchronous (send/receive)

◮ Handshake between sender and receiver ◮ Send completes when Receive completes ◮ Receive completes when data copied into buffer

Asynchronous (send)

◮ Control returns to process when data copied out of user-specified buffer

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 14 / 36

slide-15
SLIDE 15

Distributed Computing: Principles, Algorithms, and Systems

Classification of Primitives (2)

Blocking (send/receive)

◮ Control returns to invoking process after processing of primitive (whether sync

  • r async) completes

Nonblocking (send/receive)

◮ Control returns to process immediately after invocation ◮ Send: even before data copied out of user buffer ◮ Receive: even before data may have arrived from sender

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 15 / 36

slide-16
SLIDE 16

Distributed Computing: Principles, Algorithms, and Systems

Non-blocking Primitive

Send(X, destination, handlek) //handlek is a return parameter ... ... Wait(handle1, handle2, . . . , handlek, . . . , handlem) //Wait always blocks

Figure 1.7: A nonblocking send primitive. When the Wait call returns, at least

  • ne of its parameters is posted.

Return parameter returns a system-generated handle

◮ Use later to check for status of completion of call ◮ Keep checking (loop or periodically) if handle has been posted ◮ Issue Wait(handle1, handle2, . . .) call with list of handles ◮ Wait call blocks until one of the stipulated handles is posted

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 16 / 36

slide-17
SLIDE 17

Distributed Computing: Principles, Algorithms, and Systems

Blocking/nonblocking; Synchronous/asynchronous; send/receive primities

S

Send

The completion of the previously initiated nonblocking operation duration in which the process issuing send or receive primitive is blocked primitive issued primitive issued

Receive Send

(c) blocking async. Send (d) nonblocking async. Send

S W R_C P, S_C R_C P,

(b) nonblocking sync. Send, nonblocking Receive (a) blocking sync. Send, blocking Receive

P, S_C P R R_C S_C

processing for completes

Receive

Process may issue to check completion of nonblocking operation

Wait

duration to copy data from or to user buffer processing for completes

S S_C

process i buffer_i kernel_i process j buffer_j kernel_j

S W W W W R R

process i buffer_i kernel_i

S S_C W W

Figure 1.8:Illustration of 4 send and 2 receive primitives

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 17 / 36

slide-18
SLIDE 18

Distributed Computing: Principles, Algorithms, and Systems

Asynchronous Executions; Mesage-passing System

internal event send event receive event P P P P 1 2 3

m4 m1 m7 m3 m5 m6 m2

Figure 1.9: Asynchronous execution in a message-passing system

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 18 / 36

slide-19
SLIDE 19

Distributed Computing: Principles, Algorithms, and Systems

Synchronous Executions: Message-passing System

round 3

P P P P 3 2 1

round 1 round 2

Figure 1.10: Synchronous execution in a message-passing system In any round/step/phase: (send | internal)∗(receive | internal)∗

(1) Sync Execution(int k, n) //k rounds, n processes. (2) for r = 1 to k do (3) proc i sends msg to (i + 1) mod n and (i − 1) mod n; (4) each proc i receives msg from (i + 1) mod n and (i − 1) mod n; (5) compute app-specific function on received values.

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 19 / 36

slide-20
SLIDE 20

Distributed Computing: Principles, Algorithms, and Systems

Synchronous vs. Asynchronous Executions (1)

Sync vs async processors; Sync vs async primitives Sync vs async executions Async execution

◮ No processor synchrony, no bound on drift rate of clocks ◮ Message delays finite but unbounded ◮ No bound on time for a step at a process

Sync execution

◮ Processors are synchronized; clock drift rate bounded ◮ Message delivery occurs in one logical step/round ◮ Known upper bound on time to execute a step at a process

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 20 / 36

slide-21
SLIDE 21

Distributed Computing: Principles, Algorithms, and Systems

Synchronous vs. Asynchronous Executions (2)

Difficult to build a truly synchronous system; can simulate this abstraction Virtual synchrony:

◮ async execution, processes synchronize as per application requirement; ◮ execute in rounds/steps

Emulations:

◮ Async program on sync system: trivial (A is special case of S) ◮ Sync program on async system: tool called synchronizer

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 21 / 36

slide-22
SLIDE 22

Distributed Computing: Principles, Algorithms, and Systems

System Emulations

S−>A Asynchronous message−passing (AMP) Synchronous shared memory (ASM) Asynchronous Synchronous shared memory (SSM) message−passing (SMP) SM−>MP MP−>SM SM−>MP MP−>SM A−>S S−>A A−>S

Figure 1.11: Sync ↔ async, and shared memory ↔ msg-passing emulations Assumption: failure-free system System A emulated by system B:

◮ If not solvable in B, not solvable in A ◮ If solvable in A, solvable in B

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 22 / 36

slide-23
SLIDE 23

Distributed Computing: Principles, Algorithms, and Systems

Challenges: System Perspective (1)

Communication mechanisms: E.g., Remote Procedure Call (RPC), remote

  • bject invocation (ROI), message-oriented vs. stream-oriented

communication Processes: Code migration, process/thread management at clients and servers, design of software and mobile agents Naming: Easy to use identifiers needed to locate resources and processes transparently and scalably Synchronization Data storage and access

◮ Schemes for data storage, search, and lookup should be fast and scalable

across network

◮ Revisit file system design

Consistency and replication

◮ Replication for fast access, scalability, avoid bottlenecks ◮ Require consistency management among replicas

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 23 / 36

slide-24
SLIDE 24

Distributed Computing: Principles, Algorithms, and Systems

Challenges: System Perspective (2)

Fault-tolerance: correct and efficient operation despite link, node, process failures Distributed systems security

◮ Secure channels, access control, key management (key generation and key

distribution), authorization, secure group management

Scalability and modularity of algorithms, data, services Some experimental systems: Globe, Globus, Grid

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 24 / 36

slide-25
SLIDE 25

Distributed Computing: Principles, Algorithms, and Systems

Challenges: System Perspective (3)

API for communications, services: ease of use Transparency: hiding implementation policies from user

◮ Access: hide differences in data rep across systems, provide uniform operations

to access resources

◮ Location: locations of resources are transparent ◮ Migration: relocate resources without renaming ◮ Relocation: relocate resources as they are being accessed ◮ Replication: hide replication from the users ◮ Concurrency: mask the use of shared resources ◮ Failure: reliable and fault-tolerant operation

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 25 / 36

slide-26
SLIDE 26

Distributed Computing: Principles, Algorithms, and Systems

Challenges: Algorithm/Design (1)

Useful execution models and frameworks: to reason with and design correct distributed programs

◮ Interleaving model ◮ Partial order model ◮ Input/Output automata ◮ Temporal Logic of Actions

Dynamic distributed graph algorithms and routing algorithms

◮ System topology: distributed graph, with only local neighborhood knowledge ◮ Graph algorithms: building blocks for group communication, data

dissemination, object location

◮ Algorithms need to deal with dynamically changing graphs ◮ Algorithm efficiency: also impacts resource consumption, latency, traffic,

congestion

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 26 / 36

slide-27
SLIDE 27

Distributed Computing: Principles, Algorithms, and Systems

Challenges: Algorithm/Design (2)

Time and global state

◮ 3D space, 1D time ◮ Physical time (clock) accuracy ◮ Logical time captures inter-process dependencies and tracks relative time

progression

◮ Global state observation: inherent distributed nature of system ◮ Concurrency measures: concurrency depends on program logic, execution

speeds within logical threads, communication speeds

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 27 / 36

slide-28
SLIDE 28

Distributed Computing: Principles, Algorithms, and Systems

Challenges: Algorithm/Design (3)

Synchronization/coordination mechanisms

◮ Physical clock synchronization: hardware drift needs correction ◮ Leader election: select a distinguished process, due to inherent symmetry ◮ Mutual exclusion: coordinate access to critical resources ◮ Distributed deadlock detection and resolution: need to observe global state;

avoid duplicate detection, unnecessary aborts

◮ Termination detection: global state of quiescence; no CPU processing and no

in-transit messages

◮ Garbage collection: Reclaim objects no longer pointed to by any process

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 28 / 36

slide-29
SLIDE 29

Distributed Computing: Principles, Algorithms, and Systems

Challenges: Algorithm/Design (4)

Group communication, multicast, and ordered message delivery

◮ Group: processes sharing a context, collaborating ◮ Multiple joins, leaves, fails ◮ Concurrent sends: semantics of delivery order

Monitoring distributed events and predicates

◮ Predicate: condition on global system state ◮ Debugging, environmental sensing, industrial process control, analyzing event

streams

Distributed program design and verification tools Debugging distributed programs

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 29 / 36

slide-30
SLIDE 30

Distributed Computing: Principles, Algorithms, and Systems

Challenges: Algorithm/Design (5)

Data replication, consistency models, and caching

◮ Fast, scalable access; ◮ coordinate replica updates; ◮ optimize replica placement

World Wide Web design: caching, searching, scheduling

◮ Global scale distributed system; end-users ◮ Read-intensive; prefetching over caching ◮ Object search and navigation are resource-intensive ◮ User-perceived latency

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 30 / 36

slide-31
SLIDE 31

Distributed Computing: Principles, Algorithms, and Systems

Challenges: Algorithm/Design (6)

Distributed shared memory abstraction

◮ Wait-free algorithm design: process completes execution, irrespective of

actions of other processes, i.e., n − 1 fault-resilience

◮ Mutual exclusion ⋆ Bakery algorithm, semaphores, based on atomic hardware primitives, fast

algorithms when contention-free access

◮ Register constructions ⋆ Revisit assumptions about memory access ⋆ What behavior under concurrent unrestricted access to memory?

Foundation for future architectures, decoupled with technology (semiconductor, biocomputing, quantum . . .)

◮ Consistency models: ⋆ coherence versus access cost trade-off ⋆ Weaker models than strict consistency of uniprocessors

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 31 / 36

slide-32
SLIDE 32

Distributed Computing: Principles, Algorithms, and Systems

Challenges: Algorithm/Design (7)

Reliable and fault-tolerant distributed systems

◮ Consensus algorithms: processes reach agreement in spite of faults (under

various fault models)

◮ Replication and replica management ◮ Voting and quorum systems ◮ Distributed databases, commit: ACID properties ◮ Self-stabilizing systems: ”illegal” system state changes to ”legal” state;

requires built-in redundancy

◮ Checkpointing and recovery algorithms: roll back and restart from earlier

”saved” state

◮ Failure detectors: ⋆ Difficult to distinguish a ”slow” process/message from a failed process/ never

sent message

⋆ algorithms that ”suspect” a process as having failed and converge on a

determination of its up/down status

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 32 / 36

slide-33
SLIDE 33

Distributed Computing: Principles, Algorithms, and Systems

Challenges: Algorithm/Design (8)

Load balancing: to reduce latency, increase throughput, dynamically. E.g., server farms

◮ Computation migration: relocate processes to redistribute workload ◮ Data migration: move data, based on access patterns ◮ Distributed scheduling: across processors

Real-time scheduling: difficult without global view, network delays make task harder Performance modeling and analysis: Network latency to access resources must be reduced

◮ Metrics: theoretical measures for algorithms, practical measures for systems ◮ Measurement methodologies and tools

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 33 / 36

slide-34
SLIDE 34

Distributed Computing: Principles, Algorithms, and Systems

Applications and Emerging Challenges (1)

Mobile systems

◮ Wireless communication: unit disk model; broadcast medium (MAC), power

management etc.

◮ CS perspective: routing, location management, channel allocation, localization

and position estimation, mobility management

◮ Base station model (cellular model) ◮ Ad-hoc network model (rich in distributed graph theory problems)

Sensor networks: Processor with electro-mechanical interface Ubiquitous or pervasive computing

◮ Processors embedded in and seamlessly pervading environment ◮ Wireless sensor and actuator mechanisms; self-organizing; network-centric,

resource-constrained

◮ E.g., intelligent home, smart workplace

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 34 / 36

slide-35
SLIDE 35

Distributed Computing: Principles, Algorithms, and Systems

Applications and Emerging Challenges (2)

Peer-to-peer computing

◮ No hierarchy; symmetric role; self-organizing; efficient object storage and

lookup;scalable; dynamic reconfig

Publish/subscribe, content distribution

◮ Filtering information to extract that of interest

Distributed agents

◮ Processes that move and cooperate to perform specific tasks; coordination,

controlling mobility, software design and interfaces

Distributed data mining

◮ Extract patterns/trends of interest ◮ Data not available in a single repository

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 35 / 36

slide-36
SLIDE 36

Distributed Computing: Principles, Algorithms, and Systems

Applications and Emerging Challenges (3)

Grid computing

◮ Grid of shared computing resources; use idle CPU cycles ◮ Issues: scheduling, QOS guarantees, security of machines and jobs

Security

◮ Confidentiality, authentication, availability in a distributed setting ◮ Manage wireless, peer-to-peer, grid environments ⋆ Issues: e.g., Lack of trust, broadcast media, resource-constrained, lack of

structure

  • A. Kshemkalyani and M. Singhal (Distributed Computing)

Introduction CUP 2008 36 / 36