کتاب برنامهنویسی Fortran در ابرکامپیوترها: راهنمای عملی برای کارایی بینظیر با فرمت AZW3 برای کتابخوان کیندل و فرمت EPUB
برنامهنویسی Fortran در ابرکامپیوترها: راهنمای عملی برای کارایی بینظیر برنامهنویسی Fortran در ابرکامپیوترها خانه درباره دوره چرا این دوره؟ همین حالا ثبتنام کنید و اولین قدم را به سوی متخصص شدن در H...
🎓 دوره آموزشی جامع
📚 اطلاعات دوره
عنوان دوره: دوره برنامهنویسی Fortran در ابرکامپیوترها: راهنمای عملی برای کارایی بینظیر
موضوع کلی: محاسبات با عملکرد بالا (HPC)
موضوع میانی: توسعه نرمافزار Fortran برای سیستمهای HPC
📋 سرفصلهای دوره
- 1. مقدمهای بر محاسبات با عملکرد بالا (HPC) و ابرکامپیوترها
- 2. معماری ابرکامپیوترهای مدرن: نودها، پردازندهها، حافظه و شبکههای ارتباطی
- 3. چرا فرترن؟ تاریخچه، نقاط قوت و جایگاه آن در HPC
- 4. برپایی محیط توسعه: کامپایلرها (GFortran, Intel Fortran)، ویرایشگرها و ترمینال
- 5. اولین برنامه فرترن: کامپایل و اجرا بر روی یک سیستم HPC
- 6. ساختار اصلی یک برنامه فرترن مدرن
- 7. انواع داده ذاتی: Integer, Real, Complex, Logical, Character
- 8. تعریف متغیرها و ثوابت: اعلان صریح با IMPLICIT NONE
- 9. عملگرهای حسابی، رابطهای و منطقی
- 10. ساختارهای تصمیمگیری: بلوک IF-THEN-ELSEIF-ELSE
- 11. ساختار انتخاب: SELECT CASE
- 12. حلقههای تکرار: ساختار DO و کنترل آن
- 13. کنترل پیشرفته حلقهها: EXIT و CYCLE
- 14. آرایهها: تعریف، مقداردهی اولیه و ابعاد
- 15. عملیات بر روی کل آرایه: سینتکس آرایهای فرترن
- 16. برش آرایه (Array Slicing) و انتخاب زیرمجموعهها
- 17. سازندههای آرایه و توابع RESHAPE و SPREAD
- 18. ساختارهای WHERE و FORALL برای عملیات شرطی روی آرایهها
- 19. توابع ذاتی مهم برای محاسبات علمی (ریاضی، رشتهای و آرایهای)
- 20. رویهها (Procedures): توابع (Functions)
- 21. رویهها (Procedures): زیرروالها (Subroutines)
- 22. ارسال آرگومانها: INTENT و نحوه انتقال داده به رویهها
- 23. ماژولها (Modules): راهی برای کپسولهسازی داده و رویهها
- 24. ورودی و خروجی پایهای: دستورات READ و WRITE
- 25. ورودی و خروجی فرمتبندی شده و مشخصکنندههای فرمت
- 26. انواع داده مشتقه (Derived Types): معادل Struct در C
- 27. اشارهگرها (Pointers) و اهداف (Targets)
- 28. آرایههای تخصیصپذیر (Allocatable Arrays) و مدیریت حافظه پویا
- 29. کار با رشتههای کاراکتری پیشرفته
- 30. ویژگیهای شیءگرا: وراثت و توسعه نوع (Type Extension)
- 31. ویژگیهای شیءگرا: چندریختی (Polymorphism) و SELECT TYPE
- 32. اشارهگر به رویهها (Procedure Pointers)
- 33. تعامل با زبان C: ماژول ISO_C_BINDING
- 34. کار با فایلها: دستورات OPEN, CLOSE, INQUIRE
- 35. ورودی و خروجی بدون فرمت (دودویی) برای کارایی بالا
- 36. مبانی عملکرد: سلسله مراتب حافظه (رجیستر، کش، حافظه اصلی)
- 37. اهمیت محلیبودن دادهها (Data Locality): محلیبودن زمانی و مکانی
- 38. پرچمهای بهینهسازی کامپایلر (Optimization Flags)
- 39. چگونه گزارشهای بهینهسازی کامپایلر را بخوانیم؟
- 40. پروفایلسنجی (Profiling) کد: شناسایی نقاط داغ (Hotspots)
- 41. مبانی بهینهسازی حلقهها: بازکردن حلقه (Loop Unrolling)
- 42. بهینهسازی حلقهها: تعویض حلقه (Loop Interchange) و کاشیبندی (Tiling)
- 43. تأثیر چیدمان دادهها در حافظه: AoS در مقابل SoA
- 44. درونخطیسازی توابع (Function Inlining)
- 45. مقدمهای بر برداریسازی (Vectorization) و SIMD
- 46. چگونه کدی بنویسیم که توسط کامپایلر برداری شود؟
- 47. استفاده از دستورات کامپایلر (Compiler Directives) برای کنترل برداریسازی
- 48. اندازهگیری زمان اجرا: توابع CPU_TIME و SYSTEM_CLOCK
- 49. دقت محاسبات ممیز شناور و خطاهای رایج
- 50. مقدمهای بر موازیسازی حافظه مشترک و مدل برنامهنویسی OpenMP
- 51. شروع کار با OpenMP: ناحیههای موازی (PARALLEL/END PARALLEL)
- 52. ساختارهای اشتراک کار (Work-sharing): موازیسازی حلقههای DO
- 53. مدیریت دادهها در OpenMP: متغیرهای PRIVATE, SHARED, FIRSTPRIVATE
- 54. همگامسازی (Synchronization): دستور BARRIER و ناحیه CRITICAL
- 55. همگامسازی پیشرفته: دستورات ATOMIC و LOCKS
- 56. کاهش (Reduction): جمعآوری نتایج از تردها
- 57. موازیسازی مبتنی بر وظیفه (Task-based Parallelism) در OpenMP
- 58. خطاهای رایج در OpenMP: شرایط رقابتی (Race Conditions) و اشتراک کاذب (False Sharing)
- 59. مقدمهای بر موازیسازی حافظه توزیعشده و مدل پیامرسانی (MPI)
- 60. راهاندازی و خاتمه محیط MPI
- 61. ارتباط نقطه به نقطه (Point-to-Point): MPI_SEND و MPI_RECV
- 62. ارتباطات مسدودکننده (Blocking) در مقابل غیرمسدودکننده (Non-blocking)
- 63. ارتباطات جمعی (Collective): پخش داده با MPI_BCAST
- 64. ارتباطات جمعی: توزیع و جمعآوری داده با MPI_SCATTER و MPI_GATHER
- 65. ارتباطات جمعی: عملیات کاهش با MPI_REDUCE و MPI_ALLREDUCE
- 66. ارتباطدهندهها (Communicators) و گروههای پردازشی
- 67. انواع داده مشتقه در MPI برای ارسال ساختارهای پیچیده
- 68. توپولوژیهای مجازی: شبکههای دکارتی
- 69. مقدمهای بر ورودی/خروجی موازی با MPI-IO
- 70. مفاهیم پیشرفته MPI: ارتباطات یکطرفه (RMA)
- 71. اشکالزدایی (Debugging) برنامههای MPI
- 72. تنظیمات عملکرد برای ارتباطات MPI
- 73. مقدمهای بر برنامهنویسی هیبریدی (MPI + OpenMP)
- 74. سطوح پشتیبانی از ترد در MPI
- 75. الگوهای رایج برنامهنویسی هیبریدی
- 76. ملاحظات عملکردی و تنظیم مدلهای هیبریدی
- 77. مقدمهای بر شتابدهندهها: معماری GPU
- 78. مدل برنامهنویسی فضای آدرس سراسری افرازشده (PGAS)
- 79. مقدمهای بر فرترن همآرایه (Coarray Fortran)
- 80. تعریف و استفاده از همآرایهها (Coarrays)
- 81. همگامسازی در همآرایهها: SYNC ALL و SYNC IMAGES
- 82. عملیات جمعی و اتمی در همآرایهها
- 83. برنامهنویسی مبتنی بر دستور برای GPU: مقدمهای بر OpenACC
- 84. مدیریت داده در OpenACC: انتقال داده بین میزبان و دستگاه
- 85. حلقههای موازی و کرنلها در OpenACC
- 86. مقدمهای بر آفلود کردن به GPU با OpenMP Target
- 87. استفاده از کتابخانههای علمی: BLAS (Basic Linear Algebra Subprograms)
- 88. استفاده از کتابخانههای علمی: LAPACK (Linear Algebra Package)
- 89. کتابخانههای ریاضی موازی: ScaLAPACK
- 90. کتابخانههای تبدیل فوریه سریع (FFT): FFTW
- 91. کتابخانههای ورودی/خروجی با عملکرد بالا: HDF5 و NetCDF
- 92. ابزارهای پروفایلسنجی پیشرفته برای کدهای موازی
- 93. ابزارهای اشکالزدایی موازی
- 94. آشنایی با سیستمهای فایل موازی در ابرکامپیوترها
- 95. نحوه ارسال و مدیریت کارها (Jobs) در زمانبندهای HPC (مانند Slurm)
- 96. مطالعه موردی: حل یک سیستم معادلات خطی متراکم به صورت موازی
- 97. مطالعه موردی: شبیهسازی معادله حرارت در دو بعد
- 98. تکنیکهای بهینهسازی حافظه نهان (Cache-aware Optimization)
- 99. تکنیک پیشواکشی نرمافزاری (Software Prefetching)
- 100. بهینهسازی عملکرد ورودی/خروجی (I/O Performance Tuning)
تگها:
Fortran
Fortran Programming
Fortran Tutorial
High-Performance Computing
HPC
HPC Guide
Numerical Analysis
Parallel programming
performance optimization
scientific computing
Supercomputer
Supercomputing
برنامهنویسی موازی
کارایی بالا
محاسبات علمی
نظرات
هنوز نظری ثبت نشده است.
وارد شوید تا نظر ثبت کنید.