SlideShare a Scribd company logo
1 of 17
Mehran Davoudi
Head of Development Department,
Carane Resource Planning Systems
http://ir.linkedin.com/in/mehrandvd/

Parallel Programming
Towards Efficient Cloud Computing
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?

Debugging
Error
Management

Cancellation

Continuation
Shared
Memory
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

Async/Await
Immutable
collections

Lambdas

Tasks
Aggregated
Exceptions

Threads
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

Continuation

Error
Management

Cancellation
Token

Next line is
not the next!

Aggregate
Exception

PLINQ
High level
parallelizing
tools

Based on the
famous LINQ

Parallel.For()

Enumerable
.AsParallel()
Async/Await: A real magic!

TPL

Native
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:

Mehran.Davoudi@Hotmail.com

 LinkedIn:

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

 Facebook:

www.facebook.com/mehrandvd

More Related Content

Similar to Parallel programming: how new language features help

ELMSLN @ OpenEd 14
ELMSLN @ OpenEd 14ELMSLN @ OpenEd 14
ELMSLN @ OpenEd 14
btopro
 
CS5032 Lecture 2: Failure
CS5032 Lecture 2: FailureCS5032 Lecture 2: Failure
CS5032 Lecture 2: Failure
John Rooksby
 

Similar to Parallel programming: how new language features help (20)

2 parallel processing presentation ph d 1st semester
2 parallel processing presentation ph d 1st semester2 parallel processing presentation ph d 1st semester
2 parallel processing presentation ph d 1st semester
 
Webinar CRUI Dell: flexilab, computer classroom made flexible
Webinar CRUI Dell: flexilab, computer classroom made flexible Webinar CRUI Dell: flexilab, computer classroom made flexible
Webinar CRUI Dell: flexilab, computer classroom made flexible
 
Business Continuity and Disaster Recovery for the Modern Office
Business Continuity and Disaster Recovery for the Modern Office Business Continuity and Disaster Recovery for the Modern Office
Business Continuity and Disaster Recovery for the Modern Office
 
NDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business NeedsNDC London 2014: Erlang Patterns Matching Business Needs
NDC London 2014: Erlang Patterns Matching Business Needs
 
ELMSLN @ OpenEd 14
ELMSLN @ OpenEd 14ELMSLN @ OpenEd 14
ELMSLN @ OpenEd 14
 
A Tale of Contemporary Software
A Tale of Contemporary SoftwareA Tale of Contemporary Software
A Tale of Contemporary Software
 
Bilot 3mode
Bilot 3modeBilot 3mode
Bilot 3mode
 
CS5032 Lecture 2: Failure
CS5032 Lecture 2: FailureCS5032 Lecture 2: Failure
CS5032 Lecture 2: Failure
 
Adrian Colyer - Keynote: NoSQL matters - NoSQL matters Dublin 2015
Adrian Colyer - Keynote: NoSQL matters - NoSQL matters Dublin 2015Adrian Colyer - Keynote: NoSQL matters - NoSQL matters Dublin 2015
Adrian Colyer - Keynote: NoSQL matters - NoSQL matters Dublin 2015
 
Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)Availability in a cloud native world v1.6 (Feb 2019)
Availability in a cloud native world v1.6 (Feb 2019)
 
Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019
Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019
Scaling Autonomy in a FinTech Unicorn - WeAreDevelopers 2019
 
Net meets multi core
Net meets multi coreNet meets multi core
Net meets multi core
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013
 
Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014
 
Rethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - BrandoliniRethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - Brandolini
 
Small is beautiful
Small is beautifulSmall is beautiful
Small is beautiful
 
Managing Multi-Office, Multi-Platform Mayhem: Robert Green
Managing Multi-Office, Multi-Platform Mayhem: Robert GreenManaging Multi-Office, Multi-Platform Mayhem: Robert Green
Managing Multi-Office, Multi-Platform Mayhem: Robert Green
 
Stored Procedure Superpowers: A Developer’s Guide
Stored Procedure Superpowers: A Developer’s GuideStored Procedure Superpowers: A Developer’s Guide
Stored Procedure Superpowers: A Developer’s Guide
 
The Path to Digital Engineering
The Path to Digital EngineeringThe Path to Digital Engineering
The Path to Digital Engineering
 
SOC Lessons from DevOps and SRE by Anton Chuvakin
SOC Lessons from DevOps and SRE by Anton ChuvakinSOC Lessons from DevOps and SRE by Anton Chuvakin
SOC Lessons from DevOps and SRE by Anton Chuvakin
 

Recently uploaded

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Parallel programming: how new language features help

  • 1. Mehran Davoudi Head of Development Department, Carane Resource Planning Systems http://ir.linkedin.com/in/mehrandvd/ Parallel Programming Towards Efficient Cloud Computing
  • 2. 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
  • 3. The Moore’s Law  The number of transistors on integrated circuits doubles approximately every two years. 2x every 2 year!
  • 4. Cloud Hardware Infrastructure Are they really used? Or just one part is doing the job!?
  • 5. Why is it so hard? Debugging Error Management Cancellation Continuation Shared Memory
  • 6. 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
  • 8. Error Management 100 threads are working In the middle, 3 of them fail What to do now!? Continue? Throw Exception? What about remained threads?
  • 9. 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!?
  • 10. How the technology helps to manage Async/Await Immutable collections Lambdas Tasks Aggregated Exceptions Threads Isolated Types
  • 11. 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
  • 12. TPL, PLINQ TPL (Task Parallel Library) Cancellation Continuation Error Management Cancellation Token Next line is not the next! Aggregate Exception PLINQ High level parallelizing tools Based on the famous LINQ Parallel.For() Enumerable .AsParallel()
  • 13. Async/Await: A real magic! TPL Native Threads
  • 15. 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
  • 16. 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
  • 17. Thanks QUESTIONS!?  Also you can contact me at:  Mail: Mehran.Davoudi@Hotmail.com  LinkedIn: http://ir.linkedin.com/in/mehrandvd  Facebook: www.facebook.com/mehrandvd

Editor's Notes

  1. این پرزنتیشن بیشتر در مورد ساختار نرم‌افزارهایی است که در کلود باید استفاده شود.
  2. محاسبات سنگین، تعداد تراکنش‌های بالا در ثانیهاگر اینطور نباشد این غول با یک کامپیوتر معمولی فرقی ندارد! شاید بدتر هم باشد!پلی استیشن ۳
  3. برنامه نویسی موازی سختهاولین نکته: این آقا موهاش ریخته!یه کتاب به این کلفتی فقط برای توضیح ۱۰ تا دستور و کلاس؟!
  4. بیشترین حجم مطالب درسی دانشگاه در برنامه نویسی موازی در مورد این قسمتهدر این ارائه قرار نیست روی این موارد زیاد صبحت کنیم. قبلا به اندازه کافی صحبت شده.هر چند که هر چقدر صبحت شه بازم کمه.
  5. الان دکمهF10 چکار می‌کنه!؟و اینجاس که برنامه نویس میگه واااای!
  6. و اینجاس که الگوریتم‌ها پیچیده می‌شه برنامه نویس میگه واااای!محاسبات سنگین = بیشتر از ۴۰۰ms
  7. ۲۰ تای در حال انجام کنسل شن؟ خطرناکمنتظر بمونیم: انتظار!
  8. آدمای زیادی روی این قضیه کار می‌کننطراحی مناسبزبان‌ها.به نظرتون کیا بیشتر درگیر قسمت‌های موازی بودن؟ اون دو سه تایی که بیشتر موهاشون ریخته!
  9. یک مفهوم قدرتمند که حاصل حدود ۱۰ سال کار یک تیم قوی است.
  10. این دو تکنولوژی تقریبا تمام مشکلات رو پوشش می‌دن.