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

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

نمایش نظرات

نظری ارسال نشده است.

آموزش برنامه نویسی همگام و موازی: طراحی اپلیکیشن
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
3h 45m
89
Pluralsight (پلورال سایت) pluralsight-small
09 خرداد 1391 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
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 است. جو یک ملوان مشتاق است و به همراه همسر و دخترش در منطقه شیکاگو اقامت دارد. وقتی جو محاسبه نمی کند ، با خانواده و دوستانش در دریاچه میشیگان قایقرانی می کند.

Pluralsight (پلورال سایت)

Pluralsight یکی از پرطرفدارترین پلتفرم‌های آموزش آنلاین است که به میلیون‌ها کاربر در سراسر جهان کمک می‌کند تا مهارت‌های خود را توسعه دهند و به روز رسانی کنند. این پلتفرم دوره‌های آموزشی در زمینه‌های فناوری اطلاعات، توسعه نرم‌افزار، طراحی وب، مدیریت پروژه، و موضوعات مختلف دیگر را ارائه می‌دهد.

یکی از ویژگی‌های برجسته Pluralsight، محتوای بروز و با کیفیت آموزشی آن است. این پلتفرم با همکاری با توسعه‌دهندگان و کارشناسان معتبر، دوره‌هایی را ارائه می‌دهد که با توجه به تغییرات روزافزون در صنعت فناوری، کاربران را در جریان آخرین مفاهیم و تکنولوژی‌ها نگه می‌دارد. این امر به کاربران این اطمینان را می‌دهد که دوره‌هایی که در Pluralsight می‌پذیرند، با جدیدترین دانش‌ها و تجارب به روز شده‌اند.