17
Parallel Programming Towards Efficient Cloud Computing Mehran Davoudi Head of Development Department, Carane Resource Planning Systems http://ir.linkedin.com/in/mehrandvd/

Parallel programming: how new language features help

Embed Size (px)

Citation preview

Parallel ProgrammingTowards Efficient Cloud Computing

Mehran Davoudi

Head of Development Department,

Carane Resource Planning Systems

http://ir.linkedin.com/in/mehrandvd/

Presentation Overview

?

• Why to move towards parallel programming?

• What’s the most concerns successful applications to implement parallel?

• How to handle challenges using new coming technologies

The Moore’s Law

The number of transistors on integrated

circuits doubles approximately every two

years.

2x every 2 year!

Cloud Hardware Infrastructure

Are they really used?

Or just one part is doing the

job!?

Why is it so hard?

Shared Memory

Continuation

Error Management

Cancellation

Debugging

Shared Memory

The most famous problem in parallel computing

Makes everything very complicated

Heard about them at the university

Very important but not the topic of this presentation

Debugging

Single Current

Statement

Multiple Current

Statements

Error Management

100 threads are working

In the middle, 3 of them fail

What to do now!?

Continue?Throw

Exception?

What about remained threads?

Cancellation

100 threads are working

30 done, 20 doing, 50 waiting

User cancels! What to do now!?

Finish doings?

Cut the doings?

Don’t allow to cancel!?

How the technology helps to manage

Threads

Tasks

LambdasImmutable

collections

Async/Await

Aggregated Exceptions

Isolated Types

Task instead of Thread

A better abstraction

•Task hides most of unnecessary complicated details of threads

Managed by .NET

•Thread pooling, resource management and many others are controlled by the framework

A well shaped API

• It has a Fluent API

•Well integrated with Lambdas

TPL, PLINQ

TPL (Task Parallel Library)

Cancellation

Cancellation Token

Continuation

Next line is not the next!

Error Management

Aggregate Exception

PLINQ

High level parallelizing

tools

Parallel.For()

Based on the famous LINQ

Enumerable

.AsParallel()

Async/Await: A real magic!

TPLNative

Threads

Debugging Tools

Parallel Stack

Parallel Watch

A totally different thinking style

A totally different terminology for developers

Next statement ≠ Next Line

It takes about 6 months to teach and prepare a professional development team

Resources

Andres Heijlsberg conference on BUILD

Patterns of Parallel Programming, Stephen Toub, 2010

Erik Meyer and Joe Duffy talk on Chanel 9

Eric Lippert weblog on Parallel Programming

Joseph Albahari weblog on Parallel Programming

Wikipedia page of Moore’s Law

Thanks

QUESTIONS!?

Also you can contact me at:

Mail: [email protected]

LinkedIn: http://ir.linkedin.com/in/mehrandvd

Facebook: www.facebook.com/mehrandvd