کتاب صوتی تسلط بر برنامهنویسی همزمان و موازی در هسکل: افزایش کارایی و مقیاسپذیری سیستمها
تسلط بر برنامهنویسی همزمان و موازی در هسکل: افزایش کارایی و مقیاسپذیری سیستمها تسلط بر برنامهنویسی همزمان و موازی در هسکل: افزایش کارایی و مقیاسپذیری سیستمها آیا سیستمهای شما در زیر بار سنگین، ...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره تسلط بر برنامهنویسی همزمان و موازی در هسکل: افزایش کارایی و مقیاسپذیری سیستمها
موضوع کلی: برنامهنویسی عملکرد بالا و مقیاسپذیر
موضوع میانی: اصول و الگوهای برنامهنویسی موازی و همگام
📋 سرفصلهای دوره
- 1. مقدمه: چرا هسکل برای برنامهنویسی همزمان و موازی؟
- 2. بخش اول: مبانی و پیشنیازها
- 3. مدل ارزیابی در هسکل: ارزیابی کند (Lazy Evaluation)
- 4. فرم نرمال ضعیف سر (WHNF) و فرم نرمال (NF)
- 5. مفهوم Thunk و نقش آن در ارزیابی کند
- 6. خلوص (Purity) و تاثیر آن بر همزمانی و موازیسازی
- 7. سیستم زماناجرای GHC (GHC Runtime System)
- 8. مفهوم Capability و HEC (Haskell Execution Context)
- 9. زمانبند (Scheduler) در GHC و نحوه کار آن
- 10. تمایز کلیدی بین همزمانی (Concurrency) و موازیسازی (Parallelism)
- 11. آشنایی با کامپایلر GHC و فلگهای مرتبط: threaded- و rtsopts-
- 12. بخش دوم: برنامهنویسی همزمان (Concurrency)
- 13. شروع کار با همزمانی: معرفی تابع forkIO
- 14. مفهوم Thread و ThreadId در هسکل
- 15. مدیریت چرخهی حیات Threadها: killThread و myThreadId
- 16. ارتباط اولیه بین Threadها: معرفی MVar
- 17. MVar به عنوان یک متغیر همزمان قابل نوشتن و خواندن
- 18. استفاده از MVar به عنوان قفل (Lock)
- 19. الگوی تولیدکننده-مصرفکننده با استفاده از MVar
- 20. پیادهسازی یک کانال ارتباطی ساده با MVar
- 21. مدیریت منابع با MVar: پیادهسازی یک Pool
- 22. کانالهای ارتباطی: معرفی Chan
- 23. ارتباط یک-به-یک و یک-به-چند با Chan
- 24. پیادهسازی کانالهای تکراری (Duplicate Channels)
- 25. مدیریت استثناها (Exceptions) در محیط همزمان
- 26. استثناهای همزمان (Asynchronous Exceptions) و چالشهای آن
- 27. توابع catch, try و handle برای مدیریت استثناها
- 28. کنترل تحویل استثناهای همزمان: mask و uninterruptibleMask
- 29. بخش سوم: حافظه تراکنشی نرمافزاری (Software Transactional Memory - STM)
- 30. معرفی STM: راه حلی برای بنبست و شرایط مسابقه
- 31. مفهوم تراکنش (Transaction) و اتمی بودن (Atomicity)
- 32. متغیرهای تراکنشی: معرفی TVar
- 33. توابع بنیادین STM: اatomically, readTVar, writeTVar
- 34. قدرت ترکیبپذیری (Composability) در STM
- 35. مسدود کردن و تلاش مجدد: تابع retry
- 36. ترکیب تراکنشهای جایگزین: تابع orElse
- 37. پیادهسازی الگوهای همزمانی رایج با STM
- 38. متغیرهای تراکنشی پیشرفتهتر: TChan, TQueue, TMVar
- 39. مقایسه MVar و TMVar
- 40. مدیریت استثناها در تراکنشهای STM
- 41. STM در عمل: پیادهسازی یک سیستم حساب بانکی ساده
- 42. الگوهای طراحی پیشرفته با STM
- 43. بخش چهارم: برنامهنویسی موازی (Parallelism)
- 44. مبانی موازیسازی: ایجاد جرقهها (Sparks)
- 45. مونَد Eval و نقش آن در کنترل ارزیابی
- 46. توابع بنیادین موازیسازی: rpar و rseq
- 47. ارتباط بین rpar/rseq و مدل ارزیابی کند (WHNF/NF)
- 48. استراتژیهای ارزیابی (Evaluation Strategies): انتزاعی برای موازیسازی
- 49. معرفی کتابخانه parallel و تابع using
- 50. استراتژیهای پایه: rpar, rseq, rdeepseq
- 51. ترکیب استراتژیها برای ساختارهای داده پیچیده
- 52. موازیسازی لیستها: استراتژی evalList
- 53. موازیسازی ساختارهای Traversable: استراتژی evalTraversable
- 54. نوشتن استراتژیهای ارزیابی سفارشی
- 55. الگوریتمهای موازی کلاسیک: map و reduce موازی
- 56. مثال عملی: موازیسازی الگوریتم k-means
- 57. مثال عملی: موازیسازی یک جستجوی عددی
- 58. قانون امدال (Amdahl's Law) و محدودیتهای موازیسازی
- 59. مشکلات رایج در موازیسازی: دانهبندی (Granularity)
- 60. مشکلات رایج: وابستگی دادهها و گلوگاههای ترتیبی
- 61. بخش پنجم: پروفایلسنجی و بهینهسازی عملکرد
- 62. چرا اندازهگیری عملکرد ضروری است؟
- 63. فعالسازی پروفایلسنجی در GHC: فلگهای prof- و fprof-auto-
- 64. آشنایی با Cost Centre و نحوه تعریف آنها
- 65. تحلیل خروجی پروفایلسنجی (فایل prof.)
- 66. پروفایلسنجی حافظه (Heap Profiling)
- 67. انواع پروفایل حافظه: by type, by cost centre, biographica
- 68. معرفی ابزار ThreadScope برای تحلیل برنامههای موازی و همزمان
- 69. تولید eventlog برای ThreadScope با فلگ l-
- 70. تحلیل نمودارهای ThreadScope: فعالیت HECها و GC
- 71. شناسایی جرقههای ایجاد شده، اجرا شده و هدر رفته (Fizzled Sparks)
- 72. تشخیص و رفع مشکلات عملکردی با استفاده از ابزارهای پروفایلسنجی
- 73. تنظیمات پیشرفته سیستم زماناجرای GHC (RTS Options)
- 74. تنظیم تعداد Capabilityها با N-
- 75. بهینهسازی Garbage Collector برای برنامههای موازی
- 76. مطالعه موردی: پروفایلسنجی و بهینهسازی یک برنامه از ابتدا تا انتها
- 77. بخش ششم: کتابخانهها و الگوهای پیشرفته
- 78. معرفی کتابخانه async: همزمانی ساختاریافته (Structured Concurrency)
- 79. مقایسه async و forkIO
- 80. توابع اصلی async: اasync, wait, poll, cancel
- 81. اجرای همزمان و جمعآوری نتایج با waitAny و waitEither
- 82. رقابت بین تسکها: تابع race
- 83. استفاده از اپلیکاتیو Concurrently برای سادگی کد
- 84. مدیریت استثناها در کتابخانه async
- 85. پیادهسازی الگوی Worker Pool با استفاده از async
- 86. الگوهای ارتباطی پیشرفته: کانالهای نامحدود و محدود
- 87. موازیسازی دادهمحور (Data Parallelism)
- 88. معرفی مختصر کتابخانههای Repa و massiv برای پردازش آرایهای با عملکرد بالا
- 89. مفهوم فیوژن (Fusion) و حذف ساختارهای داده میانی
- 90. مقدمهای بر برنامهنویسی توزیعشده با Cloud Haskell
- 91. بخش هفتم: مطالعات موردی و جمعبندی
- 92. مطالعه موردی ۱: ساخت یک وب کرالر (Web Crawler) همزمان
- 93. مطالعه موردی ۲: پیادهسازی یک سرور چت همزمان با STM
- 94. مطالعه موردی ۳: پردازش موازی یک مجموعه داده بزرگ
- 95. مطالعه موردی ۴: حل یک مسئله علمی با استفاده از استراتژیهای موازیسازی
- 96. بازبینی الگوهای طراحی کلیدی در برنامهنویسی همزمان
- 97. بازبینی الگوهای طراحی کلیدی در برنامهنویسی موازی
- 98. اشتباهات متداول و نحوه اجتناب از آنها
- 99. جمعبندی و نگاهی به آینده برنامهنویسی عملکرد بالا در هسکل
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
تگها:
Async Haskell
Concurrent Patterns
Concurrent programming
Distributed Systems
Erlang
Fsharp
Functional Programming
Haskell
Haskell Concurrency
Haskell Parallelism
High-Performance Computing
Multicore Programming
Parallel Patterns
Parallel programming
performance optimization
scalability
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.