HPC Nerds | High Performance and Scientific Computing
Відкрити в Telegram
High performance and scientific computing 🔴 High Performance Computing 🔴 Parallel Programming 🔴 Distributed Programming 🔴 GPU Programming 🔴 Scientific Computing 🔴 Simulation admin: @amirabbasasadi
Показати більше289
Підписники
Немає даних24 години
Немає даних7 днів
Немає даних30 днів
Архів дописів
📔 Introduction to HPC with MPI for Data Science
✏️ Frank Nielsen
یه منبع عالی برای یادگیری MPI با C++ مخصوص کاربرد های machine learning
در بخش اول به آموزش کلی MPI پرداخته و بعد سناریو های معروف مثل محاسبات ماتریسی توزیع شده رو بحث میکنه و در بخش دوم کتاب پیاده سازی توزیع شده الگوریتم های پراستفاده در machine learning رو بررسی کرده.
#book #mpi
@hpcnerds
Singularity for HPC
هیچکدوم از ما دوست نداره وقتی یه سرور محاسبات سنگین اجاره کردیم زمان قابل توجهی رو برای راه اندازی سرور و نیازمندی های برنامه ای که قراره اجرا بشه هدر بدیم.
طبیعتاً در پروژه های HPC هم مشابه پروژه های عادی، میتونیم به استفاده از container ها فکر کنیم. معروف ترین container platform در دنیای مهندسی نرم افزار Docker هست اما پروژه های HPC به علت ماهیت داینامیک منابع محاسباتی در دسترس نیازهای متفاوتی در این زمینه دارند.
یکی از container platform هایی که مخصوص کلاستر های محاسبات سنگین طراحی شده Singularity هست و میتونید ازش روی کلاستر هایی که منابعشون توسط Slurm مدیریت میشه هم استفاده کنید.
مستندات پروژه:
📙 SingularityCE User Guide
https://docs.sylabs.io/guides/4.1/user-guide/
@hpcnerds
تصور کنید میتونید کد برنامتون رو به سه قسمت A و B و C تقسیم کنید به صورتی که قسمت های A و B میتونن به صورت موازی اجرا بشن اما برای اجرای قسمت C به نتیجه A و B احتیاج داریم. یکی از ابزار های شناخته شده برنامه نویسی موازی که برای برخورد با همچین سناریو هایی توسعه پیدا کردن Flow Graph ها هستن. به صورت کلی روش استفاده اینطوری هست که وابستگی بین قسمت های برنامه رو به عنوان یک گراف وابستگی مشخص میکنیم و اون ابزار منابع محاسباتی مثل thread ها یا هسته ها رو به شکل بهینه برای اجرای کد زمانبندی میکنه.اگه از C++ استفاده میکنید کتابخانه TBB امکانات خوبی برای طراحی و اجرای Flow Graph ها داره. یکی دیگه از پروژه هایی که به صورت مستقل و اختصاصی برای این مسئله طراحی شده TaskFlow هست:
🟢 A General-purpose Parallel and Heterogeneous Task Programming System
📙 https://taskflow.github.io/
اما اگه از جولیا استفاده میکنید، میتونید نگاهی به Dagger بندازید:
🟢 A framework for out-of-core and parallel execution
📙 https://juliaparallel.org/Dagger.jl/dev
#tools #julia #cpp
@hpcnerds
📙 Programming in Parallel with CUDA: A Practical Guide
تمرکز این کتاب بیشتر روی محاسبات علمی هست و مثال ها تمرین هاش بر همین اساس طراحی شده. در مقایسه با باقی کتاب های موجود در مورد CUDA استفاده مناسب تری از امکانات مدرن C++ و امکاناتی که در نسخه های اخیر CUDA اضافه شدن داره.
#book #cuda #cpp
@hpcnerds
📙 Programming Massively Parallel Processors: A Hands-on Approach
یکی از بهترین کتاب ها برای یاد گرفتن برنامه نویسی CUDA با C++
#book #cuda #cpp
@hpcnerds
📙 High Performance Parallelism Pearls: Multicore and Many-core Programming Approaches
این کتاب واسه شروع برنامه نویسی موازی منبع مناسبی نیست اما اگر تجربه قبلی دارید و دوست دارید بدونید برای افزایش پرفورمنس و بهینه سازی پروژه های واقعی باید چه مسیری رو طی کرد و از چه ایده های میشه استفاده کرد، منبع بی نظیری هست. بعضی از مطالب کتاب مخصوصا برای پردازنده های Xeon Phi نوشته شده که علیرغم ایده جذابی که داشت، تولیدش توسط اینتل ادامه پیدا نکرد. ولی باقی مطالبش برای برنامه نویسی موازی و توزیع شده به صورت کلی هم قابل استفاده است.
#book #cpp
@hpcnerds
زبان جولیا سن کمتری نسبت به باقی زبان های محاسبات علمی داره اما در همین مدت کوتاه به خاطر استقبال جامعه آکادمیک، اکوسیستم بی نظیری از پکیج های محاسبات علمی واسش توسعه داده شده. یکی از فعال ترین افراد در توسعه این اکوسیستم Chris Rackauckas هست. توصیه میکنم این دوره ای که در MIT ارائه داده رو از دست ندید.
📙 Parallel Computing and Scientific Machine Learning
Dr. Chris Rackauckas, MIT
لیست ویدئو های دوره
https://www.youtube.com/playlist?list=PLCAl7tjCwWyGjdzOOnlbGnVNZk0kB8VSa
مطالب دوره در قالب یک کتاب آنلاین
https://book.sciml.ai/
مباحث:
🔴 Optimizing Serial Code
🔴 Physics-Informed Neural Networks
🔴 Introduction to Discrete Dynamical Systems
🔴 The Basics of Single Node Parallel Computing
🔴 Styles of Parallelism
🔴 Ordinary Differential Equations
🔴 Forward-Mode Automatic Differentiation
🔴 Solving Stiff Ordinary Differential Equations
🔴 Basic Parameter Estimation, Reverse-Mode AD, and Inverse Problems
🔴 Differentiable Programming and Neural Differential Equations
🔴 MPI for Distributed Computing
🔴 Mathematics of ML and HPC
🔴 GPU Computing
🔴 Partial Differential Equations and Convolutional Neural Networks
🔴 Probabilistic Programming
🔴 Global Sensitivity Analysis
🔴 Code Profiling and Optimization
🔴 Uncertainty Programming and Generalized Uncertainty Quantification
#course
@hpcnerds
📙 Pro TBB | C++ Parallel Programming with Threading Building Blocks
اینتل این کتاب رو به صورت رایگان منتشر کرده:
https://link.springer.com/book/10.1007/978-1-4842-4398-5
من خودم TBB رو خیلی دوست دارم ولی به جز این دلیل، این کتاب برای افرادی که تجربه قبلی برنامه نویسی موازی ندارند هم مفیده چون اساس این کار و الگو های برنامه نویسی موازی رو هم مورد بحث قرار میده.
#book #cpp #parallelprogramming
@hpcnerds
📙 Numerical Methods for Scientific Computing
✏ Kyle Novak
🔴 Direct Methods for Linear Systems
🔴 Inconsistent Systems
🔴 Computing Eigenvalues
🔴 Iterative Methods for Linear Systems
🔴 The Fast Fourier Transform
🔴 Solutions to Nonlinear Equations
🔴 Interpolation
🔴 Approximating Functions
🔴 Differentiation and Integration
🔴 Ordinary Differential Equations
🔴 Parabolic Equations
🔴 Hyperbolic Equations
🔴 Elliptic Equations
🔴 Fourier Spectral Methods
نویسنده نسخه pdf این کتاب رو هم به صورت رایگان به اشتراک گذاشته:
https://www.equalsharepress.com
کتاب شامل پیاده سازی خیلی از روش ها در جولیا هم هست.
#book #julia #scientificcomputing
@hpcnerds
📙 Parallel and High Performance Computing
✏ Robert Robey & Yuliana Zamora
یکی از جامع ترین منابع برای یادگیری HPC مخصوص برنامه نویس های C++
🔴 Why parallel computing?
🔴 Planning for parallelization
🔴 Performance limits and profiling
🔴 Data design and performance models
🔴 Parallel algorithms and patterns
🔴 Vectorization: FLOPs for free
🔴 OpenMP that performs
🔴 MPI: The parallel backbone
🔴 GPU architectures and concepts
🔴 GPU programming model
🔴 Directive-based GPU programming
🔴 GPU languages: Getting down to basics
🔴 GPU profiling and tools
🔴 Affinity: Truce with the kernel
🔴 Batch schedulers: Bringing order to chaos
🔴 File operations for a parallel world
🔴 Tools and resources for better code
#book #cpp
@hpcnerds
این کانال برای علاقمندان به High Performance Computing و محاسبات علمی ایجاد شده و محتوای آن شامل کتاب، دوره، نکات کدنویسی و منابع مفید در مورد مباحث زیر هست:
🔴 High Performance Computing
🔴 Parallel Programming
🔴 Distributed Programming
🔴 GPU Programming
🔴 Scientific Computing
🔴 Numerical Methods
🔴 Simulation
🟢 C/C++ Programming
🟢 Julia Programming
@hpcnerds
