Task Parallel Library Data Flows
Upcoming SlideShare
Loading in...5

Like this? Share it with your network


Task Parallel Library Data Flows






Total Views
Views on SlideShare
Embed Views



3 Embeds 84

http://codingndesign.com 81
http://feeds.feedburner.com 2
https://www.linkedin.com 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Task Parallel Library Data Flows Presentation Transcript

  • 1. Developer Conference 2011 MICROSOFT USER GROUP KOLKATA
  • 2. TPLTask Parallel Library^ – Data FlowTasksSankarsan Bose12th November , 2011
  • 3. Parallel Programming As It Evolves- Higher level constructs to handle pipeline scenarios - Earlier DevLabs - CTP Data Flow Tasks .NET 4.5 Preview 1 Coordination Data Task Parallel Parallel Structure Library Programming in .NET 4.0 Threads Till .NET 3.5 to ta Care of concurrency requirements
  • 4. Pipelines And Data Flow Networks- A linear series of producer/consumer stages - Output of one stage -> Input of another- Stages of pipeline are supposed to process input in specified order- Data Flow networks are more general form of pipelinesInput Stage1 Stage 2 Stage N Output
  • 5. Image Pipeline – An Example Input Image Load Image Original Image s Scale Image Filter Image Thumbnails Filtered Images Display Image This is sequential… How it makes sense in Parallel World???
  • 6. Image Pipeline – An Example (Contd..) Image1 Image2 Image3 Image4 Image5 Load Image1 Image2 Image3 Image4 Image5 Scale Filter Image1 Image2 Image3 Image4 Image5 Image1 Image2 Image3 Image4 Image5 Display t0 t1 t2 t3 t4 t5 t6 t7
  • 7. What type of tasks Stages Can Do?- Receive an input and process it.- Receive an input, buffer it and send it to another stage- Receive an input, transform the input and send the output to another stage- Receive input from multiple stages and join/combine the inputs to produce the output
  • 8. TPL DataFlow Blocks IDataFlowBloc- Stages should be able k - Handle input ISourceBlock ITargetBlock - Produce output - Buffer data - Perform Processing- Stages are modeled as Data Flow Blocks- Data Flow Blocks can be - Source Block – Generate data - Target Block - Accept data
  • 9. TPL DataFlow Blocks(Contd..)- Built-In Data Flow Blocks - Buffering Blocks - BufferedBlock - BroadCastBlock - Executor Blocks - ActionBlock - TransformBlock - TransformManyBlock - Join Blocks - JoinBlock - BatchBlockLet’s Go To The Code….
  • 10. Built In Data Flow Blocks Input ActionBlock Task Input BufferBlock Original Task Input BroadcastBlock Copy Task Copy Copy TransformBlock Input Tas Output k Input JoinBlock 1 Tas Output k Input 2
  • 11. Image Processing ProgramImage Processing Program…Let’s Build aSkeletal Code
  • 12. References- Parallel Programming with Microsoft Visual C++ by Colin Campbell and Ade Miller- Patterns Of Parallel Programming by Stephen Toub- Introduction To TPL DataFlow by Stepehen Toub- Samples in http://parallelpatterns.codeplex.com/
  • 13. Thanks Everybody, For YourTime. Coding…..Enjoy Learning..Happy
  • 14. Speaker Details/Contact- http://twitter.com/sankarsan- http://sankarsan.wordpress.com- http://codingndesign.com- http://sankarsanbose.com