اپلیکیشن اندرویدی فلشکارت آموزشی مقدمهای بر MPI (Message Passing Interface)
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره مقدمهای بر MPI (Message Passing Interface)
موضوع کلی: برنامه نویسی
موضوع میانی: محاسبات سطح بالا (High-Performance Computing)
📋 سرفصلهای دوره
- 1. مقدمهای بر محاسبات موازی
- 2. چرا به پردازش موازی نیاز داریم؟ قانون مور و فراتر از آن
- 3. معماریهای موازی: حافظه مشترک در مقابل حافظه توزیع شده
- 4. طبقهبندی فلین (SISD, SIMD, MISD, MIMD)
- 5. آشنایی با محاسبات سطح بالا (HPC) و خوشههای کامپیوتری
- 6. مدلهای برنامهنویسی موازی: MPI، OpenMP و دیگران
- 7. تاریخچه و اهداف MPI (Message Passing Interface)
- 8. استاندارد MPI و نسخههای مختلف آن
- 9. راهاندازی محیط توسعه: کامپایلرها و کتابخانههای MPI
- 10. اولین برنامه MPI: "سلام، دنیای موازی!"
- 11. مفاهیم پایه: Communicator، Rank و Size
- 12. مقداردهی اولیه و پایانی محیط MPI: `MPI_Init` و `MPI_Finalize`
- 13. دریافت شناسه و تعداد فرآیندها: `MPI_Comm_rank` و `MPI_Comm_size`
- 14. مدل ارتباط نقطه به نقطه (Point-to-Point)
- 15. ارسال مسدودکننده (Blocking Send): `MPI_Send`
- 16. دریافت مسدودکننده (Blocking Receive): `MPI_Recv`
- 17. تجزیه و تحلیل آرگومانهای `MPI_Send` و `MPI_Recv`
- 18. مفهوم بنبست (Deadlock) و راههای جلوگیری از آن
- 19. نقش بافر در ارتباطات MPI
- 20. شیء وضعیت (Status Object): `MPI_Status`
- 21. دریافت اطلاعات از `MPI_Status`: منبع، تگ و خطا
- 22. بررسی وجود پیام بدون دریافت آن: `MPI_Probe`
- 23. دریافت تعداد عناصر پیام: `MPI_Get_count`
- 24. انگیزه استفاده از ارتباطات غیرمسدودکننده (Non-blocking)
- 25. ارسال غیرمسدودکننده: `MPI_Isend`
- 26. دریافت غیرمسدودکننده: `MPI_Irecv`
- 27. شیء درخواست (Request Object): `MPI_Request`
- 28. انتظار برای تکمیل یک درخواست: `MPI_Wait`
- 29. تست تکمیل یک درخواست بدون انتظار: `MPI_Test`
- 30. مدیریت چندین درخواست: `MPI_Waitall` و `MPI_Testall`
- 31. مدیریت چندین درخواست: `MPI_Waitany` و `MPI_Testany`
- 32. حالتهای مختلف ارسال: همزمان (Synchronous) `MPI_Ssend`
- 33. حالتهای مختلف ارسال: بافری (Buffered) `MPI_Bsend`
- 34. حالتهای مختلف ارسال: آماده (Ready) `MPI_Rsend`
- 35. ترکیب ارسال و دریافت: `MPI_Sendrecv`
- 36. جایگزینی بافر با `MPI_Sendrecv_replace`
- 37. مقدمهای بر ارتباطات جمعی (Collective Communications)
- 38. همگامسازی تمام فرآیندها: `MPI_Barrier`
- 39. پخش سراسری داده از یک فرآیند به همه: `MPI_Bcast`
- 40. توزیع داده از یک فرآیند به همه: `MPI_Scatter`
- 41. جمعآوری داده از همه فرآیندها در یک فرآیند: `MPI_Gather`
- 42. جمعآوری داده از همه و توزیع آن به همه: `MPI_Allgather`
- 43. ارتباط همه با همه: `MPI_Alltoall`
- 44. عملیات کاهشی (Reduction): مفاهیم و عملگرها (`MPI_Op`)
- 45. اجرای عملیات کاهشی و جمعآوری نتیجه: `MPI_Reduce`
- 46. اجرای عملیات کاهشی و پخش نتیجه به همه: `MPI_Allreduce`
- 47. محاسبه پیشوندی (Prefix Sum) با `MPI_Scan`
- 48. کاهش-پخش ترکیبی: `MPI_Reduce_scatter`
- 49. ارتباطات جمعی با اندازههای متغیر: `MPI_Gatherv` و `MPI_Scatterv`
- 50. ارتباطات جمعی با اندازههای متغیر: `MPI_Allgatherv` و `MPI_Alltoallv`
- 51. استفاده از `MPI_IN_PLACE` در ارتباطات جمعی
- 52. ارتباطات جمعی غیرمسدودکننده: `MPI_Ibarrier`
- 53. ارتباطات جمعی غیرمسدودکننده: `MPI_Ibcast`, `MPI_Iscatter`, `MPI_Igather`
- 54. ارتباطات جمعی غیرمسدودکننده: `MPI_Ireduce`, `MPI_Iallreduce`
- 55. مقدمهای بر گروهها (Groups) و Communicator ها
- 56. استخراج گروه از یک Communicator: `MPI_Comm_group`
- 57. ایجاد گروههای جدید با `MPI_Group_incl` و `MPI_Group_excl`
- 58. عملیات مجموعهای روی گروهها: اجتماع، اشتراک و تفاضل
- 59. ایجاد Communicator جدید از یک گروه: `MPI_Comm_create`
- 60. تقسیم یک Communicator به زیرگروهها: `MPI_Comm_split`
- 61. ایجاد یک کپی از Communicator: `MPI_Comm_dup`
- 62. مقایسه Communicator ها
- 63. Communicator های داخلی (Intra-communicators) و خارجی (Inter-communicators)
- 64. مقدمهای بر توپولوژیهای مجازی
- 65. چرا از توپولوژیها استفاده میکنیم؟ نگاشت به سختافزار
- 66. ایجاد توپولوژی دکارتی (Cartesian): `MPI_Cart_create`
- 67. دریافت مختصات و رنک در توپولوژی دکارتی: `MPI_Cart_coords` و `MPI_Cart_rank`
- 68. جابجایی در شبکههای دکارتی: `MPI_Cart_shift`
- 69. تقسیمبندی توپولوژی دکارتی: `MPI_Cart_sub`
- 70. ایجاد توپولوژی گرافی (Graph): `MPI_Graph_create`
- 71. پرسوجو از همسایهها در توپولوژی گرافی
- 72. انگیزه استفاده از انواع داده مشتقشده (Derived Datatypes)
- 73. ایجاد نوع داده پیوسته: `MPI_Type_contiguous`
- 74. ایجاد نوع داده برداری: `MPI_Type_vector`
- 75. ارسال ستونهای یک ماتریس با نوع داده برداری
- 76. ایجاد نوع داده اندیسگذاری شده: `MPI_Type_indexed`
- 77. ایجاد نوع داده ساختاری (Struct): `MPI_Type_create_struct`
- 78. تراز بندی و بستهبندی دادهها در Struct
- 79. نهایی کردن یک نوع داده: `MPI_Type_commit`
- 80. استفاده از انواع داده مشتقشده در ارتباطات
- 81. مقدمهای بر ارتباطات یکطرفه (One-Sided / RMA)
- 82. ایجاد و آزادسازی پنجرههای حافظه: `MPI_Win_create` و `MPI_Win_free`
- 83. قرار دادن داده در حافظه راه دور: `MPI_Put`
- 84. گرفتن داده از حافظه راه دور: `MPI_Get`
- 85. عملیات اتمی در حافظه راه دور: `MPI_Accumulate`
- 86. همگامسازی در RMA: مدل Fences (`MPI_Win_fence`)
- 87. همگامسازی در RMA: مدل Post-Start-Complete-Wait
- 88. همگامسازی در RMA: مدل قفلها (Locks)
- 89. مدیریت پویای فرآیندها: `MPI_Comm_spawn`
- 90. ارتباط بین گروههای فرآیندی مجزا: `MPI_Comm_connect` و `MPI_Comm_accept`
- 91. مقدمهای بر ورودی/خروجی موازی (MPI-IO)
- 92. باز کردن و بستن فایلها در MPI-IO: `MPI_File_open`
- 93. ورودی/خروجی مستقل در مقابل ورودی/خروجی جمعی
- 94. تنظیم نما (View) و اشارهگرهای اشتراکی فایل
- 95. خواندن و نوشتن جمعی با `MPI_File_read_all` و `MPI_File_write_all`
- 96. اندازهگیری زمان و عملکرد: `MPI_Wtime`
- 97. معیارهای ارزیابی عملکرد: افزایش سرعت (Speedup) و کارایی (Efficiency)
- 98. قوانین امدال و گوستافسون
- 99. اشکالزدایی (Debugging) و پروفایلینگ (Profiling) برنامههای MPI
- 100. برنامهنویسی ترکیبی (Hybrid): MPI + OpenMP
این اپلیکیشن فارسی برای یادگیری و مرور محتوای آموزشی از طریق فلشکارت طراحی شده است. کارتها را یکییکی مرور کنید، پاسخ پرسشها را به یاد بیاورید و نتیجه هر پاسخ را ثبت کنید. محتوای دوره پس از نصب درون برنامه در دسترس است تا برای مطالعه روزمره معمولاً به اتصال مداوم اینترنت نیاز نداشته باشید.
محتوای آموزشی در قالبهای متنوع ارائه میشود تا هم برای یادگیری مفاهیم جدید و هم برای تثبیت آموختهها قابل استفاده باشد.
- رابط کاربری فارسی و راستچین با فونت وزیر.
- تم روشن و تیره مطابق تنظیمات سیستم.
- صفحهبندی ساده برای انتخاب دوره و شروع مرور.
- نمایش تعداد دفعات مرور هر فصل.
- انتخاب چند فصل برای مرور همزمان.
- امکان تمرکز بر فصلهایی که هنوز مرور نشدهاند.
این اپلیکیشن برای دانشآموزان، دانشجویان، داوطلبان آزمونها و علاقهمندان به یادگیری طراحی شده است؛ بهویژه کسانی که میخواهند مطالب آموزشی را در زمانهای کوتاه مرور کنند، دانستههای خود را بسنجند و مطالعه منظمتری داشته باشند.
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.