parallel computing models & techniques

42
Parallel Computing Models & Techniques

Upload: gemma-hinton

Post on 02-Jan-2016

34 views

Category:

Documents


4 download

DESCRIPTION

Parallel Computing Models & Techniques. About Me. Microsoft MVP Intel Blogger TechEd Israel, TechEd Europe Expert C++ Book http ://AsyncOp.com http://Asaf.Shelly.co.il. Parallel Computing. Multi-Core Distributed Systems SOA & WebServices Transaction, Session, Queue, Event, Interrupt - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Parallel Computing Models & Techniques

Parallel ComputingModels & Techniques

Page 2: Parallel Computing Models & Techniques

About Me

• Microsoft MVP• Intel Blogger• TechEd Israel, TechEd Europe• Expert C++ Book

• http://AsyncOp.com• http://Asaf.Shelly.co.il

Page 3: Parallel Computing Models & Techniques

Parallel Computing

• Multi-Core• Distributed Systems• SOA & WebServices• Transaction, Session, Queue, Event, Interrupt• User Experience over User Interface• Maximize performance: No Free Work Unit• Best performance: No I/O Wait

Page 4: Parallel Computing Models & Techniques

Advantages of Multi-Core

• Low Power Consumption• Extended battery life• Less heating• Smaller and lighter devices• Software replaces custom hardware!

Page 5: Parallel Computing Models & Techniques

Signaling In Hardware

Error Detection

CPU

RAMRequest: Read AddressWait: Preparing DataResponse: Data

Page 6: Parallel Computing Models & Techniques

Signaling In Hardware

Error Detection

CPU

RAMInterrupt : Data Pending

Interrupt : Processing Complete

Page 7: Parallel Computing Models & Techniques

Software Locks?

• Locks Are BAD!• By design a lock is forcing serial work• Using a resource on a single core• Use a lock only when you want to use 1 core

at a time and eliminate parallel work• Locks can be used on single steps for example

entrance to a queue

Page 8: Parallel Computing Models & Techniques

Locks Are BAD!

• Can you find the bug??

Lock( MUTEX_A )Buffer_A [ 12 ] = 23;// here Buffer_A [ 12 ] is 57 !!!!

Unlock( MUTEX_A )

• Would you find it with a code review?

Page 9: Parallel Computing Models & Techniques

Lock = Stop

Page 10: Parallel Computing Models & Techniques

Need Lock-Free Solutions!

Page 11: Parallel Computing Models & Techniques

Protecting A Resource

• Lock as way to share ownership• Using a single owner– Owner Thread– Owner Task– TPL Agent– Device Driver– Owner Service

Page 12: Parallel Computing Models & Techniques

Asynchronous Work Without Locks

• Phone as Synchronous System• Phone as Asynchronous System• Mail and Email System• Order Pizza

Page 13: Parallel Computing Models & Techniques

Unprotected Parallel Access To Data

• Two Writers or Writer and Reader

Writer

A A A A A A A A A A A A A A A A A

Writer Reader

Page 14: Parallel Computing Models & Techniques

Race Condition - Location

• Two Writers or Writer and Reader

Writer

A A A A A A A A A A A A A A A A A

Writer Reader

Page 15: Parallel Computing Models & Techniques

Race Condition – Timeframe

• Collision over the same communication line

Writer Writer Reader

A

Page 16: Parallel Computing Models & Techniques

Race Condition - Sequence

• Bugs in Parallel Pipeline

Clear Buffer

Add ABCDE ABCDE

Add X ABCDEX

Add ‘1’ To ASCII BCDEFY

123

Add ABCDE 123ABCDE

Clear Buffer

Add ‘1’ To ASCII

Add X X

123

TCP, CJP, PF

Page 17: Parallel Computing Models & Techniques

Race Condition Solutions

• Wave-In Signal – Manager (ex. USB BUS)• Pass Ownership (Token Ring, MUTEX)• TDM• Burst Write, Retry Read (ex. SeqLock, Reader-

Writer Lock, Network Layer 2)• Write and Verify• Queue• Transaction – A Sequence

Page 18: Parallel Computing Models & Techniques

Serial Problem with Communication

• Transaction based Ping-Pong

ComputerUSB Device

Packet Request

Packet Data

Acknowledge

Packet Request

Packet Data

Acknowledge

Page 19: Parallel Computing Models & Techniques

Parallel Solution for Ping-Pong

• Collected Transaction

Request List

Packet Data A

Packet Data B

Packet Data C

Packet Data D

Retransmit B

Ack List

ComputerUSB Device

Page 20: Parallel Computing Models & Techniques

Cancel Operation

• Search For File

Request List

Packet Data A

Data found in B

Packet Data B

Packet Data C

Acknowledge A

Packet Data D

Abort

Packet Data E

Acknowledge

ComputerUSB Device

Page 21: Parallel Computing Models & Techniques

Object Oriented Design

• Definition Of Objects• Object Relations• Object Reusability• Object Management• Object Oriented Block Diagram• Object Oriented System Design• Avoid “Spaghetti Code”

Page 22: Parallel Computing Models & Techniques

Procedural Design

• Definition Of State• Procedure Relations• Procedure Reusability• Flow Control Management• Poor Block Diagram• Limited System Design• Avoid “Spaghetti Flow”

Page 23: Parallel Computing Models & Techniques

Good Application Design

Page 24: Parallel Computing Models & Techniques

Good Application Design

Page 25: Parallel Computing Models & Techniques

Queue

• Pass Data Without Using Lock• Full Asynchronous Operation• Event With Data• Event With Priority• Event With Destination• Structured Event vs. Stream

Page 26: Parallel Computing Models & Techniques

Flow Control

• Keep Internal State• Object State• Execution Phase• Collection of State as System State• System State for Debug

Page 27: Parallel Computing Models & Techniques

Task Management

• Stack – Hardware Accelerated Management• Fork• Software Stack Management• Session• Task Groups

Page 28: Parallel Computing Models & Techniques

Software Dispatcher

• .Net Parallel Extensions

Page 29: Parallel Computing Models & Techniques

Network Dispatcher

• Load Balancing

Firewall

Load Balance Front End

Firewall Firewall

Load Balance Front End

Page 30: Parallel Computing Models & Techniques

Hardware Dispatcher

• 10 Gbps Network Switch

2.67 GHzCORE

10 GHz Network Dispatcher / MUX

2.67 GHzCORE

2.67 GHzCORE

2.67 GHzCORE

Page 31: Parallel Computing Models & Techniques

Cloud Dispatcher

• Microsoft Server 2008 HPC

Page 32: Parallel Computing Models & Techniques

Parallel Memory?

Page 33: Parallel Computing Models & Techniques

Task Oriented Design

Operation: Setting up a Tent

Task: locate items in storage

Task: carry items to build site

Task: use items to build tent

Page 34: Parallel Computing Models & Techniques

Execution Timeline

Time

Output

Locate Carry Use

Pole

Fabric

Wires

Page 35: Parallel Computing Models & Techniques

Horizontal Division

Time

Page 36: Parallel Computing Models & Techniques

Time

Vertical Division

Page 37: Parallel Computing Models & Techniques

Resource Partitioning

Page 38: Parallel Computing Models & Techniques

Force Duplication

• Entire Process• Sharing Resources• Flow Barriers• Simple to implement• Simple Affinity• Simple Priority• No Optimization

Page 39: Parallel Computing Models & Techniques

Pipeline

• Functional• Resources Ownership• Communication Barriers• Requires Design• Affinity Planning• Priority Planning• Optimization

Page 40: Parallel Computing Models & Techniques

Super Networks and Grids

• Multiple Reads• Multiple Writes• Replication Time• Replication Overhead• Network Consistency• Data Snapshot• Real Time

Page 41: Parallel Computing Models & Techniques

Super Networks

Page 42: Parallel Computing Models & Techniques

Thank You