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

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 semesterRafi Ullah
 
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 Jürgen Ambrosi
 
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 Dawn Simpson
 
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 NeedsTorben Hoffmann
 
ELMSLN @ OpenEd 14
ELMSLN @ OpenEd 14ELMSLN @ OpenEd 14
ELMSLN @ OpenEd 14btopro
 
A Tale of Contemporary Software
A Tale of Contemporary SoftwareA Tale of Contemporary Software
A Tale of Contemporary SoftwareYun Zhi Lin
 
Bilot 3mode
Bilot 3modeBilot 3mode
Bilot 3modeBilot
 
CS5032 Lecture 2: Failure
CS5032 Lecture 2: FailureCS5032 Lecture 2: Failure
CS5032 Lecture 2: FailureJohn Rooksby
 
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 2015NoSQLmatters
 
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)Haytham Elkhoja
 
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 2019Alvar Lumberg
 
Net meets multi core
Net meets multi coreNet meets multi core
Net meets multi coreSteve Mylroie
 
Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013Agilelessons scanagile-final 2013
Agilelessons scanagile-final 2013lokori
 
Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Rethinking enterprise software - Codemotion 2014
Rethinking enterprise software - Codemotion 2014Alberto Brandolini
 
Rethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - BrandoliniRethinking Enterprise Software - Brandolini
Rethinking Enterprise Software - BrandoliniCodemotion
 
Small is beautiful
Small is beautifulSmall is beautiful
Small is beautifulVivek Singh
 
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 GuideVoltDB
 
The Path to Digital Engineering
The Path to Digital EngineeringThe Path to Digital Engineering
The Path to Digital EngineeringElizabeth Steiner
 
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 ChuvakinAnton Chuvakin
 

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

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

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. این دو تکنولوژی تقریبا تمام مشکلات رو پوشش می‌دن.