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

دانلود Scientific Computing Masterclass: Parallel and Distributed

نکته: ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره: برنامه‌نویسی موازی و توزیع‌شده: OpenMP، CUDA، MPI و سیستم‌های کلاستر HPC با Slurm و PBS، و AWS HPC Parallel Cluster آموزش ابررایانش (Supercomputing) اجزای اصلی سیستم‌های HPC پشته نرم‌افزاری HPC سیستم‌های زمان‌بندی و دسته‌ای HPC (Slurm و PBS Pro) آشنایی با مفاهیم برنامه‌نویسی موازی: OpenMP و MPI برنامه‌نویسی GPU: NVIDIA CUDA و AMD HIP ROCm استقرار AWS HPC و اجرای کدها پيش نيازها: خط فرمان Linux/Unix مهارت‌های برنامه‌نویسی کامپیوتر به هر زبانی

به اولین دوره سیستم‌های محاسباتی با کارایی بالا (HPC) در پلتفرم یودمی خوش آمدید. هدف اصلی این دوره، آشنایی شما با سیستم‌های HPC و پشته نرم‌افزاری آن‌ها است. این دوره به‌طور ویژه طراحی شده است تا شما را قادر سازد از برنامه‌نویسی موازی و توزیع‌شده و منابع محاسباتی برای تسریع در حل مسائل پیچیده با کمک سیستم‌های HPC و ابررایانه‌ها بهره‌مند شوید. سپس می‌توانید از این دانش در یادگیری ماشین، یادگیری عمیق، علوم داده، کلان‌داده‌ها (Big Data) و موارد مشابه استفاده کنید.

کلاسترهای HPC معمولاً دارای تعداد زیادی کامپیوتر (که اغلب «نود» یا گره نامیده می‌شوند) هستند و به‌طور کلی، اکثر این نودها به صورت یکسان پیکربندی شده‌اند. اگرچه از بیرون ممکن است کلاستر شبیه به یک سیستم واحد به نظر برسد، اما سازوکارهای داخلی برای تحقق این امر می‌تواند بسیار پیچیده باشد. این ایده نباید با مدل کلی client-server اشتباه گرفته شود، زیرا منطق پشت کلاسترها کاملاً منحصر‌به‌فرد است. محاسبات کلاستری از چندین ماشین برای ایجاد یک محیط محاسباتی قدرتمندتر، احتمالاً از طریق یک سیستم‌عامل واحد، استفاده می‌کند.

چه چیزهایی یاد می‌گیرید؟

  • تاریخچه کوتاهی از ابررایانش، نمونه‌های ابررایانه‌ها، تفاوت ابررایانه‌ها با کلاسترهای HPC، کامپیوترهای کلاستر HPC و مزایای استفاده از محاسبات کلاستری.

  • اجزای یک کلاستر سیستم‌های با کارایی بالا (HPC)، ویژگی‌های نود(های) Login، نود(های) Compute، نود(های) Master، نود(های) Storage، شبکه‌های HPC و غیره.

  • آشنایی با PBS، دستورات پایه PBS، دستورات `qsub` ،`qstat` ،`qdel` و `qalter` در PBS، وضعیت‌های شغلی PBS، متغیرهای PBS، کارهای تعاملی PBS، آرایه‌های PBS و مثال MATLAB در PBS.

  • آشنایی با Slurm، دستورات Slurm، یک نمونه کار ساده در Slurm، کارهای توزیع‌شده MPI و GPU در Slurm، کارهای چندرشته‌ای OpenMP در Slurm، کارهای تعاملی، کارهای آرایه‌ای و وابستگی‌های شغلی در Slurm.

  • مبانی OpenMP، بندهای OpenMP، ساختارهای اشتراک کاری، مثال Hello world در OpenMP، کاهش (reduction) و حلقه-for موازی، موازی‌سازی بخش‌ها (section) و جمع برداری.

  • MPI - مثال Hello world، ارسال/دریافت (send/receive) و مدل ping-pong.

  • برنامه‌نویسی موازی - GPU و CUDA: در نهایت، یک راهنمای مختصر و کاربرپسند برای GPUها (واحد‌های پردازش گرافیکی)، برنامه‌نویسی GPU با CUDA، مثال Hello world و غیره ارائه می‌شود. ما می‌دانیم که CUDA یک API دشوار است، به‌ویژه مدل‌های حافظه آن؛ لذا درس‌های CUDA ساده‌ای را همراه با مثال‌ها اضافه کرده‌ایم تا یادگیری مبانی برای شما آسان و سریع شود!

  • برنامه‌نویسی موازی - AMD GPU و HIP (جدید! اوت ۲۰۲۳): یادگیری برنامه‌نویسی موازی روی GPUهای AMD با ROCm و HIP از مفاهیم پایه تا پیاده‌سازی‌های پیشرفته. بحث را با مفاهیم پایه شامل برنامه‌نویسی GPU شرکت AMD، مدل اجرا و مدل حافظه آغاز می‌کنیم و سپس نحوه پیاده‌سازی الگوریتم‌ها با ROCm و HIP را نشان می‌دهیم.

  • AWS HPC: با پیشرفت فناوری‌های ابری، AWS منعطف‌ترین و مقیاس‌پذیرترین زیرساخت ابری را برای اجرای برنامه‌های HPC فراهم می‌کند. با ظرفیت تقریباً نامحدود، مهندسان و پژوهشگران می‌توانند فراتر از محدودیت‌های زیرساخت‌های محلی نوآوری کنند. ما درس‌هایی را اضافه کرده‌ایم تا نحوه ساخت کلاستر AWS HPC و اجرای کدها را به‌سادگی به شما آموزش دهیم!

بر اساس بازخوردهای شما، مجموعه‌ای از جلسات زنده Zoom را برای این دوره معرفی می‌کنیم که در آن جنبه‌های مختلف محاسبات موازی و توزیع‌شده و پشته نرم‌افزاری HPC شامل Slurm، PBS Pro، OpenMP، MPI و CUDA را توضیح می‌دهیم. کلاس‌های زنده از طریق Scientific Programming School (یک پلتفرم یادگیری الکترونیکی پیشرفته برای کدنویسی علمی) ارائه می‌شود. دانشجویان این دوره دسترسی رایگان به نسخه تعاملی این دوره در Scientific Programming School (SCIENTIFIC PROGRAMMING IO) خواهند داشت. دستورالعمل‌های پیوست در بخش محتوای اضافی آمده است.

سلب مسئولیت

ما در مجموع دانش معادل یک ترم دانشگاهی (با ارزش ۲۵۰۰ تا ۶۰۰۰ دلار) را در یک دوره ویدئویی جمع کرده‌ایم، بنابراین این دوره یک مرور جامع و سطح بالاست. فراموش نکنید که به جامعه پرسش و پاسخ ما بپیوندید تا در هر زمان از دانشجویان دیگر و مدرس کمک بگیرید. این دوره بخشی از مسترکلاس Learn Scientific Computing است.


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

ابررایانه‌ها و کلاسترهای HPC Supercomputers and HPC clusters

  • خوش‌آمدگویی Welcome

  • چرا این دوره را انتخاب کنیم؟ Why Get this Course?

  • معرفی مدرس Instructor

  • تمرین دستورات شل با محیط تعاملی Practice Shell Commands with Interactive Shell

  • سازماندهی دوره Course Organisation

  • مقدمه‌ای بر سیستم‌های HPC Introduction to HPC Systems

  • تاریخچه کوتاهی از ابررایانش A Little bit of Supercomputing history

  • نمونه‌هایی از مراکز ابررایانشی Examples of Supercomputing Facilities

  • دموی سریع‌ترین ابررایانه جهان! Fastest Supercomputer in the World Demo!

  • معرفی سیستم‌های HPC Introduction to HPC Systems

  • مزایای استفاده از سیستم‌های HPC Benefits of Using HPC Systems

اجزای یک سیستم HPC Components of a HPC System

  • انواع نودهای HPC چیستند؟ What are the HPC Nodes Types?

  • اجزای کلاستر HPC HPC Cluster Components

  • نود(های) ورود (Login Node) HPC Login Node(s)

  • نود(های) اصلی (Master Node) HPC Master Node(s)

  • نود(های) ذخیره‌سازی (Storage Node) HPC Storage Node(s)

  • نودهای محاسباتی HPC HPC Compute Nodes

  • ایجاد یک سیستم HPC با VMWare Creating a HPC System with VMWare

دسترسی به HPC و انتقال داده‌ها HPC Access and Data Transfer

  • دسترسی به HPC Access to HPC

  • انتقال داده‌ها Data Transfer

ماژول‌های نرم‌افزاری HPC HPC Software Modules

  • ماژول‌های نرم‌افزاری HPC HPC Software Modules

  • دموی ماژول‌های نرم‌افزاری HPC HPC Software Modules Demonstration

  • لیست نرم‌افزارهای HPC HPC Software List

کارهای HPC و نرم‌افزارهای زمان‌بندی HPC Jobs and Scheduling Software

  • کار (Job) در HPC چیست؟ What is a HPC Job?

  • زمان‌بندهای کارهای HPC HPC Job Schedulers

  • نرم‌افزارهای زمان‌بندی (Slurm و PBS) HPC Job Scheduling Software (Slurm and PBS)

مدیریت بار کاری SLURM SLURM - Workload Manager

  • مقدمه‌ای بر Slurm Introduction to Slurm

  • رایج‌ترین دستورات Slurm کدامند؟ What are the Most Common Slurm Commands?

  • لیست دستورات Slurm A List of Slurm Commands

  • دستورات کاربردی Slurm Useful Slurm Commands

  • موجودیت‌ها و پارتیشن‌های Slurm Slurm Entities and Partitions

  • مثالی از یک کار ساده در Slurm Example of a Simple Slurm Job

  • دموی ارسال کار در Slurm Slurm Job Submission Demonstration

  • کارهای توزیع‌شده MPI و GPU در Slurm Slurm distributed MPI and GPU jobs

  • کارهای چندرشته‌ای OpenMP در Slurm Slurm Multi-threaded OpenMP Jobs

  • کارهای تعاملی Slurm Slurm Interactive Jobs

  • کارهای آرایه‌ای Slurm Slurm Array Jobs

  • وابستگی‌های شغلی در Slurm Slurm job dependencies

  • تست دستورات Slurm Slurm Commands Test

سیستم دسته‌ای قابل حمل PBS PBS - Portable Batch System

  • مقدمه‌ای بر PBS Introduction to PBS

  • مثال‌هایی از دستورات PBS PBS Command Examples

  • دستورات پایه PBS PBS basic commands

  • دستور PBS: qsub PBS command: qsub

  • دستور PBS: qstat PBS command: qstat

  • دستور PBS: qdel PBS command: qdel

  • دستور PBS: qalter PBS command: qalter

  • وضعیت‌های شغلی PBS PBS job states

  • متغیرهای شغلی PBS PBS Job Variables

  • مثال اسکریپت شغلی PBS PBS Job Script Example

  • کارهای تعاملی PBS PBS Interactive Jobs

  • آرایه‌های PBS PBS Arrays

برنامه‌نویسی موازی با OpenMP Parallel Programming with OpenMP

  • مقدمه‌ای بر OpenMP Introduction to OpenMP

  • اجزای OpenMP (دستورات، روتین‌ها و متغیرها) OpenMP Components (Directives, Routines and Variables)

  • بندهای OpenMP OpenMP Clauses

  • ساختارهای اشتراک کاری OpenMP OpenMP - Worksharing Constructs

  • مثال کد Hello world در OpenMP OpenMP- Hello world! Code Example

  • دموی Hello world در OpenMP OpenMP Hello world! Demonstration

  • کاهش (Reduction) و حلقه-for موازی در OpenMP OpenMP - Reduction and Parallel `for-loop`

  • مثال موازی‌سازی بخش‌ها در OpenMP OpenMP - Section Parallelization Example

  • مثال جمع برداری در OpenMP OpenMP Vector Add Example

برنامه‌نویسی موازی و توزیع‌شده با MPI Parallel and Distributed Programming with MPI (Message Passing Interface)

  • مقدمه‌ای بر MPI Introduction to MPI

  • ساختار برنامه‌نویسی MPI MPI Programm Stucture

  • مثال Hello World در MPI MPI - Hello World! Example

  • دموی Hello World در MPI MPI Hello World! Demonstration

  • ارسال و دریافت در MPI MPI Send/ Receive

برنامه‌نویسی موازی داده‌ها با GPUها Data-Parallel Programming with GPUs (Graphics Processing Units)

  • انواع GPU (Nvidia) GPU types (Nvidia)

  • مقدمه‌ای بر CUDA Introduction to CUDA

  • مقدمه‌ای بر GP GPU Introduction to GP GPU

  • CUDA چیست؟ What is CUDA?

  • نصب CUDA toolkit و اجرای کدها (ویندوز) Install CUDA toolkit and run CUDA codes (Windows)

  • طرح کلی GPGPU GPGPU Schema

  • لایه نرم‌افزاری GPGPU GPGPU software layer

  • دستگاه، رشته، بلوک‌ها و گریدها در CUDA CUDA device, thread, blocks and grids

  • سازماندهی گرید و سلسله‌مراتب حافظه در CUDA CUDA grid organisation and memory hierarchy

  • مثال کد Hello World در CUDA CUDA - Hello World! Example Code

  • مثال کد عملی Hello World در CUDA CUDA "Hello World!" code example

  • توضیح تابع کرنل در CUDA CUDA kernel function explained

  • جمع متغیرها در دستگاه CUDA (یک بلوک و یک رشته) CUDA variable addtion on the device (1 block and 1 thread)

  • جمع برداری CUDA (با استفاده از N بلوک) CUDA vector addtion (using N blocks)

  • جمع متغیرها در CUDA (بلوک‌ها و رشته‌های متغیر) CUDA variable addtion (variable blocks and threads)

  • جمع برداری CUDA (با استفاده از N رشته) CUDA vector addition (using N threads)

  • دموی جمع برداری در CUDA CUDA Vector Addition Demonstration

برنامه‌نویسی CUDA (مفاهیم سطح بالا و ساده) CUDA Programming (Easy to understand, high level concepts)

  • مفاهیم سطح بالای CUDA CUDA - High Level concepts

  • مدل برنامه‌نویسی CUDA CUDA Programming Model

  • حلقه-for موازی در CUDA CUDA Parallel For-loop

  • رشته‌ها، بلوک‌ها و گریدها در CUDA CUDA Threds, Blocks and Grids

  • مدل حافظه CUDA CUDA Memory Model

  • همگام‌سازی (Synchronization) در CUDA CUDA Synchronization

  • مثال: مجذور کردن یک آرایه در CUDA Example: CUDA Square an Aarray

برنامه‌نویسی AMD GPU AMD GPU Programming

  • مقدمه Introduction

  • پردازنده‌های گرافیکی AMD AMD GPUs

  • مفاهیم Concepts

  • معماری AMD AMD Architecture

برنامه‌نویسی AMD HIP AMD HIP Programming

  • آشنایی با HIP HIP

  • کرنل‌های HIP HIP Kernels

  • مدل‌های حافظه HIP HIP Memory Models

  • مثال ماتریسی در HIP با همگام‌سازی HIP Matrix example with sycns

  • ابزارهای HIP HIP Tools

  • ابزار Hipify Hipify

  • کتابخانه‌های HIP HIP Libraries

  • کتابخانه‌های HIP (پیشرفته) HIP Libraries (advanced)

  • مقیاس‌پذیری GPUهای AMD (چند GPU) AMD GPU scaling (multi-gpu)

استقرار کلاستر AWS HPC و اجرای کدها AWS HPC Cluster - Deployment and Run Codes

  • کلاستر موازی AWS HPC چیست؟ What is AWS Parallel HPC Cluster?

  • استقرار کلاستر AWS HPC Deploy AWS HPC Cluster

  • پیکربندی AWS HPC AWS HPC Configuration

  • نحوه عملکرد سیستم How it works?

  • صف کارهای AWS HPC AWS HPC Job Queue

  • اجرای کد موازی در AWS HPC Run Parallel Code @ AWS HPC

نتیجه‌گیری و منابع Conclusion and References

  • چگونه به محیط‌های تعاملی این دوره دسترسی پیدا کنیم؟ How to Get the Interactive Playgrounds for this Course?

  • دسترسی به محیط‌های تعاملی Interactive playgrounds Access

  • نکات پایانی Concluding Notes

  • منابع References

نمایش نظرات

آموزش دوره جامع محاسبات علمی: برنامه‌نویسی موازی و توزیع‌شده
جزییات دوره
15 hours
111
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
2,608
4.2 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Scientific Programming School | 30,000+ Students Scientific Programming School | 30,000+ Students

ایجاد فرصت هایی در داده ها و محاسبات با عملکرد بالا دانشکده برنامه نویسی علمی با بیش از 30،000 دانش آموز یک ابتکار عالی آموزش الکترونیکی برای ارائه دوره های آموزش و تمرین حرفه ای برای کدگذاری علمی ، لینوکس و داده های بزرگ است. این همچنین یک پلت فرم تعاملی و پیشرفته آموزش الکترونیکی است که به شما امکان می دهد در هنگام یادگیری با زمین های بازی و پوسته های تعاملی درون مرورگر خود ، کدهای علمی/دستورات سیستم عامل را اجرا کنید. چه چیزی یاد می گیرید؟ مدرسان برنامه نویسی علمی در برنامه نویسی علمی در لینوکس ، Devops ، HPC و Data Science برنامه نویسی می کنند. در حال حاضر ما از سه سیستم عامل (اوبونتو ، RHEL و SuSE) و بیش از 50 زبان برنامه نویسی از جمله زبان های تجاری مانند Matlab پشتیبانی می کنیم. آیا پیش نیاز دارید؟ نه ، هیچی بلافاصله شروع به یادگیری می کنید به جای اینکه با سیستم عامل ، ماشین مجازی ، SDK و/IDE تنظیمات کنید. همه اینها با Docker روی cloud تنظیم شده است.

Scientific Programmer™ Scientific Programmer™

ScientificProgrammer.me | تیم مربی برنامه نویسی علمی به شما کمک می کند تا از زبانهای برنامه نویسی علمی مانند CUDA ، Julia ، OpenMP ، MPI ، C ++ ، Matlab ، Octave ، Bash ، Python Sed و AWK از جمله RegEx در پردازش داده های علمی و دنیای واقعی یاد بگیرید. . این تیم توسط مربیان تحصیلات دکترا در زمینه علوم محاسباتی تشکیل شده است. برنامه نویسی علمی یک رشته چند رشته ای است که به سرعت در حال رشد است و از قابلیت های پیشرفته محاسباتی برای درک و حل مشکلات پیچیده استفاده می کند.