آموزش برنامه‌نویسی C++ داده‌محور در محاسبات علمی - آخرین آپدیت

دانلود Data-Oriented C++ in Scientific Programming

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: در این دوره عملی، بیاموزید چگونه کدهای C++ بهینه و قابل نگهداری برای برنامه‌های کاربردی با حجم داده بالا بنویسید. زمینه‌های کلیدی کاربرد این دوره شامل نرم‌افزارهای شبیه‌سازی علمی، پردازش داده‌های آماری و گرافیک کامپیوتری است. شما با بررسی نحوه پشتیبانی C++ مدرن از برنامه‌نویسی با بازدهی بالا شروع خواهید کرد و اصول مربوط به یکی از حیاتی‌ترین بخش‌های سخت‌افزاری در برنامه‌های داده‌محور، یعنی حافظه کامپیوتر را مرور می‌کنید. سپس، دوره به سمت طراحی نرم‌افزار تغییر مسیر می‌دهد. در این بخش، نقاط ضعف عملکردی برنامه‌نویسی شی‌گرا (OOP) سنتی را بررسی کرده و وارد دیدگاه داده‌محور (Data-Oriented) می‌شوید که با ساختاربندی کد حول محور خودِ داده‌ها، عملکرد را بهبود می‌بخشد. خواهید آموخت که این پارادایم چگونه گلوگاه‌ها را برطرف کرده و به راهکارهای مقیاس‌پذیر و با کارایی بالا منجر می‌شود. در نهایت، این اصول را در سیستم‌های مدرن چندرشته‌ای (Multi-threaded) به کار خواهید گرفت. از طریق تجربه عملی، یاد می‌گیرید که چگونه از ویژگی‌های موازی‌سازی داخلی C++ برای هدف قرار دادن CPUهای چند هسته‌ای و GPUها استفاده کنید.

سرفصل ها و درس ها

مرور کلی: مبانی C++ مدرن و چندریختی مبتنی بر کلاس Refresher: Basics of modern C++ and class-based polymorphism

  • تریلر دوره MOOC trailer

  • خوش‌آمدگویی به دوره Welcome to this MOOC

  • آرایه‌ها، وکتورها و مقداردهی اولیه Arrays, vectors, and initialization

  • دامنه متغیرها و تخصیص حافظه Scope of variables and memory allocation

  • انتقال داده‌ها به تابع و از تابع Transfer of data from and into a function

  • بررسی بیشتر کانتینرها More about containers

  • الگوریتم‌ها و توابع لامبدا Algorithms and lambda functions

  • محدوده‌ها (Ranges): مقدمه Ranges: an introduction

  • محدوده‌ها: مثال‌های بیشتر داده‌محور Ranges: more data-oriented examples

  • نماها (Views) Views

  • اشاره‌گرهای هوشمند در C++: مفاهیم پایه Smart pointers in C++ : basic concepts

  • اشاره‌گرهای هوشمند در C++: وکتورهایی از اشاره‌گرهای هوشمند Smart pointers in C++ : vectors of smart pointers

  • ساختارها و کلاس‌ها: ایجاد و مقداردهی اولیه Structures and classes : Creation and initialization

  • ساختارها و کلاس‌ها: اشیاء تابعی Structures and classes : function objects

  • کلاس‌های چندریخت: ایده‌های کلی Polymorphic classes : general ideas

  • کلاس‌های چندریخت: کلاس‌های انتزاعی و مشتق شده در عمل Polymorphic classes : abstract and derived classes at work

  • جمع‌بندی فصل Let's wrap up

اجرای کد در زمان کامپایل Compile-time code execution

  • معرفی ماژول Presentation of the module

  • مقدمه‌ای بر تمپلیت‌ها Introduction to templates

  • تمپلیت‌های تابعی مختصر Abbreviated function templates

  • تخصصی‌سازی تمپلیت و آرگومان‌های صحیح Template specialization and integer arguments

  • عبارات ثابت (Constant expressions) Constant expressions

  • حلقه‌های زمان کامپایل Compile-time loops

  • چندرخیتی زمان کامپایل با استفاده از تمپلیت‌ها Compile-time polymorphism using templates

  • باز کردن حلقه‌ها (Loop unrolling) Loop unrolling

  • واریانت‌ها و بازدیدکنندگان (Variants and visitors) Variants and visitors

  • چندرخیتی زمان اجرا Runtime polymorphism

  • توسعه مبتنی بر اینترفیس Interface-based development

  • جمع‌بندی فصل Let's wrap up

حافظه Memory

  • معرفی ماژول Presentation of the module

  • سازماندهی حافظه Memory organization

  • حافظه مجازی Virtual memory

  • واحد مدیریت حافظه (MMU) Memory management unit

  • تأخیر حافظه Memory latency

  • تأخیر در مقابل پهنای باند Latency vs bandwidth

  • حافظه کش (Cache) Cache memory

  • تأخیر کش در عمل Cache latency in practice

  • پیش‌خوانی داده‌ها (Data prefetching) Data prefetching

  • دستورالعمل‌های وکتوری Vector instructions

  • مقایسه RAM و CPU RAM vs CPU

  • تعاریف: FLOPS و هوش مصنوعی Definitions: FLOPS and AI

  • مدل عملکرد Roofline Roofline performance model

  • مدل عملکرد Roofline در عمل Roofline performance model in practice

  • جمع‌بندی فصل Let's wrap up

طراحی داده‌محور Data-oriented design

  • معرفی ماژول Presentation of the module

  • چیدمان حافظه خطی Linear memory layout

  • آرایه‌ای از ساختارها در مقابل ساختاری از آرایه‌ها Array of Structures vs Structure of Arrays

  • مدل پیچیده مبتنی بر عامل (Agent Based Model) Complex Agent Based Model

  • از شی‌گرایی به داده‌محوری From Object Oriented to Data Oriented

  • شبیه‌سازی دینامیک مولکولی مقیاس‌پذیر Scalable molecular dynamics simulation

  • راهکار داده‌محور Data oriented solution

  • جمع‌بندی فصل Let's wrap up

استفاده از الگوریتم‌های موازی Using Parallel algorithms

  • معرفی ماژول Presentation of the module

  • الگوریتم‌های موازی C++ C++ parallel algorithms

  • اجرای موازی الگوریتم‌های سفارشی (بخش اول) Running custom algorithms in parallel

  • اجرای موازی الگوریتم‌های سفارشی (بخش دوم) Running custom algorithms in parallel

  • پیمایش کانتینر بر اساس ایندکس Index-based container traversal

  • معادله لاپلاس موازی Parallel Laplace equation

  • رشته‌های CPU CPU threads

  • رشته‌های GPU GPU threads

  • هم‌روندی: رفتار تعریف‌نشده Concurrency: undefined behavior

  • اصول سخت‌افزاری CPUهای چند هسته‌ای Hardware principles of multi-core CPUs

  • اشتراک کاذب (False sharing) False sharing

  • پلتفرم‌های ناهمگن Heterogeneous platforms

  • محدودیت‌های برنامه‌نویسی GPU GPU programming limitations

  • جمع‌بندی فصل Let's wrap up

  • سپاسگزاری و خداحافظی Thank you and farewell

نمایش نظرات

آموزش برنامه‌نویسی C++ داده‌محور در محاسبات علمی
جزییات دوره
19h 50m
67
(آخرین آپدیت)
1,234
- از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar