کتاب برنامهنویسی پیشرفته موازی: تسلط بر معماریهای هیبریدی (CPU + GPU) با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
برنامهنویسی پیشرفته موازی: تسلط بر معماریهای هیبریدی (CPU + GPU) برنامهنویسی پیشرفته موازی: تسلط بر معماریهای هیبریدی (CPU + GPU) آیا آمادهاید تا پتانسیل واقعی محاسبات با کارایی بالا (HPC) را در ...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره برنامهنویسی پیشرفته موازی: تسلط بر معماریهای هیبریدی (CPU + GPU)
موضوع کلی: محاسبات با کارایی بالا (High-Performance Computing)
موضوع میانی: برنامهنویسی موازی برای معماریهای مدرن
📋 سرفصلهای دوره
- 1. مبانی محاسبات با کارایی بالا (HPC)
- 2. معماریهای موازی: مقدمه
- 3. معماریهای چند هستهای و بسیاری هستهای
- 4. معماریهای هیبریدی CPU+GPU
- 5. مروری بر مدلهای برنامهنویسی موازی
- 6. مقدمهای بر MPI (Message Passing Interface)
- 7. نصب و پیکربندی محیط MPI
- 8. برنامهنویسی MPI: توابع پایه (Send/Receive)
- 9. ارتباطات نقطهبهنقطه در MPI
- 10. ارتباطات جمعی در MPI (Broadcast, Gather, Scatter)
- 11. عملگرهای کاهشی در MPI (Reduce, Allreduce)
- 12. مدیریت گروهها و ارتباط دهندهها در MPI
- 13. مفهوم و کاربرد توپولوژی در MPI
- 14. بهینهسازی ارتباطات MPI
- 15. مقدمهای بر OpenMP (Open Multi-Processing)
- 16. مدیریت Threadها در OpenMP
- 17. ساختارهای کنترلی موازی در OpenMP (Parallel For, Sections)
- 18. متغیرهای Private و Shared در OpenMP
- 19. هماهنگسازی Threadها در OpenMP (Locks, Barriers)
- 20. استراتژیهای زمانبندی حلقه در OpenMP (Scheduling)
- 21. بهینهسازی OpenMP: کاهش سربار
- 22. مقدمهای بر CUDA (Compute Unified Device Architecture)
- 23. معماری GPU: هستهها و بلاکها
- 24. انتقال داده بین CPU و GPU
- 25. نوشتن Kernelهای CUDA
- 26. مدیریت Thread و Block در CUDA
- 27. حافظه در CUDA: Global, Shared, Constant, Texture
- 28. همگامسازی Threadها در CUDA
- 29. بهینهسازی CUDA: ادغام حافظه
- 30. بهینهسازی CUDA: پوشش تاخیر
- 31. بهینهسازی CUDA: استفاده از Shared Memory
- 32. بهینهسازی CUDA: استفاده از Constant Memory
- 33. بهینهسازی CUDA: استفاده از Texture Memory
- 34. پروفایلگیری و دیباگ CUDA
- 35. ترکیب MPI و OpenMP: برنامهنویسی هیبریدی
- 36. برنامهنویسی هیبریدی: توزیع وظایف بین گرهها و هستهها
- 37. برنامهنویسی هیبریدی: بهینهسازی ارتباطات
- 38. برنامهنویسی هیبریدی: مدیریت داده
- 39. ترکیب MPI و CUDA: محاسبات GPU توزیع شده
- 40. نصب و پیکربندی محیط MPI برای CUDA
- 41. ارسال و دریافت داده بین گرهها با GPU
- 42. برنامهنویسی هیبریدی MPI+CUDA: کاربردها
- 43. مقدمهای بر OpenACC (Open Accelerators)
- 44. کامپایلرها و Directiveهای OpenACC
- 45. سادهسازی برنامهنویسی GPU با OpenACC
- 46. انتقال داده خودکار در OpenACC
- 47. بهینهسازی OpenACC
- 48. مقدمهای بر Chapel
- 49. مقدمهای بر Julia
- 50. الگوریتمهای مرتبسازی موازی (Parallel Sorting)
- 51. الگوریتمهای جستجوی موازی (Parallel Searching)
- 52. ضرب ماتریس موازی (Parallel Matrix Multiplication)
- 53. حل معادلات دیفرانسیل جزئی موازی (Parallel PDE Solvers)
- 54. شبیهسازی مونتکارلو موازی (Parallel Monte Carlo Simulation)
- 55. پردازش تصویر موازی (Parallel Image Processing)
- 56. پردازش ویدئو موازی (Parallel Video Processing)
- 57. تحلیل دادههای بزرگ موازی (Parallel Big Data Analytics)
- 58. یادگیری ماشین موازی (Parallel Machine Learning)
- 59. شبکههای عصبی عمیق موازی (Parallel Deep Neural Networks)
- 60. استفاده از کتابخانههای بهینهسازی شده (BLAS, LAPACK)
- 61. ابزارهای پروفایلگیری و تحلیل عملکرد (Performance Analysis Tools)
- 62. مقایسه کارایی معماریهای CPU و GPU
- 63. بهینهسازی مصرف انرژی در HPC
- 64. مدیریت منابع در HPC
- 65. زمانبندی کارها در HPC
- 66. سیستمهای فایل موازی (Parallel File Systems)
- 67. مفاهیم حافظه Cache
- 68. بهینهسازی استفاده از Cache
- 69. تکنیکهای Vectorization
- 70. برنامهنویسی SIMD
- 71. استفاده از Intel AVX
- 72. برنامهنویسی GPU با OpenCL
- 73. مقایسه CUDA و OpenCL
- 74. مدیریت خطا در برنامههای موازی
- 75. دیباگ برنامههای موازی
- 76. مقدمهای بر Fault Tolerance در HPC
- 77. طراحی الگوریتمهای تحملپذیر خطا
- 78. معماریهای جدید HPC (Neuromorphic Computing, Quantum Computing)
- 79. برنامهنویسی برای معماریهای Neuromorphic
- 80. مقدمهای بر محاسبات کوانتومی
- 81. کاربردهای محاسبات کوانتومی در HPC
- 82. مقدمهای بر Data Locality
- 83. بهینهسازی Data Layout
- 84. بهینهسازی Memory Access Patterns
- 85. مقدمهای بر Communication Avoiding Algorithms
- 86. الگوریتمهای Distributed Memory
- 87. مقدمهای بر Shared Memory Programming Models
- 88. بهینهسازی Shared Memory Access
- 89. تکنیکهای Asynchronous Programming
- 90. استفاده از Streams در CUDA
- 91. استفاده از Futures و Promises
- 92. مقدمهای بر Domain Decomposition
- 93. تکنیکهای Load Balancing
- 94. مقدمهای بر Scaling
- 95. Strong Scaling vs. Weak Scaling
- 96. قانون امداهل (Amdahl's Law)
- 97. قانون گوستافسون (Gustafson's Law)
- 98. مدیریت وابستگیها در برنامههای موازی
- 99. استفاده از ابزارهای مدیریت وابستگی
- 100. مقدمهای بر Task-Based Parallelism
تگها:
CPU
CUDA
GPU
HPC
Hybrid Architectures
Manycore
Multi-core
OpenCL
Parallel programming
performance optimization
Programming for Hybrid Multi/Manycore MPP Systems
برنامه نویسی موازی
بهینه سازی کد
محاسبات با کارایی بالا
معماری هیبریدی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.