اپلیکیشن اندرویدی فلشکارت آموزشی برنامهنویسی سیستم های توزیع شده با 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. راهنمای طراحی و پیادهسازی پروژه نهایی
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.