آموزش برنامه نویسی همگام و موازی: طراحی اپلیکیشن

Async and Parallel Programming: Application Design

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: آیا باید برنامه های دات نت خود را پاسخگوتر کنید؟ سریعتر بدوید؟ در سخت افزار چند هسته ای امروزی، برنامه نویسی غیر همگام و موازی ممکن است راه حل باشد. این دوره (قسمت 2 از 2) طراحی ایمن و کارآمد برنامه های غیرهمزمان و موازی دات نت را مورد بحث قرار می دهد. این بر اساس مقدمه ارائه شده در قسمت 1 ("مقدمه ای بر برنامه نویسی ناهمزمان و موازی در دات نت 4")، جزئیات بیشتری را در مورد عملکرد داخلی Task Parallel Library، خطرات اجرای همزمان، و انتزاعات سطح بالاتر موجود ارائه می کند. در TPL برای کمک به شما. دوره با ترکیب این مفاهیم و ارائه الگوهای مشترک برای ساختن نرم افزارهای موازی سریع و صحیح به پایان می رسد. این دوره برای کسانی است که در .NET 4 یا Silverlight 5 کار می کنند.

سرفصل ها و درس ها

درک خطرات همزمانی Understanding the Dangers of Concurrency

  • مقدمه و دستور کار Introductions and Agenda

  • مشکلات همزمانی The pitfalls of concurrency

  • صحت تضمین می کند: ایمنی، سرزندگی Correctness guarantees: safety, liveness

  • اصطلاحات: شرایط مسابقه، بخش های بحرانی Terminology: race conditions, critical sections

  • شرایط مسابقه شامل منابع مشترک Race conditions involving shared resources

  • نسخه آزمایشی 1: موازی کردن یک برنامه جستجوی فایل Logfile Demo 1: parallelizing a Logfile Search app

  • نسخه ی نمایشی 1: طرح کد منبع Demo 1: source code layout

  • دمو 1: از ترتیبی به موازی Demo 1: from sequential to parallel

  • نسخه ی نمایشی 1: خلاصه ای از چرایی خرابی Demo 1: summary of why it's broken

  • حل شرایط مسابقه --- یک نمای کلی Solving race conditions --- an overview

  • راه حل 1: قفل کردن Solution 1: locking

  • نسخه ی نمایشی 2: راه حل با استفاده از قفل Demo 2: solution using locking

  • راه حل 2: به هم پیوستن Solution 2: interlocking

  • نسخه ی نمایشی 3: راه حل با استفاده از قفل کردن Demo 3: solution using interlocking

  • راه حل 3: بدون قفل Solution 3: lock-free

  • نسخه ی نمایشی 4: راه حل بدون قفل Demo 4: lock-free solution

  • خطر اشیاء مشترک The danger of shared objects

  • Thread-safety و راه حل هایی برای اشیاء مشترک Thread-safety and solutions to shared objects

  • نسخه ی نمایشی 5: استفاده از اشیاء ایمن برای موضوع Demo 5: using thread-safe objects

  • اصول اولیه همگام سازی Synchronization primitives

  • ساختارهای داده همزمان: مجموعه های ایمن رشته ای The concurrent data structures: thread-safe collections

  • درس های اجرا... Performance lessons...

  • نسخه ی نمایشی 6: بهبود عملکرد Demo 6: improving performance

  • خلاصه و مراجع Summary and References

مدل اجرا و انواع موازی سازی Execution Model and Types of Parallelism

  • مقدمه و دستور کار Introductions and Agenda

  • وظایف: نقش توسعه دهنده در مقابل نقش .NEt Tasks: developer's role vs. .NEt's role

  • مدل اجرا: نمای سطح بالا Execution model: high-level view

  • دانه بندی کار: چقدر سبک است؟ Task granularity: just how lightweight?

  • مدل اجرا: وظایف در مقابل نخ ها در مقابل هسته ها Execution model: tasks vs. threads vs. cores

  • برنامه ریزی کار سفارشی Custom task scheduling

  • مشاهدات اضافی در مورد زمانبندی کار Additional observations regarding task scheduler

  • کار دزدی در جزئیات Work-stealing in detail

  • دو فرض مهم: کوتاه مدت، ترتیب تصادفی Two important assumptions: short-lived, random order

  • گزینه Fairness برای اجرای وظایف به ترتیب Fairness option to execute tasks in order

  • گزینه LongRunning برای وظایف> 1-2 ثانیه LongRunning option for tasks > 1-2 seconds

  • دمو 1: اجرای 100 کار طولانی مدت Demo 1: executing 100 long-running tasks

  • نسخه ی نمایشی 1: تلاش برای راه حل با رفتار پیش فرض Demo 1: solution attempt with default behavior

  • نسخه ی نمایشی 1: تلاش برای راه حل با گزینه طولانی مدت Demo 1: solution attempt with long-running option

  • راه حلی برای 100 کار طولانی مدت Solution for 100 long-running tasks

  • نسخه ی نمایشی 2: راه حل مناسب در عمل Demo 2: proper solution in action

  • Parallel.For = راه حل مختصرتر Parallel.For = more concise solution

  • انواع موازی سازی Types of Parallelism

  • موازی سازی داده ها Data parallelism

  • موازی کاری Task parallelism

  • موازی جریان داده Dataflow parallelism

  • به طرز شرم آور موازی Embarrassingly parallel

  • پشتیبانی از TPL برای انواع موازی TPL support for parallelism types

  • Parallel.For, .Foreach, .Invoke Parallel.For, .Foreach, .Invoke

  • موازی سازی ساختار یافته (چنگال-پیوستن). Structured (fork-join) parallelism

  • نسخه آزمایشی 3: نمای کلی برنامه Mandelbrot Demo 3: Mandelbrot app overview

  • نسخه ی نمایشی 3: نسخه متوالی Demo 3: sequential version

  • نسخه ی نمایشی 3: Parallel.For نسخه Demo 3: Parallel.For version

  • پارتیشن بندی داده ها Data partitioning

  • پارتیشن بندی داده های سفارشی Custom data partitioning

  • مدیریت استثنا با کلاس Parallel Exception handling with Parallel class

  • بیرون آمدن از یک حلقه موازی Breaking out of a Parallel loop

  • لغو یک حلقه موازی Cancelling a Parallel loop

  • نسخه ی نمایشی 4: برنامه Mandelbrot با لغو Demo 4: Mandelbrot app with cancellation

  • خلاصه و مراجع Summary and References

طرح ها و الگوهای برنامه نویسی موازی Designs and Patterns for Parallel Programming

  • مقدمه و دستور کار Introductions and Agenda

  • مشکل طراحی 1: 100+ عملیات فشرده CPU Design Problem 1: 100+ CPU-intensive operations

  • مشکل طراحی 2: دانلود بیش از 20 صفحه وب Design Problem 2: download 20+ web pages

  • مشکل طراحی 3: وظیفه ثبت برنامه Design Problem 3: application logging task

  • الگوهای موازی --- فهرست اصلی Parallel Patterns --- master list

  • الگوی خط لوله Pipeline pattern

  • الگوی جریان داده Dataflow pattern

  • افزایش موازی در خط لوله و جریان داده Increasing parallelism in pipeline and dataflow

  • ساختارهای داده همزمان --- فهرست اصلی Concurrent Data Structures --- master list

  • ConcurrentQueue T ConcurrentQueue T

  • نسخه آزمایشی 1: مروری بر برنامه داده کاوی Netflix Demo 1: overview of Netflix data mining app

  • نسخه آزمایشی 1: نمای کلی راه حل موازی (v1) Demo 1: overview of parallel solution (v1)

  • دمو 1: پیاده سازی با ConcurrentDictionary T Demo 1: implementation with ConcurrentDictionary T

  • نسخه ی نمایشی 1: نتایج Demo 1: results

  • الگوی تولید کننده-مصرف کننده Producer-Consumer pattern

  • پیاده سازی تولید کننده-مصرف کننده با BlockingCollection T Implementation of Producer-Consumer with BlockingCollection T

  • نسخه ی نمایشی 2: راه حل Netflix با استفاده از تولید کننده-مصرف کننده (v2) Demo 2: Netflix solution using Producer-Consumer (v2)

  • نسخه ی نمایشی 2: نتایج Demo 2: results

  • الگوی MapReduce MapReduce pattern

  • پیاده سازی MapReduce Implementing MapReduce

  • نسخه ی نمایشی 3: نتفلیکس با استفاده از MapReduce Demo 3: Netflix using MapReduce

  • نسخه ی نمایشی 3: نتایج Demo 3: results

  • LINQ موازی (PLINQ) Parallel LINQ (PLINQ)

  • نسخه ی نمایشی 4: نتفلیکس با PLINQ Demo 4: Netflix with PLINQ

  • الگوی اجرای گمانه زنی Speculative Execution pattern

  • APM: الگوی مدل برنامه‌نویسی ناهمزمان APM: Asynchronous Programming Model pattern

  • نمونه APM ورودی/خروجی فایل async APM example of async file I/O

  • نسخه آزمایشی 5: تاریخچه سهام با اجرای سوداگرانه و APM Demo 5: Stock History with Speculative Execution and APM

  • چالش طراحی ورودی/خروجی موازی Parallel I/O design challenge

  • خلاصه و مراجع Summary and References

نمایش نظرات

آموزش برنامه نویسی همگام و موازی: طراحی اپلیکیشن
جزییات دوره
3h 45m
89
Pluralsight (پلورال سایت) Pluralsight (پلورال سایت)
(آخرین آپدیت)
743
4.8 از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Dr. Joe Hummel Dr. Joe Hummel

جو بر روی محاسبات با عملکرد بالا و زبانهای دات نت تمرکز دارد. جو از سال 1992 در فن آوری های مایکروسافت تخصص دارد و در ابتکار عمل محاسبات با عملکرد بالا (HPC سرور ، سرور خوشه محاسبه ، MPI ، MPI.NET ، OpenMP ، PFx) ، فناوری های وب (ASP.NET و Ajax Extensions) کاملاً تبحر دارد. برای ASP.NET) ، دسک تاپ (WinForms) ، LINQ ، .NET Framework و محبوب ترین زبانها (VC ++ ، C # ، F # و VB). جو دو کتاب در زمینه توسعه ویندوز به طور مشترک تألیف کرده است ، میزبان بیش از 60 پخش اینترنتی MSDN بوده و دوره هایی را در سراسر جهان تدریس کرده است. جو دکترای علوم کامپیوتر (UC-Irvine ، 1997) دارد ، از این رو "دکتر جو" است. کار پایان نامه وی در زمینه بهینه سازی کامپایلرها برای رایانه های موازی بود. جو یک استاد ممتاز علوم کامپیوتر است و دارای انتشارات تحقیقاتی متعددی در زمینه بهینه سازی کامپایلر و آموزش CS است. جو یک ملوان مشتاق است و به همراه همسر و دخترش در منطقه شیکاگو اقامت دارد. وقتی جو محاسبه نمی کند ، با خانواده و دوستانش در دریاچه میشیگان قایقرانی می کند.