لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش برنامهنویسی 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
نمایش نظرات