Asynchronous token routing device

Slides:



Advertisements
Similar presentations
Randomness Conductors Expander Graphs Randomness Extractors Condensers Universal Hash Functions
Advertisements

Computer-System Structures Er.Harsimran Singh
The Build-up of the Red Sequence at z
Parallel and Distributed Simulation Global Virtual Time - Part 2.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
1 Omega Network The omega network is another example of a banyan multistage interconnection network that can be used as a switch fabric The omega differs.
1 Delta Network The delta network is one example of a multistage interconnection network that can be used as a switch fabric The delta network is an example.
1 Linear Bounded Automata LBAs. 2 Linear Bounded Automata are like Turing Machines with a restriction: The working space of the tape is the space of the.
OS2-1 Chapter 2 Computer System Structures. OS2-2 Outlines Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection.
Chapter 4 - Self-Stabilizing Algorithms for Model Conservation4-1 Chapter 4: roadmap 4.1 Token Passing: Converting a Central Daemon to read/write 4.2 Data-Link.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
UMass Lowell Computer Science Analysis of Algorithms Prof. Karen Daniels Fall, 2001 Lecture 9 Tuesday, 11/20/01 Parallel Algorithms Chapters 28,
8. Fault Tolerance in Software 8.1 Introduction Is it true that a program that has once performed a given task as specified will continue to do so? Yes,
DS -V - FDT - 1 HUMBOLDT-UNIVERSITÄT ZU BERLIN INSTITUT FÜR INFORMATIK Zuverlässige Systeme für Web und E-Business (Dependable Systems for Web and E-Business)
Tolerating Faults in Counting Networks Marc D. Riedel Jehoshua Bruck California Institute of Technology Parallel and Distributed.
Chapter Resynchsonous Stabilizer Chapter 5.1 Resynchsonous Stabilizer Self-Stabilization Shlomi Dolev MIT Press, 2000 Draft of Jan 2004, Shlomi.
The importance of switching in communication The cost of switching is high Definition: Transfer input sample points to the correct output ports at the.
Sorting Networks Uri Zwick Tel Aviv University May 2015.
Electronic Counters.
Lecture 6: Introduction to Distributed Computing.
2.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 2: Computer-System Structures Computer System Operation I/O Structure.
Chapter 2: Computer-System Structures
1 CSE Department MAITSandeep Tayal Computer-System Structures Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection.
CS4231 Parallel and Distributed Algorithms AY 2006/2007 Semester 2 Lecture 10 Instructor: Haifeng YU.
Chapter 2: Computer-System Structures 2.1 Computer System Operation 2.5 Hardware Protection 2.6 Network Structure.
Comparison Networks Sorting Sorting binary values
Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage Structure Storage Hierarchy Hardware Protection Network Structure.
Delivery, Forwarding, and Routing of IP Packets
Fault-Tolerant Systems Design Part 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 20 Slide 1 Critical systems development 3.
Fault-Tolerant Systems Design Part 1.
Self Stabilizing Smoothing and Counting Maurice Herlihy, Brown University Srikanta Tirthapura, Iowa State University.
Solutions for the First Quiz COSC 6360 Spring 2014.
Sorting and searching in the presence of memory faults (without redundancy) Irene Finocchi Giuseppe F. Italiano DISP, University of Rome “Tor Vergata”
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
1 CS.217 Operating System By Ajarn..Sutapart Sappajak,METC,MSIT Chapter 2 Computer-System Structures Slide 1 Chapter 2 Computer-System Structures.
Silberschatz, Galvin and Gagne  Applied Operating System Concepts Chapter 2: Computer-System Structures Computer System Architecture and Operation.
CE Operating Systems Lecture 2 Low level hardware support for operating systems.
Several sets of slides by Prof. Jennifer Welch will be used in this course. The slides are mostly identical to her slides, with some minor changes. Set.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
Counting and Distributed Coordination BASED ON CHAPTER 12 IN «THE ART OF MULTIPROCESSOR PROGRAMMING» LECTURE BY: SAMUEL AMAR.
1 Sorting Networks Sorting.
Lecture 3 Sorting and Selection. Comparison Sort.
ICDCS 05Adaptive Counting Networks Srikanta Tirthapura Elec. And Computer Engg. Iowa State University.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
rain technology (redundant array of independent nodes)
Lecture 4 Sorting Networks
Chapter 2: Computer-System Structures(Hardware)
Chapter 2: Computer-System Structures
Distributed Systems – Paxos
7.1 What is a Sorting Network?
Randomized Smoothing Networks
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 2: Computer-System Structures Computer System Operation I/O Structure Storage.
Algebraic Topology and Distributed Computing
COT 5611 Operating Systems Design Principles Spring 2014
Architecture of Systola 1024
Parallel and Distributed Algorithms
Module 2: Computer-System Structures
CSCE 668 DISTRIBUTED ALGORITHMS AND SYSTEMS
Bitonic and Merging sorting networks
Delta Network The delta network is one example of a multistage interconnection network that can be used as a switch fabric The delta network is an example.
Module 2: Computer-System Structures
Pools, Counters, and Parallelism
Shared Counters and Parallelism
Switching, Packets, Frames, Parity, Checksums, and CRCs
Chapter 2: Computer-System Structures
Chapter 2: Computer-System Structures
Module 2: Computer-System Structures
Module 2: Computer-System Structures
Heapsort.
Presentation transcript:

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs 1 bit of memory

Asynchronous token routing device Balancer Asynchronous token routing device inputs outputs balanced token counts 1 bit of memory

A Biochemical Balancer? 2X Y + Z inputs outputs 1 bit of memory

Counting Network Data structure for multiprocessor coordination inputs Aspnes, Herlihy & Shavit (1991) a d a e a e d c a c b f b f inputs outputs e b f c c g g f b e g d g d depth

Isomorphic to Batcher’s Bitonic sorting network. Counting Network Isomorphic to Batcher’s Bitonic sorting network. a d a e a e d c a c b f b f step sequence e b f c c g g f b e g d g d

Balancer Snapshot inputs outputs x y 1 bit of memory

Execution trace: token counts on all wires Counting Network Execution trace: token counts on all wires 3 1 1 2 2 1 2 1

Fault Tolerance Dynamic faults in the data structure: No errors in control: No lost tokens Corrupted data No errors in network wiring Inaccessible data concurrent data structure 1

Fault Model inputs outputs

Fault Model fault! inputs outputs

Fault Model inputs outputs state is inaccessible

tokens bypass balancer Fault Model tokens bypass balancer inputs outputs state is inaccessible

tokens bypass balancer Fault Model tokens bypass balancer inputs outputs state is inaccessible

tokens bypass balancer Fault Model tokens bypass balancer inputs outputs state is inaccessible

tokens bypass balancer Fault Model tokens bypass balancer inputs outputs imbalance in token counts state is inaccessible

tokens bypass balancer Fault Model tokens bypass balancer inputs outputs received prior to the fault received after the fault

Naïve approach: replicate every balancer. Fault Tolerance Naïve approach: replicate every balancer. outputs inputs

Naïve approach: replicate every balancer. Fault Tolerance Naïve approach: replicate every balancer. inputs outputs

Naïve approach: replicate every balancer. Fault Tolerance Naïve approach: replicate every balancer. inputs outputs

Naïve approach: replicate every balancer. Fault Tolerance Naïve approach: replicate every balancer. inputs outputs

Naïve approach: replicate every balancer. Fault Tolerance Naïve approach: replicate every balancer. inputs outputs

Naïve approach: replicate every balancer. Fault Tolerance Naïve approach: replicate every balancer. fault! inputs outputs

Naïve approach: replicate every balancer. Fault Tolerance Naïve approach: replicate every balancer. inputs outputs

Naïve approach: replicate every balancer. Fault Tolerance Naïve approach: replicate every balancer. inputs outputs

Naïve approach: replicate every balancer. Fault Tolerance Naïve approach: replicate every balancer. inputs outputs imbalance in token counts Doesn’t work!

Remapping Faulty Balancers

Remapping Faulty Balancers

Remapping Faulty Balancers inaccessible balancer

Remapping Faulty Balancers Redirect pointers to spare balancer inaccessible balancer spare balancer, random initial state

Fault Model inputs outputs

Fault Model fault! inputs outputs

spurious state transition Fault Model Remapped balancer inputs outputs spurious state transition

spurious state transition Fault Model Remapped balancer inputs outputs spurious state transition

spurious state transition Fault Model Remapped balancer inputs outputs imbalance in token counts spurious state transition

Fault Model Remapped balancer inputs outputs x y

Error Bound Error bound for the output sequence of a balancing network with remapped balancers: Balancing Network k faults

Distance Measure The distance between two sequences and is: Definition: Balancing Network k faults gives number of “misplaced tokens”

Two identical balancing networks, given same inputs: Error Bound Two identical balancing networks, given same inputs: no faults k faults

Error Bound Execution without faults: 3 1 1 2 2 1 2 1

Error Bound Execution with a fault: 3 1 3 1 1 2 1 2 2 1 3 2 1 2 1 3 2 3 1 1 2 1 2 2 1 3 2 1 2 1 3 2 1

Error Bound Distance: 2 1 3 = 1 = 0 2 1

Strategy: to correct k faults, append k copies. Correction Network Strategy: to correct k faults, append k copies. smooth sequence step sequence with k errors step sequence CORRECT[n] #1 CORRECT[n] #k

Strategy: Construct a block which reduces error by one. Correction Network Strategy: Construct a block which reduces error by one. step sequence with k errors step sequence with errors CORRECT[n]

Correction Network To reduce error by one: balance smallest and largest entries. step sequence with k errors largest value smallest value step sequence with errors BUTTERFLY[n]

Butterfly Network Network which separates out smallest and largest entries: 1 10 34 1 6 5 17 4 3 2 9 8 7 6 5 largest value smallest value

Butterfly Network error reduced Balance smallest and largest entries: 1 4 7 6 5 1 3 6 10 6 3 6 1 5 2 5 1 9 6 1 9 6 34 17 9 6 17 8 5

Fault Tolerance Solution: Counting Network constructed with FT balancers. Counting Network FT Counting Network tolerates k faults

Fault-Tolerant Balancer k+1 “pseudo-balancers”, two bits of memory each inputs outputs L F tolerates k faults

Pseudo-Balancer two bits of memory state: up or down inputs outputs L two bits of memory state: up or down status: leader (L) or follower (F)

Leader two bits of memory Accepts tokens on either wire. inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.

Leader two bits of memory Accepts tokens on either wire. inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.

Leader two bits of memory Accepts tokens on either wire. inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.

Leader two bits of memory Accepts tokens on either wire. inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.

Leader two bits of memory Accepts tokens on either wire. inputs outputs L incoming tokens colored green Accepts tokens on either wire. Colors outgoing tokens red.

Follower two bits of memory Accepts red tokens in order. inputs outputs F Accepts red tokens in order.

Follower two bits of memory Accepts red tokens in order. inputs outputs F Accepts red tokens in order.

Follower two bits of memory Accepts red tokens in order. inputs outputs F Accepts red tokens in order.

Follower two bits of memory Accepts red tokens in order. inputs outputs F Accepts red tokens in order.

Follower two bits of memory Accepts red tokens in order. inputs outputs F Accepts red tokens in order.

Follower two bits of memory Accepts red tokens in order. inputs outputs F Accepts red tokens in order.