Skip to main content

Distributed Computing Introduction

 Definition of Distributed Systems
1.      Collection of independent entities cooperation to collectively solve a task.
   2.     Autonomous processors communicating over a communication network


Characterization of Distributed Systems
•      Crash of a single computer does not inhibit normal operation
•      Computers
•      Not sharing common memory, common clock
•      Communicate by message passing over a network
•      Run their own operating systems
•      Semi-autonomous
•      Loosely coupled
•      Collection of independent computers
•      Appearing to users as a single coherent system
•      Describes a wide range of computers
•      Weakly coupled systems like WAN's
•      Strongly coupled systems like LAN's
•      Very strongly coupled systems like multiprocessor systems

Features of Distributed System
•      No common physical clock
•      Introduces “distribution” element into the system
•      Gives rise to asynchrony among processors
•      No shared memory
•      Absence of common physical clock
•      Requires message passing for communication
•      Abstraction of common address may be provided via distributed shared memory abstraction.
•      Geographical seperation
•      Processors are geographically wide apart
•      Processors may reside on a WAN
•      Processors on a LAN – small distributed system
•      Network/Cluster of Workstations (NOW/COW) configuration – processors connected on a LAN
•      Popularity of NOW – emergence of low-cost high-speed off-the-shelf processors
•      Google search engine - based on NOW architecture
•      Autonomy and heterogeneity
•      Loosely coupled processors
•      Different processor speeds
•      Different operating systems
•      Processors are not part of a dedicated system
•      Cooperate with one another
•      May offer services
•      May solve a problem jointly
 Distributed System Model

Relation between Software Components

Interaction of the software components
•      Distributed execution –
•      execution of processes across distributed system
•      goal – collaboratively achieve a common goal
•      alternatively known as computation/run
•      Middleware –
•       distributed software
•      drives the distributed system
•      provides transparency of heterogeneity at platform level
•      User code contains primitives and calls to functions defined in libraries of middleware level
•      Several libraries exist for invoking primitives for common functions of middleware layer
•      Middleware standards:
•      Common Object Request Broker Architecture (CORBA)
•      developed by Object Management Group (OMG)
•      Remote Procedure Call (RPC) mechanism
•      Distributed Component Object Model (DCOM)
•      Remote Method Invocation (RMI)
•      Message Passing Interface (MPI)


CORBA(Common Object Request Broker Architecture)
•      Provides interoperability among distributed objects
•      Enables exchange of information
•      Independent of
•      Hardware platforms
•      Programming languages
•      Operating systems

Design specification of Object Request Broker (ORB)

ORB: Mechanism required for distributed objects to communicate with one another either locally or on remote devices
•     Written in different languages, or at different locations on a network



RPC (Remote Procedure Call)
•      Called procedure code may reside on a remote machine
•      Works like a local procedure call
•      Steps:
•      Sends message across n/w to invoke remote procedure
•      Remote procedure completes execution
•      Sends back a reply

Motivation for Distributed System

•      Inherent distributed computation
•      applications like funds transfer
•      reaching a consensus among geographically distributed parties
•      Resource sharing
•      Peripherals, data sets in databases, libraries, data
•      Resources can’t be replicated at all sites
•      Should not be present at a single site à creates single point of failure
•      Segregate resources at multiple sites
•      Increases reliability
•      Access to remote resources
•      Sensitive data/resources may remain centralized
•      Eg., payroll data, supercomputers
•      Such resources need to be remotely accessed
•      Encouraged development of distributed protocols and middleware.
•      Increased performance/cost ratio
•      Due to resource sharing and accessing geographically remote data & resources
•      Task can be partitioned across different computers
•      Better performance/cost ratio than parallel machines
•      Particularly true for NOW configuration
•      Reliability
•      Resource replication
•      No single point of failure
•      All sites are not likely to crash/malfunction at the same time
•      Requirements of reliability
•      Availability
•      Integrity
•      Fault tolerance
•      Scalability
•      Processors are connected by wide-area network
•      New processors may be easily added
•      Addition of more processors does not create bottleneck for the communication network.
•      Modularity and incremental expandability
•      Heterogenous processors may be added
•      Does not affect performance if processors are running the same middleware algorithm
•      Existing processors can also be replaced

Parallel Systems

Multiprocessor systems (direct access to shared memory, UMA model)
E.g., Omega, Butterfly, Clos, shuffle-exchange networks

Multicomputer parallel systems (no direct access to shared memory, NUMA model)
E.g., NYU Ultracomputer, CM* Connection Machine, IBM Blue gene

Array processors (collocated, tightly coupled, common system clock)
E.g., DSP applications.

UMA Model

·        Direct access to shared memory
·        Forms a common address space
·        Access latency - waiting time to complete an access to any memory location from any processor
·        Access latency is same for all processors
·        Processors --   Remain in close proximity , Connected by an interconnection network

M – Memory, P - Processor
•      Interprocess Communication occurs through
•      read and write operations on shared memory
•      Message passing primitives provided by MPI
•      Processors are of same type
•      Remain within same physical box/container with shared memory
•      Processors run the same operating system
•      Hardware & software are very tightly coupled
•      Interconnection network to access memory may be
•      Bus
•      Multistage switch (with regular & symmetric design) – greater efficiency

Omega, Butterfly Interconnections
Interconnection networks for shared memory multiprocessor systems 
(a) Omega network 
(b) Buttery network.
·        
     Multi-stage networks formed by 2 x 2 switching elements.Data can be sent on any one of the input wires. Data is switched to upper or lower output wire. Collision occurs when data from both input wires is routed to same output wire at the same step
·        Buffering & interconnection design techniques address collisions
·        n-input and n-output network uses:
o   log(n) stages
o   log(n) bits for addressing
·        Routing at stage k uses the kth bit
·        Multi-stage networks
·        can be constructed recursively or iteratively
·        interconnection pattern between any two stages can be expressed using an iterative or a recursive generating function

Omega Network
·        n processors, n memory banks
·        log n stages
·        (n/2)log(n) switching elements of size 2x2
·        Interconnection function: Output i of a stage is connected to input j of next stage:
·        j = 2i,  for  0 ≤ i ≤ n/2 – 1
 = 2i + 1 – n,  for  n/2 ≤ i ≤ n – 1
·        left-rotation operation on the binary representation of i to get j
·        upper (lower) input lines for a switch in stage k comes in sequential order from the upper (lower) half of the switches in stage k - 1

For any stage
for 0 ≤ i ≤ 3, output i is connected to input 2i of next stage
for 4 ≤ i ≤ 7, output i is connected to input 2i + 1 – n of next stage
·        Routing function: from input line i to output line j
·        considers j and stage number s, s ϵ [0, log(n) – 1]
·        route to destination j
o   if (s + 1)th MSB of j = 0 then route on upper wire
o   else [i.e., (s + 1)th MSB of j = 1] then route on lower wire.


Butterfly Network

·        Interconnection function depends on n and stage number s
·        No. of switches per stage M = n/2
·        Switch is denoted as <x, s> , x ϵ [0, M – 1], s ϵ [0, log(n) -1]
·        An edge from switch <x, s> to switch <y, s + 1> exists if
  •      x = y or,
  •      (s + 1)th  MSB of (x XOR y) is 1
  •      for stage s, rule is applied for M/2s switches


·        n = 8, M = 4, s = 0,…,2
·        interconnection pattern is between s = 0 and s = 1 and between s = 1 and s = 2
·        x = 0 to 3 (2-bit string)
·        for s = 0, first output line from switch 00 goes to the input line of switch 00 of stage s =1
·        for s = 0, second output line of switch 00 goes to input line of switch 10 of stage s = 1
·        x = 01 has one output line go to an input line of switch 11 in stage s = 1
·        for stage s = 1 connecting to stage s = 2, apply the rules considering M/21 = M/2 switches
·        i.e., build two butterflies of size M/2 – the “upper half” and the “lower half” switches
·        recursion terminates for M/2s = 1, when there is a single switch
·        In a stage s switch,
  •  if the (s+1)th MSB of j is 0, the data is routed to the upper output wire
  •    otherwise it is routed to the lower output wire
Note:
  •   For Butterfly and Omega networks, paths from different inputs to any one output constitute a spanning tree
  • Collisions occur when data is destined to the same output line.

Multicomputer Parallel Systems

Multiple processors do not have direct access to shared memory. Memory of multiple processors may or may not form a common address space,usually do not have a common clock. Processors are in close physical proximity and very tightly coupled (homogenous hardware and software) connected by an interconnection network communicate either via a common address space or via message-passing.
eg., NYU Ultracomputer, Sequent shared memory machines, CM* Connection machine

NUMA  Model

·        NUMA - non-uniform memory access architecture.
·        Multicomputer system has a common address space, latency to access various shared memory locations from the different processors varies




Comments