In these presentation I talk about Parallel Programming, its necessities, challenges.
Then I talk about how the syntax of languages like C# advances to improve the expressiveness of parallel programming.
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!
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()
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
این پرزنتیشن بیشتر در مورد ساختار نرمافزارهایی است که در کلود باید استفاده شود.
محاسبات سنگین، تعداد تراکنشهای بالا در ثانیهاگر اینطور نباشد این غول با یک کامپیوتر معمولی فرقی ندارد! شاید بدتر هم باشد!پلی استیشن ۳
برنامه نویسی موازی سختهاولین نکته: این آقا موهاش ریخته!یه کتاب به این کلفتی فقط برای توضیح ۱۰ تا دستور و کلاس؟!
بیشترین حجم مطالب درسی دانشگاه در برنامه نویسی موازی در مورد این قسمتهدر این ارائه قرار نیست روی این موارد زیاد صبحت کنیم. قبلا به اندازه کافی صحبت شده.هر چند که هر چقدر صبحت شه بازم کمه.
الان دکمهF10 چکار میکنه!؟و اینجاس که برنامه نویس میگه واااای!
و اینجاس که الگوریتمها پیچیده میشه برنامه نویس میگه واااای!محاسبات سنگین = بیشتر از ۴۰۰ms
۲۰ تای در حال انجام کنسل شن؟ خطرناکمنتظر بمونیم: انتظار!
آدمای زیادی روی این قضیه کار میکننطراحی مناسبزبانها.به نظرتون کیا بیشتر درگیر قسمتهای موازی بودن؟ اون دو سه تایی که بیشتر موهاشون ریخته!
یک مفهوم قدرتمند که حاصل حدود ۱۰ سال کار یک تیم قوی است.