کتاب صوتی برنامهنویسی سیستم های توزیع شده با C و MPI
برنامهنویسی سیستمهای توزیع شده با C و MPI: دروازهای به دنیای محاسبات پیشرفته برنامهنویسی سیستمهای توزیع شده با C و MPI: فتح قلههای محاسبات پیشرفته آیا میخواهید به یک متخصص واقعی در زمینه برنامه...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره برنامهنویسی سیستم های توزیع شده با C و MPI
موضوع کلی: برنامه نویسی
موضوع میانی: سی (C)
📋 سرفصلهای دوره
- 1. مقدمهای بر دوره و اهداف یادگیری
- 2. چرا زبان C برای برنامهنویسی سیستمهای توزیع شده؟
- 3. مروری بر مفاهیم ضروری C: اشارهگرها و مدیریت حافظه
- 4. مروری بر مفاهیم ضروری C: ساختارها (Structs) و آرایهها
- 5. کامپایل، لینک و ساخت پروژههای C با Makefile
- 6. مقدمهای بر سیستمعامل: فرآیندها (Processes) و ریسهها (Threads)
- 7. ارتباط بین فرآیندی (IPC) در یک سیستم: Pipe و Shared Memory
- 8. مقدمهای بر شبکههای کامپیوتری و مدل TCP/IP
- 9. برنامهنویسی سوکت مقدماتی در C
- 10. دیباگ کردن برنامههای C با GDB
- 11. مقدمهای بر رایانش موازی و توزیع شده
- 12. معماریهای رایانش موازی: حافظه مشترک در مقابل حافظه توزیع شده
- 13. مدل برنامهنویسی پاس دادن پیام (Message Passing)
- 14. معیارهای عملکرد: افزایش سرعت (Speedup) و کارایی (Efficiency)
- 15. قانون امدال (Amdahl's Law) و قانون گوستافسون (Gustafson's Law)
- 16. مقیاسپذیری قوی (Strong Scaling) و ضعیف (Weak Scaling)
- 17. معرفی استاندارد MPI: تاریخچه و اهداف
- 18. نصب و راهاندازی محیط توسعه MPI
- 19. اولین برنامه MPI: سلام، دنیای موازی!
- 20. اجرای برنامههای MPI با mpirun و mpiexec
- 21. مفاهیم پایه: Communicator، Rank و Size
- 22. مقداردهی اولیه و نهایی کردن محیط MPI: `MPI_Init` و `MPI_Finalize`
- 23. ارتباط نقطه به نقطه (Point-to-Point): ارسال و دریافت پایه
- 24. ارسال مسدودکننده (Blocking Send): `MPI_Send`
- 25. دریافت مسدودکننده (Blocking Receive): `MPI_Recv`
- 26. بنبست (Deadlock) در ارتباطات مسدودکننده و راههای جلوگیری از آن
- 27. استفاده از تگ پیام (Message Tag) برای تمایز پیامها
- 28. بررسی وضعیت پیام دریافتی با ساختار `MPI_Status`
- 29. کاوش برای پیامهای ورودی: `MPI_Probe` و `MPI_Iprobe`
- 30. ارتباطات غیرمسدودکننده (Non-blocking): `MPI_Isend` و `MPI_Irecv`
- 31. تکمیل ارتباطات غیرمسدودکننده: `MPI_Wait` و `MPI_Test`
- 32. انتظار برای چندین عملیات غیرمسدودکننده: `MPI_Waitall` و `MPI_Waitany`
- 33. حالتهای مختلف ارسال: استاندارد، بافری، همگام و آماده
- 34. ارسال بافری (Buffered Send): `MPI_Bsend`
- 35. ارسال همگام (Synchronous Send): `MPI_Ssend`
- 36. عملیات ترکیبی ارسال و دریافت: `MPI_Sendrecv`
- 37. اندازهگیری زمان در برنامههای موازی: `MPI_Wtime`
- 38. مقدمهای بر ارتباطات گروهی (Collective Communications)
- 39. همگامسازی فرآیندها با `MPI_Barrier`
- 40. پخش سراسری داده (Broadcast): `MPI_Bcast`
- 41. پخش قطعهای داده (Scatter): `MPI_Scatter`
- 42. جمعآوری داده (Gather): `MPI_Gather`
- 43. جمعآوری سراسری داده (All-gather): `MPI_Allgather`
- 44. ارسال و دریافت از همه به همه: `MPI_Alltoall`
- 45. عملیات کاهشی (Reduction): `MPI_Reduce`
- 46. عملگرهای کاهشی از پیش تعریف شده (MPI_SUM, MPI_MAX, ...)
- 47. عملیات کاهشی سراسری: `MPI_Allreduce`
- 48. عملیات اسکن (پیشوند): `MPI_Scan`
- 49. نسخههای برداری ارتباطات گروهی: `MPI_Gatherv`, `MPI_Scatterv`, `MPI_Allgatherv`
- 50. انتخاب عملیات گروهی مناسب برای هر سناریو
- 51. مقدمهای بر انواع داده مشتق شده (Derived Datatypes)
- 52. ایجاد نوع داده پیوسته (Contiguous)
- 53. ایجاد نوع داده برداری (Vector)
- 54. ایجاد نوع داده ایندکس شده (Indexed)
- 55. ایجاد نوع داده ساختاری (Struct)
- 56. ثبت نهایی نوع داده جدید: `MPI_Type_commit`
- 57. مفهوم گروهها (Groups) و Communicator های جدید
- 58. ایجاد یک گروه از فرآیندها
- 59. ایجاد Communicator جدید از یک گروه: `MPI_Comm_create`
- 60. تقسیم یک Communicator به زیرگروهها: `MPI_Comm_split`
- 61. مقدمهای بر توپولوژیهای مجازی (Virtual Topologies)
- 62. توپولوژیهای دکارتی (Cartesian)
- 63. ایجاد یک شبکه دکارتی: `MPI_Cart_create`
- 64. بهدست آوردن مختصات و همسایهها در شبکه دکارتی
- 65. توپولوژیهای گرافی (Graph)
- 66. مقدمهای بر ارتباطات یکطرفه (One-Sided Communication / RMA)
- 67. ایجاد پنجره حافظه (Memory Window): `MPI_Win_create`
- 68. عملیات نوشتن از راه دور: `MPI_Put`
- 69. عملیات خواندن از راه دور: `MPI_Get`
- 70. عملیات تجمعی از راه دور: `MPI_Accumulate`
- 71. همگامسازی در ارتباطات یکطرفه: Fences
- 72. همگامسازی در ارتباطات یکطرفه: Locks
- 73. چالش ورودی/خروجی موازی (Parallel I/O)
- 74. مقدمهای بر MPI-IO
- 75. باز کردن و بستن فایلهای موازی: `MPI_File_open`
- 76. تنظیم نما و اشارهگر فایل: `MPI_File_set_view`
- 77. عملیات خواندن و نوشتن گروهی در فایلها
- 78. عملیات خواندن و نوشتن غیرگروهی در فایلها
- 79. تحلیل عملکرد و ابزارهای پروفایلینگ (Profiling)
- 80. شناسایی گلوگاههای ارتباطی در برنامه
- 81. استراتژیهای توازن بار (Load Balancing): ایستا و پویا
- 82. همپوشانی محاسبات و ارتباطات برای افزایش کارایی
- 83. تأثیر تأخیر (Latency) و پهنای باند (Bandwidth) بر عملکرد
- 84. الگوریتمهای موازی: ضرب ماتریس در بردار
- 85. الگوریتمهای موازی: ضرب ماتریس در ماتریس (الگوریتم Cannon)
- 86. الگوریتمهای موازی: مرتبسازی (Odd-Even Sort)
- 87. مطالعه موردی: حل معادلات دیفرانسیل با مشتقات جزئی (روش ژاکوبی)
- 88. مطالعه موردی: شبیهسازی N-Body
- 89. الگوهای طراحی موازی: استاد-کارگر (Master-Worker)
- 90. الگوهای طراحی موازی: SPMD (Single Program, Multiple Data)
- 91. مقدمهای بر برنامهنویسی ترکیبی (Hybrid Programming)
- 92. ترکیب MPI و OpenMP
- 93. ملاحظات Thread Safety در MPI: `MPI_Init_thread`
- 94. ترکیب MPI و Pthreads
- 95. مدیریت خطا در MPI
- 96. استفاده از ویژگیهای مدرن C (C11/C17) در برنامههای MPI
- 97. بهترین شیوهها در کدنویسی MPI
- 98. جمعبندی دوره و مرور مفاهیم کلیدی
- 99. آینده استاندارد MPI و مسیرهای پیش رو
- 100. راهنمای طراحی و پیادهسازی پروژه نهایی
برای آموختن، همیشه لازم نیست بخوانید
گاهی بهترین فرصت یادگیری زمانی است که در مسیر رفتوآمد هستید، قدم میزنید، استراحت میکنید یا کارهای روزمرهتان را انجام میدهید. محتوای صوتی کمک میکند از این لحظهها برای شنیدن، اندیشیدن و آشنایی با موضوعات تازه بهره ببرید.
◷
یادگیری در دل روزمرگی
از زمان رفتوآمد، پیادهروی یا استراحت برای شنیدن محتوای مفید استفاده کنید؛ بدون آنکه همیشه به کتاب چاپی یا صفحه نمایش نیاز داشته باشید.
◎
تجربهای شنیداری و دلنشین
با روایت صوتی، توضیحات گفتاری و فضای شنیداری هر محتوا همراه شوید و متناسب با سلیقه خود، شیوه تازهای برای دریافت مطالب تجربه کنید.
✦
گسترش دانش و دیدگاه
با موضوعات متنوع آشنا شوید، ایدههای تازه کشف کنید و فرصت بیشتری برای یادگیری مستمر و پرورش کنجکاوی خود بسازید.
♫
همراه با سبک زندگی شما
محتوای صوتی را متناسب با برنامه روزانه خود انتخاب کنید و در زمان مناسب، شنیدن را به بخشی از عادتهای شخصیتان تبدیل کنید.
کتاب صوتی یا پادکست؟
کتاب صوتی
راهی برای همراه شدن با محتوای یک کتاب از طریق شنیدن. بسته به اثر، میتوانید داستانها، آموزشها، مفاهیم تخصصی یا مطالب کاربردی را در قالب روایت و بیان صوتی دنبال کنید.
مناسب برای شنیدن و مرور محتوای کتابها
پادکست آموزشی
فرصتی برای دنبال کردن موضوعات مشخص در قالب گفتوگو، روایت، توضیح آموزشی یا مجموعهای از قسمتهای صوتی؛ مناسب برای کشف ایدهها و آشنایی با دیدگاههای گوناگون.
مناسب برای یادگیری موضوعی و شنیدن دیدگاههای تازه
هر جا که هستید، شنیدن را آغاز کنید
با دستگاه مناسب خود، محتوای صوتی را به آسانی دنبال کنید.
▯
گوشی هوشمند
اندروید و آیفون
▣
تبلت
برای شنیدن و دنبال کردن محتوا
▤
رایانه و لپتاپ
با پخشکننده صوتی سازگار
♫
هدفون و بلندگو
برای شنیدن متناسب با محیط
چطور از تجربه شنیدن بیشتر بهره ببریم؟
✦ زمان مناسبی برای شنیدن انتخاب کنید؛ زمانی که بتوانید با آرامش به محتوا توجه داشته باشید.
✦ برای مطالب آموزشی، نکتههای مهم را یادداشت کنید یا پس از پایان شنیدن، آنها را مرور کنید.
✦ اگر محتوا طولانی است، آن را در چند نوبت دنبال کنید تا فرصت بیشتری برای درک و مرور داشته باشید.
✦ هنگام رانندگی یا انجام کارهای نیازمند تمرکز، ایمنی را در اولویت قرار دهید و از شیوه شنیدنی استفاده کنید که حواس شما را مختل نکند.
هر شنیدن، فرصتی برای کشف است
با کتابهای صوتی و پادکستهای آموزشی، دنیای تازهای از ایدهها، روایتها و آموختنیها را به لحظههای خود اضافه کنید.
express24.ir
امکانات پخش، ادامه شنیدن و دسترسی آفلاین به نوع فایل، دستگاه و نرمافزار مورد استفاده بستگی دارد.
تگها:
C Programming
C#
Distributed Systems
Message Passing Interface
MPI
MPI C
Parallel programming
Programming
آموزش C++
برنامه نویسی
برنامه نویسی C++
برنامه نویسی موازی
دوره آموزشی C#
سیستم های توزیع شده
یادگیری C++
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.