SlideShare a Scribd company logo
‫درس‬4–HPC Libraries
Fundamentals of Parallelism & Code Optimization
(C/C++,Fortran)
‫در‬ ‫کدها‬ ‫سازی‬ ‫بهینه‬ ‫و‬ ‫سازی‬ ‫موازی‬ ‫مبانی‬
‫زبانهای‬C/C++,Fortran
Amin Nezarat (Ph.D.)
Assistant Professor at Payame Noor University
aminnezarat@gmail.com www.astek.ir - www.hpclab.ir
‫عناوین‬
‫دوره‬
1.‫های‬ ‫پردازنده‬ ‫معماری‬ ‫با‬ ‫آشنایی‬
‫اینتل‬
2.Vectorization‫معماری‬ ‫در‬
‫اینتل‬ ‫کامپایلرهای‬
3.‫نویسی‬ ‫برنامه‬ ‫با‬ ‫کار‬ ‫و‬ ‫آشنایی‬
‫در‬OpenMP
4.‫با‬ ‫داده‬ ‫تبادل‬ ‫قواعد‬ ‫و‬ ‫اصول‬
‫حافظه‬(Memory Traffic)
‫های‬ ‫کتابخانه‬
HPC
‫آماده‬ ‫های‬ ‫کتابخانه‬ ‫از‬ ‫چرا‬
‫کنیم؟‬ ‫استفاده‬
‫نیست‬ ‫چرخ‬ ‫مجدد‬ ‫اختراع‬ ‫به‬ ‫نیازی‬!!
-‫کتابخانه‬‫های‬‫آماده‬‫باگ‬‫کمتری‬‫دارند‬
-‫در‬‫بسیاری‬‫از‬‫زبانهای‬‫سطح‬‫باال‬‫قابل‬‫استفاده‬
‫هستند‬
C++, Fortran, Python, Perl, Matlab, Mathematica
-‫باعث‬‫جابجایی‬‫پذیری‬‫بیشتر‬‫کد‬‫می‬‫شوند‬(‫حتی‬‫به‬
GPU)
‫کتابخانه‬ ‫انتخاب‬
•‫برای‬‫انتخاب‬‫یک‬‫کتابخانه‬‫مناسب‬‫در‬‫برنامه‬‫نویسی‬HPC‫نکات‬
‫زیر‬‫در‬‫نظر‬‫گرفته‬‫شود‬:
o‫عملکرد‬‫و‬‫کارایی‬
o‫دقت‬
o‫قیمت‬‫و‬‫الیسنس‬
o،‫زبانها‬‫پلتفرم‬‫ها‬‫و‬‫میزان‬‫جابجایی‬‫پذیری‬‫که‬
‫پشتیبانی‬‫می‬‫کند‬
o‫سادگی‬‫استفاده‬
o‫موازی‬‫سازی‬‫و‬‫مقیاس‬‫پذیری‬
‫های‬ ‫کتابخانه‬
Numerical
‫خطی‬ ‫جبر‬
•‫های‬ ‫کتابخانه‬“Netlib”‫های‬ ‫کتابخانه‬ ‫ترین‬ ‫شده‬ ‫شناخته‬ ‫از‬ ‫یکی‬
Dense linear algebra‫هستند‬
o‫ها‬ ‫ترین‬ ‫معروف‬ ‫جمله‬ ‫از‬:BLAS, LAPACK, BLACS, PBLAS, ScaLAPACK
o‫دانشگاه‬ ‫در‬Tennessee‫اند‬ ‫شده‬ ‫داده‬ ‫توسعه‬
o‫آدرس‬ ‫در‬ ‫آنها‬ ‫کد‬ ‫سورس‬ ‫و‬ ‫منابع‬http://netlib.org‫دسترس‬ ‫قابل‬
‫هستند‬
•‫آنها‬ ‫از‬ ‫که‬ ‫هستند‬ ‫دسترس‬ ‫قابل‬ ‫هم‬ ‫دیگر‬ ‫کتابخانه‬ ‫دیگری‬ ‫تعداد‬
‫استفاده‬ ‫توان‬ ‫می‬ ‫نیز‬‫کرد‬
oATLAS, GOTO, ACML, MKL, LibSci, …
‫کتابخانه‬ ‫سیستم‬ ‫اکو‬
‫های‬Netlib
BLAS(Basic Linear Algebra Subroutines)
•‫می‬ ‫انجام‬ ‫کتابخانه‬ ‫این‬ ‫در‬ ‫زیر‬ ‫قبیل‬ ‫از‬ ‫ماتریس‬ ‫اصلی‬ ‫عملیاتهای‬
‫شود‬
oMultiplication, Addition, Rank update, triangular solve
•‫است‬ ‫شده‬ ‫بندی‬ ‫دسته‬ ‫سطح‬ ‫سه‬ ‫به‬
LAPACK(Linear Algebra PACKage)
•‫قبیال‬ ‫از‬ ‫ماتریسی‬ ‫حلهای‬ ‫راه‬
oSimultaneous linear equation, least-squares solutions, eigenvalue problems
oMatrix factorizations (LU, Cholesky, QR, SVD, Schur)
•‫به‬ ‫زیادی‬ ‫میزان‬ ‫به‬ ‫محاسبات‬ ‫انجام‬ ‫برای‬BLAS‫کند‬ ‫می‬ ‫تکیه‬
ScaLAPACK(Scalable LAPACK)
•BLACS
o‫قابلیت‬Message Passing Interface‫ماشینهای‬ ‫در‬ ‫خطی‬ ‫جبر‬ ‫برای‬
‫شده‬ ‫توزیع‬ ‫حافظه‬
o‫های‬ ‫آرایه‬2D‫ها‬ ‫پردازه‬ ‫بعدی‬ ‫دو‬ ‫گریدهای‬ ‫و‬
o‫گریدی‬ ‫های‬ ‫پردازه‬ ‫تولید‬
o‫ها‬ ‫ماتریس‬ ‫بین‬ ‫ارتباطات‬
•‫سازی‬ ‫موازی‬LAPACK‫توابع‬ ‫و‬BLAS
•‫نویسی‬ ‫برنامه‬ ‫واسطهای‬ ‫توسعه‬BLAS/LAPACK
o‫پیشوند‬ ‫شده‬ ‫اضافه‬P‫توابع‬ ‫تمامی‬ ‫به‬
o‫مانند‬PDGEMM
‫جالب‬ ‫های‬ ‫سازی‬ ‫پیاده‬
‫دیگر‬•PLASMA
o‫برای‬ ‫خطی‬ ‫جبر‬ ‫شده‬ ‫سازی‬ ‫بهینه‬ ‫توابع‬Manycore‫ها‬
o‫برای‬ ‫احتمالی‬ ‫جایگزین‬LAPACK
ohttp://icl.cs.utk.edu/plasma/
•MAGMA & CULA
o‫توابع‬ ‫مشابه‬ ‫توابعی‬LAPCK‫برای‬GPU
ohttp://icl.cs.utk.edu/magma/
ohttp://www.culatools.com/
‫تنک‬ ‫های‬ ‫ماتریس‬
•‫پس‬ ‫داریم‬ ‫آنها‬ ‫به‬ ‫کردن‬ ‫توجه‬ ‫برای‬ ‫صفر‬ ‫کافی‬ ‫اندازه‬ ‫به‬:
‫کنید‬ ‫ذخیره‬ ‫را‬ ‫صفر‬ ‫غیر‬ ‫عناصر‬ ‫فقط‬
•‫گذارد‬ ‫می‬ ‫اثر‬ ‫عملکرد‬ ‫و‬ ‫کارایی‬ ‫روی‬ ‫بر‬ ‫چگالی‬ ‫و‬ ‫تنکی‬ ‫الگوی‬
o‫متفاوت‬ ‫و‬ ‫بهینه‬ ‫الگوریتم‬ ‫و‬ ‫سازی‬ ‫ذخیره‬ ‫فرمت‬ ‫از‬ ‫استفاده‬
o‫ندارد‬ ‫وجود‬ ‫کاره‬ ‫همه‬ ‫و‬ ‫یکسان‬ ‫حل‬ ‫راه‬ ‫یک‬
o‫روش‬ ‫دو‬ ‫هر‬ ‫شامل‬ ‫که‬ ‫هستند‬ ‫دسترس‬ ‫در‬ ‫زیادی‬ ‫های‬ ‫کننده‬ ‫حل‬
‫هستند‬ ‫مستقیم‬ ‫غیر‬ ‫و‬ ‫مستقیم‬
‫های‬ ‫کتابخانه‬
‫تنک‬ ‫سیستمهای‬•Hypre (preconditioners)
•KLU, Paraklete, AztecOO (parts of Trilinos)
o‫تنک‬ ‫سیستمهای‬ ‫برای‬ ‫مستقیم‬ ‫غیر‬ ‫و‬ ‫مستقیم‬ ‫های‬ ‫کننده‬ ‫حل‬
•SuperLU, UMFPACK, MUMPS
o‫تنک‬ ‫سیستمهای‬ ‫برای‬ ‫مستقیم‬ ‫های‬ ‫کننده‬ ‫حل‬
•CuSP, CuSPARSE
o‫در‬ ‫استفاده‬ ‫برای‬ ‫هایی‬ ‫کننده‬ ‫حل‬Nvidia GPU
•‫دیگر‬ ‫بسیاری‬ ‫و‬....
‫کتابخانه‬(Fastest Fourier
Transform)FFT
•‫در‬ ‫بعدی‬ ‫سه‬ ‫و‬ ‫دو‬ ،‫یک‬ ‫های‬ ‫مجموعه‬FFTs
•‫شود‬ ‫می‬ ‫استفاده‬ ‫نسخه‬ ‫دو‬ ‫از‬ ‫معمول‬ ‫طور‬ ‫به‬:
o‫نسخه‬2‫از‬ ‫پشتیبانی‬ ‫با‬MPI
o‫نسخه‬3‫از‬ ‫پشتیبانی‬ ،‫بیشتر‬ ‫بسیار‬ ‫کارایی‬ ‫با‬MPI‫حال‬ ‫در‬
‫است‬ ‫سازی‬ ‫پیاده‬
•‫شامل‬ ‫آن‬ ‫های‬ ‫سازی‬ ‫پیاده‬ ‫سایر‬
•Cray CRAFFT
o‫تابع‬ ‫بهترین‬ ‫خودکار‬ ‫صورت‬ ‫به‬FFT‫کند‬ ‫می‬ ‫انتخاب‬ ‫را‬
o‫است‬ ‫توابع‬ ‫از‬ ‫موازی‬ ‫و‬ ‫سلایر‬ ‫نسخه‬ ‫دو‬ ‫هر‬ ‫دارای‬
oInfo_crafft‫ببینید‬ ‫را‬
•AMD ACML
•Intel MKL and IPP
•CuFFT
o‫توابع‬FFT‫برای‬Nvidia GPU
‫کتابخانه‬ ‫سایر‬
‫ها‬
‫تخصصی‬ ‫های‬ ‫کتابخانه‬
•OpenMM
oMolecular dynamics
o‫از‬ ‫پشتیانی‬GPUs
•Libint
oTwo-body molecular integrals
•Overture
o‫های‬ ‫کننده‬ ‫حل‬PDE‫برای‬ ‫که‬CFD‫اند‬ ‫شده‬ ‫طراحی‬
•Libgenometools
o‫توابع‬Genome Analysis
‫های‬ ‫کتابخانه‬I/O
•‫های‬ ‫داده‬HPC‫شوند؟‬ ‫ذخیره‬ ‫باید‬ ‫چگونه‬
o‫و‬ ‫دیتا‬ ‫متا‬ ،‫مبهم‬ ،‫غیرهمگن‬ ،‫پیچیده‬ ،‫بزرگ‬...
o‫تصادفی‬ ‫و‬ ‫موازی‬ ‫دسترسی‬
•‫توانند‬ ‫می‬ ‫سختی‬ ‫به‬ ‫معمول‬ ‫و‬ ‫سنتی‬ ‫داده‬ ‫های‬ ‫پایگاه‬
‫باشند‬ ‫پاسخگو‬
o‫ندارند‬ ‫را‬ ‫بزرگ‬ ‫اشیاء‬ ‫مدیریت‬ ‫امکان‬
o‫برای‬ ‫ضروری‬ ‫غیر‬ ‫خصوصیات‬ ‫زیادی‬ ‫تعداد‬HPC‫آنها‬ ‫در‬
‫شود‬ ‫می‬ ‫نگهداری‬
•‫دارد‬ ‫وجود‬ ‫بهتری‬ ‫راهکار‬ ‫یک‬ ‫به‬ ‫نیاز‬
oNetCDF
oHDF5
‫های‬ ‫کتابخانه‬I/O:
HDF5•‫فایل‬ ‫و‬ ‫ای‬ ‫داده‬ ‫مدل‬ ،‫کتابخانه‬ ‫یک‬-‫ذخیره‬ ‫برای‬ ‫فرمت‬
‫بعدی‬ ‫چند‬ ‫های‬ ‫داده‬ ‫مدیریت‬ ‫و‬ ‫سازی‬
•‫را‬ ‫ها‬ ‫داده‬ ‫متا‬ ‫و‬ ‫پیچیده‬ ‫ای‬ ‫داده‬ ‫اجزاء‬ ‫تواند‬ ‫می‬
‫کند‬ ‫ذخیره‬
•‫فایل‬-‫هستند‬ ‫جابجایی‬ ‫قابل‬ ‫فایلها‬ ‫و‬ ‫فرمت‬
•‫امکان‬I/O‫از‬ ‫استفاده‬ ‫با‬ ‫موازی‬MPI-IO‫دارد‬ ‫وجود‬
•‫برای‬ ‫نویسی‬ ‫برنامه‬ ‫واسطهای‬C,C++,Fortran , Java‫دارد‬
‫های‬ ‫کتابخانه‬I/O:
NetCDF•‫می‬ ‫استفاده‬ ‫زمین‬ ‫علوم‬ ‫دانشمندان‬ ‫توسط‬ ‫گستره‬ ‫طور‬ ‫به‬
‫شود‬
•‫شده‬ ‫بهینه‬ ‫بزرگ‬ ‫های‬ ‫داده‬ ‫بخشهای‬ ‫زیر‬ ‫به‬ ‫دسترسی‬ ‫برای‬
‫است‬
o‫ترتیبی‬ ‫دسترسی‬ ‫نه‬ ‫دارد‬ ‫داده‬ ‫به‬ ‫مستقیم‬ ‫دسترسی‬
•‫نسخه‬4‫بر‬ ‫مبتنی‬ ‫آن‬HDF5‫است‬ ‫شده‬ ‫سازی‬ ‫پیاده‬
o‫فایلهای‬ ‫با‬ ‫سازگار‬HDF5‫است‬
•‫دارد‬ ‫موازی‬ ‫نسخه‬Parallel NetCDF(pNetCDF)
o‫از‬MPI-IO‫کند‬ ‫می‬ ‫پشتیانی‬
‫ها‬ ‫چارچوب‬
‫ها‬ ‫چارچوب‬
‫عددی‬ ‫مسائل‬ ‫حل‬ ‫برای‬ ‫توابع‬ ‫از‬ ‫وسیعی‬ ‫مجموعه‬ ‫ها‬ ‫چارچوب‬
‫کنند‬ ‫می‬ ‫ارائه‬ ‫را‬
•‫را‬ ‫آنها‬ ‫از‬ ‫بسیاری‬ ‫اما‬ ،‫نیستند‬ ‫ساده‬ ‫کتابخانه‬ ‫یک‬
‫دارند‬ ‫اختیار‬ ‫در‬ ‫مختلف‬ ‫کارهای‬ ‫برای‬
o‫حل‬ ،‫موازی‬ ‫های‬ ‫ماتریس‬ ‫برای‬ ‫هایی‬ ‫داده‬ ‫انواع‬
،‫موازی‬ ‫ارتباطات‬ ،‫خطی‬ ‫غیر‬ ‫و‬ ‫خطی‬ ‫های‬ ‫کننده‬IO‫و‬
...
•‫هم‬ ‫با‬ ‫خوبی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫مختلف‬ ‫بخشهای‬ ‫معمول‬ ‫طور‬ ‫به‬
‫استفاده‬ ‫نحوه‬ ‫نگران‬ ‫دیگر‬ ‫کاربر‬ ‫و‬ ‫اند‬ ‫کرده‬ ‫یکپارچه‬
‫بود‬ ‫نخواهد‬ ‫ماتریس‬ ‫نمایش‬ ‫روشهای‬ ‫و‬ ‫ها‬ ‫داده‬ ‫انواع‬ ‫از‬
Trilions
‫به‬ ‫که‬ ‫هایی‬ ‫کتابخانه‬ ‫و‬ ‫ها‬ ‫بسته‬ ‫از‬ ‫جامع‬ ‫مجموعه‬ ‫یک‬
‫صورت‬loosly‫تحقیقاتی‬ ‫مرکز‬ ‫در‬ ‫که‬ ‫اند‬ ‫شده‬ ‫مرتبط‬ ‫هم‬ ‫به‬
Sandia‫است‬ ‫شده‬ ‫داده‬ ‫توسعه‬
•‫امکان‬ ‫که‬ ‫است‬ ‫شده‬ ‫طراحی‬ ‫باال‬ ‫به‬ ‫پایین‬ ‫صورت‬ ‫به‬
‫را‬ ‫اشتراکی‬ ‫حافظه‬ ‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫از‬ ‫استفاده‬
‫کند‬ ‫می‬ ‫فراهم‬
•‫هر‬‫صورت‬ ‫به‬ ‫توان‬ ‫می‬ ‫را‬ ‫ماژولها‬ ‫و‬ ‫ها‬ ‫بسته‬ ‫از‬ ‫یک‬
‫کرد‬ ‫کامپایل‬ ‫مجزا‬
•‫دارای‬‫است‬ ‫خوب‬ ‫بسیار‬ ‫رایت‬ ‫کپی‬LGPL , BSD
•‫از‬ ‫بیش‬ ‫شامل‬50‫است‬ ‫مختلف‬ ‫کارهای‬ ‫برای‬ ‫ماژول‬
oLinear solvers, mesh partitioning, utilities for FEM solvers,
optimization, automatic differentiation
06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir

More Related Content

Similar to 06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir

Herat University Library Management System Persian User Manual
Herat University Library Management System Persian User ManualHerat University Library Management System Persian User Manual
Herat University Library Management System Persian User Manual
Abdul Rahman Sherzad
 

Similar to 06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir (20)

how upgrade ceph
how upgrade cephhow upgrade ceph
how upgrade ceph
 
Pg autoscaling in ceph
Pg autoscaling in  cephPg autoscaling in  ceph
Pg autoscaling in ceph
 
rbdmap in ceph
rbdmap in ceph rbdmap in ceph
rbdmap in ceph
 
how enable ceph dashboard
how enable  ceph dashboardhow enable  ceph dashboard
how enable ceph dashboard
 
Network management 2_sample
Network management 2_sampleNetwork management 2_sample
Network management 2_sample
 
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیرازIntroduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
 
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
 
OpenEHR پرونده الکترونیک سلامت
OpenEHR  پرونده الکترونیک سلامتOpenEHR  پرونده الکترونیک سلامت
OpenEHR پرونده الکترونیک سلامت
 
Ssh edition 2
Ssh edition 2Ssh edition 2
Ssh edition 2
 
هسته لینوکس و کامپایل آن
هسته لینوکس و کامپایل آنهسته لینوکس و کامپایل آن
هسته لینوکس و کامپایل آن
 
سیستم های عامل فصل ۱
سیستم های عامل   فصل ۱سیستم های عامل   فصل ۱
سیستم های عامل فصل ۱
 
Herat University Library Management System Persian User Manual
Herat University Library Management System Persian User ManualHerat University Library Management System Persian User Manual
Herat University Library Management System Persian User Manual
 
سیستم های عامل فصل ۳
سیستم های عامل فصل ۳سیستم های عامل فصل ۳
سیستم های عامل فصل ۳
 
Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1Machine & Assembly Language - Chapter 1
Machine & Assembly Language - Chapter 1
 
سیستم های عامل فصل ۵
سیستم های عامل   فصل ۵سیستم های عامل   فصل ۵
سیستم های عامل فصل ۵
 
پیش مقدمه آموزش نرم افزار متلب
پیش مقدمه آموزش نرم افزار متلبپیش مقدمه آموزش نرم افزار متلب
پیش مقدمه آموزش نرم افزار متلب
 
Openstack Overview
Openstack Overview Openstack Overview
Openstack Overview
 
Big Data Processing in Cloud Computing Environments
Big Data Processing in Cloud Computing EnvironmentsBig Data Processing in Cloud Computing Environments
Big Data Processing in Cloud Computing Environments
 
Iptables
IptablesIptables
Iptables
 
sangsefidi_blas.pptx
sangsefidi_blas.pptxsangsefidi_blas.pptx
sangsefidi_blas.pptx
 

More from aminnezarat

More from aminnezarat (16)

Health-medicine-and-Block-chain1402-1-12.pptx
Health-medicine-and-Block-chain1402-1-12.pptxHealth-medicine-and-Block-chain1402-1-12.pptx
Health-medicine-and-Block-chain1402-1-12.pptx
 
ارائه ابزار.pptx
ارائه ابزار.pptxارائه ابزار.pptx
ارائه ابزار.pptx
 
00 - BigData-Chapter_01-PDC.pdf
00 - BigData-Chapter_01-PDC.pdf00 - BigData-Chapter_01-PDC.pdf
00 - BigData-Chapter_01-PDC.pdf
 
Smart Data Strategy EN (1).pdf
Smart Data Strategy EN (1).pdfSmart Data Strategy EN (1).pdf
Smart Data Strategy EN (1).pdf
 
slides8 SharedMemory.ppt
slides8 SharedMemory.pptslides8 SharedMemory.ppt
slides8 SharedMemory.ppt
 
BASIC_MPI.ppt
BASIC_MPI.pptBASIC_MPI.ppt
BASIC_MPI.ppt
 
Chap2 GGKK.ppt
Chap2 GGKK.pptChap2 GGKK.ppt
Chap2 GGKK.ppt
 
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
 
04 memory traffic_fundamentals_of_parallelism_and_code_optimization-www.astek...
04 memory traffic_fundamentals_of_parallelism_and_code_optimization-www.astek...04 memory traffic_fundamentals_of_parallelism_and_code_optimization-www.astek...
04 memory traffic_fundamentals_of_parallelism_and_code_optimization-www.astek...
 
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
 
02 vectorization fundamentals_of_parallelism_and_code_optimization-www.astek.ir
02 vectorization fundamentals_of_parallelism_and_code_optimization-www.astek.ir02 vectorization fundamentals_of_parallelism_and_code_optimization-www.astek.ir
02 vectorization fundamentals_of_parallelism_and_code_optimization-www.astek.ir
 
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir
 
Machine learning and big-data-in-physics 13970711-Dr. Amin Nezarat
Machine learning and big-data-in-physics 13970711-Dr. Amin NezaratMachine learning and big-data-in-physics 13970711-Dr. Amin Nezarat
Machine learning and big-data-in-physics 13970711-Dr. Amin Nezarat
 
Big data HPC Convergence-Dr. Amin-Nezarat-(aminnezarat@gmail.com)-2019
Big data HPC Convergence-Dr. Amin-Nezarat-(aminnezarat@gmail.com)-2019Big data HPC Convergence-Dr. Amin-Nezarat-(aminnezarat@gmail.com)-2019
Big data HPC Convergence-Dr. Amin-Nezarat-(aminnezarat@gmail.com)-2019
 
Camera ready-nash equilibrium-ngct2015-format
Camera ready-nash equilibrium-ngct2015-formatCamera ready-nash equilibrium-ngct2015-format
Camera ready-nash equilibrium-ngct2015-format
 
Data set cloudrank-d-hpca_tutorial
Data set cloudrank-d-hpca_tutorialData set cloudrank-d-hpca_tutorial
Data set cloudrank-d-hpca_tutorial
 

06 hpc library_fundamentals_of_parallelism_and_code_optimization-www.astek.ir

  • 1. ‫درس‬4–HPC Libraries Fundamentals of Parallelism & Code Optimization (C/C++,Fortran) ‫در‬ ‫کدها‬ ‫سازی‬ ‫بهینه‬ ‫و‬ ‫سازی‬ ‫موازی‬ ‫مبانی‬ ‫زبانهای‬C/C++,Fortran Amin Nezarat (Ph.D.) Assistant Professor at Payame Noor University aminnezarat@gmail.com www.astek.ir - www.hpclab.ir
  • 2. ‫عناوین‬ ‫دوره‬ 1.‫های‬ ‫پردازنده‬ ‫معماری‬ ‫با‬ ‫آشنایی‬ ‫اینتل‬ 2.Vectorization‫معماری‬ ‫در‬ ‫اینتل‬ ‫کامپایلرهای‬ 3.‫نویسی‬ ‫برنامه‬ ‫با‬ ‫کار‬ ‫و‬ ‫آشنایی‬ ‫در‬OpenMP 4.‫با‬ ‫داده‬ ‫تبادل‬ ‫قواعد‬ ‫و‬ ‫اصول‬ ‫حافظه‬(Memory Traffic)
  • 4. ‫آماده‬ ‫های‬ ‫کتابخانه‬ ‫از‬ ‫چرا‬ ‫کنیم؟‬ ‫استفاده‬ ‫نیست‬ ‫چرخ‬ ‫مجدد‬ ‫اختراع‬ ‫به‬ ‫نیازی‬!! -‫کتابخانه‬‫های‬‫آماده‬‫باگ‬‫کمتری‬‫دارند‬ -‫در‬‫بسیاری‬‫از‬‫زبانهای‬‫سطح‬‫باال‬‫قابل‬‫استفاده‬ ‫هستند‬ C++, Fortran, Python, Perl, Matlab, Mathematica -‫باعث‬‫جابجایی‬‫پذیری‬‫بیشتر‬‫کد‬‫می‬‫شوند‬(‫حتی‬‫به‬ GPU)
  • 7. ‫خطی‬ ‫جبر‬ •‫های‬ ‫کتابخانه‬“Netlib”‫های‬ ‫کتابخانه‬ ‫ترین‬ ‫شده‬ ‫شناخته‬ ‫از‬ ‫یکی‬ Dense linear algebra‫هستند‬ o‫ها‬ ‫ترین‬ ‫معروف‬ ‫جمله‬ ‫از‬:BLAS, LAPACK, BLACS, PBLAS, ScaLAPACK o‫دانشگاه‬ ‫در‬Tennessee‫اند‬ ‫شده‬ ‫داده‬ ‫توسعه‬ o‫آدرس‬ ‫در‬ ‫آنها‬ ‫کد‬ ‫سورس‬ ‫و‬ ‫منابع‬http://netlib.org‫دسترس‬ ‫قابل‬ ‫هستند‬ •‫آنها‬ ‫از‬ ‫که‬ ‫هستند‬ ‫دسترس‬ ‫قابل‬ ‫هم‬ ‫دیگر‬ ‫کتابخانه‬ ‫دیگری‬ ‫تعداد‬ ‫استفاده‬ ‫توان‬ ‫می‬ ‫نیز‬‫کرد‬ oATLAS, GOTO, ACML, MKL, LibSci, …
  • 9. BLAS(Basic Linear Algebra Subroutines) •‫می‬ ‫انجام‬ ‫کتابخانه‬ ‫این‬ ‫در‬ ‫زیر‬ ‫قبیل‬ ‫از‬ ‫ماتریس‬ ‫اصلی‬ ‫عملیاتهای‬ ‫شود‬ oMultiplication, Addition, Rank update, triangular solve •‫است‬ ‫شده‬ ‫بندی‬ ‫دسته‬ ‫سطح‬ ‫سه‬ ‫به‬
  • 10. LAPACK(Linear Algebra PACKage) •‫قبیال‬ ‫از‬ ‫ماتریسی‬ ‫حلهای‬ ‫راه‬ oSimultaneous linear equation, least-squares solutions, eigenvalue problems oMatrix factorizations (LU, Cholesky, QR, SVD, Schur) •‫به‬ ‫زیادی‬ ‫میزان‬ ‫به‬ ‫محاسبات‬ ‫انجام‬ ‫برای‬BLAS‫کند‬ ‫می‬ ‫تکیه‬
  • 11. ScaLAPACK(Scalable LAPACK) •BLACS o‫قابلیت‬Message Passing Interface‫ماشینهای‬ ‫در‬ ‫خطی‬ ‫جبر‬ ‫برای‬ ‫شده‬ ‫توزیع‬ ‫حافظه‬ o‫های‬ ‫آرایه‬2D‫ها‬ ‫پردازه‬ ‫بعدی‬ ‫دو‬ ‫گریدهای‬ ‫و‬ o‫گریدی‬ ‫های‬ ‫پردازه‬ ‫تولید‬ o‫ها‬ ‫ماتریس‬ ‫بین‬ ‫ارتباطات‬ •‫سازی‬ ‫موازی‬LAPACK‫توابع‬ ‫و‬BLAS •‫نویسی‬ ‫برنامه‬ ‫واسطهای‬ ‫توسعه‬BLAS/LAPACK o‫پیشوند‬ ‫شده‬ ‫اضافه‬P‫توابع‬ ‫تمامی‬ ‫به‬ o‫مانند‬PDGEMM
  • 12. ‫جالب‬ ‫های‬ ‫سازی‬ ‫پیاده‬ ‫دیگر‬•PLASMA o‫برای‬ ‫خطی‬ ‫جبر‬ ‫شده‬ ‫سازی‬ ‫بهینه‬ ‫توابع‬Manycore‫ها‬ o‫برای‬ ‫احتمالی‬ ‫جایگزین‬LAPACK ohttp://icl.cs.utk.edu/plasma/ •MAGMA & CULA o‫توابع‬ ‫مشابه‬ ‫توابعی‬LAPCK‫برای‬GPU ohttp://icl.cs.utk.edu/magma/ ohttp://www.culatools.com/
  • 13. ‫تنک‬ ‫های‬ ‫ماتریس‬ •‫پس‬ ‫داریم‬ ‫آنها‬ ‫به‬ ‫کردن‬ ‫توجه‬ ‫برای‬ ‫صفر‬ ‫کافی‬ ‫اندازه‬ ‫به‬: ‫کنید‬ ‫ذخیره‬ ‫را‬ ‫صفر‬ ‫غیر‬ ‫عناصر‬ ‫فقط‬ •‫گذارد‬ ‫می‬ ‫اثر‬ ‫عملکرد‬ ‫و‬ ‫کارایی‬ ‫روی‬ ‫بر‬ ‫چگالی‬ ‫و‬ ‫تنکی‬ ‫الگوی‬ o‫متفاوت‬ ‫و‬ ‫بهینه‬ ‫الگوریتم‬ ‫و‬ ‫سازی‬ ‫ذخیره‬ ‫فرمت‬ ‫از‬ ‫استفاده‬ o‫ندارد‬ ‫وجود‬ ‫کاره‬ ‫همه‬ ‫و‬ ‫یکسان‬ ‫حل‬ ‫راه‬ ‫یک‬ o‫روش‬ ‫دو‬ ‫هر‬ ‫شامل‬ ‫که‬ ‫هستند‬ ‫دسترس‬ ‫در‬ ‫زیادی‬ ‫های‬ ‫کننده‬ ‫حل‬ ‫هستند‬ ‫مستقیم‬ ‫غیر‬ ‫و‬ ‫مستقیم‬
  • 14. ‫های‬ ‫کتابخانه‬ ‫تنک‬ ‫سیستمهای‬•Hypre (preconditioners) •KLU, Paraklete, AztecOO (parts of Trilinos) o‫تنک‬ ‫سیستمهای‬ ‫برای‬ ‫مستقیم‬ ‫غیر‬ ‫و‬ ‫مستقیم‬ ‫های‬ ‫کننده‬ ‫حل‬ •SuperLU, UMFPACK, MUMPS o‫تنک‬ ‫سیستمهای‬ ‫برای‬ ‫مستقیم‬ ‫های‬ ‫کننده‬ ‫حل‬ •CuSP, CuSPARSE o‫در‬ ‫استفاده‬ ‫برای‬ ‫هایی‬ ‫کننده‬ ‫حل‬Nvidia GPU •‫دیگر‬ ‫بسیاری‬ ‫و‬....
  • 15. ‫کتابخانه‬(Fastest Fourier Transform)FFT •‫در‬ ‫بعدی‬ ‫سه‬ ‫و‬ ‫دو‬ ،‫یک‬ ‫های‬ ‫مجموعه‬FFTs •‫شود‬ ‫می‬ ‫استفاده‬ ‫نسخه‬ ‫دو‬ ‫از‬ ‫معمول‬ ‫طور‬ ‫به‬: o‫نسخه‬2‫از‬ ‫پشتیبانی‬ ‫با‬MPI o‫نسخه‬3‫از‬ ‫پشتیبانی‬ ،‫بیشتر‬ ‫بسیار‬ ‫کارایی‬ ‫با‬MPI‫حال‬ ‫در‬ ‫است‬ ‫سازی‬ ‫پیاده‬ •‫شامل‬ ‫آن‬ ‫های‬ ‫سازی‬ ‫پیاده‬ ‫سایر‬ •Cray CRAFFT o‫تابع‬ ‫بهترین‬ ‫خودکار‬ ‫صورت‬ ‫به‬FFT‫کند‬ ‫می‬ ‫انتخاب‬ ‫را‬ o‫است‬ ‫توابع‬ ‫از‬ ‫موازی‬ ‫و‬ ‫سلایر‬ ‫نسخه‬ ‫دو‬ ‫هر‬ ‫دارای‬ oInfo_crafft‫ببینید‬ ‫را‬ •AMD ACML •Intel MKL and IPP •CuFFT o‫توابع‬FFT‫برای‬Nvidia GPU
  • 17. ‫تخصصی‬ ‫های‬ ‫کتابخانه‬ •OpenMM oMolecular dynamics o‫از‬ ‫پشتیانی‬GPUs •Libint oTwo-body molecular integrals •Overture o‫های‬ ‫کننده‬ ‫حل‬PDE‫برای‬ ‫که‬CFD‫اند‬ ‫شده‬ ‫طراحی‬ •Libgenometools o‫توابع‬Genome Analysis
  • 18. ‫های‬ ‫کتابخانه‬I/O •‫های‬ ‫داده‬HPC‫شوند؟‬ ‫ذخیره‬ ‫باید‬ ‫چگونه‬ o‫و‬ ‫دیتا‬ ‫متا‬ ،‫مبهم‬ ،‫غیرهمگن‬ ،‫پیچیده‬ ،‫بزرگ‬... o‫تصادفی‬ ‫و‬ ‫موازی‬ ‫دسترسی‬ •‫توانند‬ ‫می‬ ‫سختی‬ ‫به‬ ‫معمول‬ ‫و‬ ‫سنتی‬ ‫داده‬ ‫های‬ ‫پایگاه‬ ‫باشند‬ ‫پاسخگو‬ o‫ندارند‬ ‫را‬ ‫بزرگ‬ ‫اشیاء‬ ‫مدیریت‬ ‫امکان‬ o‫برای‬ ‫ضروری‬ ‫غیر‬ ‫خصوصیات‬ ‫زیادی‬ ‫تعداد‬HPC‫آنها‬ ‫در‬ ‫شود‬ ‫می‬ ‫نگهداری‬ •‫دارد‬ ‫وجود‬ ‫بهتری‬ ‫راهکار‬ ‫یک‬ ‫به‬ ‫نیاز‬ oNetCDF oHDF5
  • 19. ‫های‬ ‫کتابخانه‬I/O: HDF5•‫فایل‬ ‫و‬ ‫ای‬ ‫داده‬ ‫مدل‬ ،‫کتابخانه‬ ‫یک‬-‫ذخیره‬ ‫برای‬ ‫فرمت‬ ‫بعدی‬ ‫چند‬ ‫های‬ ‫داده‬ ‫مدیریت‬ ‫و‬ ‫سازی‬ •‫را‬ ‫ها‬ ‫داده‬ ‫متا‬ ‫و‬ ‫پیچیده‬ ‫ای‬ ‫داده‬ ‫اجزاء‬ ‫تواند‬ ‫می‬ ‫کند‬ ‫ذخیره‬ •‫فایل‬-‫هستند‬ ‫جابجایی‬ ‫قابل‬ ‫فایلها‬ ‫و‬ ‫فرمت‬ •‫امکان‬I/O‫از‬ ‫استفاده‬ ‫با‬ ‫موازی‬MPI-IO‫دارد‬ ‫وجود‬ •‫برای‬ ‫نویسی‬ ‫برنامه‬ ‫واسطهای‬C,C++,Fortran , Java‫دارد‬
  • 20. ‫های‬ ‫کتابخانه‬I/O: NetCDF•‫می‬ ‫استفاده‬ ‫زمین‬ ‫علوم‬ ‫دانشمندان‬ ‫توسط‬ ‫گستره‬ ‫طور‬ ‫به‬ ‫شود‬ •‫شده‬ ‫بهینه‬ ‫بزرگ‬ ‫های‬ ‫داده‬ ‫بخشهای‬ ‫زیر‬ ‫به‬ ‫دسترسی‬ ‫برای‬ ‫است‬ o‫ترتیبی‬ ‫دسترسی‬ ‫نه‬ ‫دارد‬ ‫داده‬ ‫به‬ ‫مستقیم‬ ‫دسترسی‬ •‫نسخه‬4‫بر‬ ‫مبتنی‬ ‫آن‬HDF5‫است‬ ‫شده‬ ‫سازی‬ ‫پیاده‬ o‫فایلهای‬ ‫با‬ ‫سازگار‬HDF5‫است‬ •‫دارد‬ ‫موازی‬ ‫نسخه‬Parallel NetCDF(pNetCDF) o‫از‬MPI-IO‫کند‬ ‫می‬ ‫پشتیانی‬
  • 22. ‫ها‬ ‫چارچوب‬ ‫عددی‬ ‫مسائل‬ ‫حل‬ ‫برای‬ ‫توابع‬ ‫از‬ ‫وسیعی‬ ‫مجموعه‬ ‫ها‬ ‫چارچوب‬ ‫کنند‬ ‫می‬ ‫ارائه‬ ‫را‬ •‫را‬ ‫آنها‬ ‫از‬ ‫بسیاری‬ ‫اما‬ ،‫نیستند‬ ‫ساده‬ ‫کتابخانه‬ ‫یک‬ ‫دارند‬ ‫اختیار‬ ‫در‬ ‫مختلف‬ ‫کارهای‬ ‫برای‬ o‫حل‬ ،‫موازی‬ ‫های‬ ‫ماتریس‬ ‫برای‬ ‫هایی‬ ‫داده‬ ‫انواع‬ ،‫موازی‬ ‫ارتباطات‬ ،‫خطی‬ ‫غیر‬ ‫و‬ ‫خطی‬ ‫های‬ ‫کننده‬IO‫و‬ ... •‫هم‬ ‫با‬ ‫خوبی‬ ‫صورت‬ ‫به‬ ‫را‬ ‫مختلف‬ ‫بخشهای‬ ‫معمول‬ ‫طور‬ ‫به‬ ‫استفاده‬ ‫نحوه‬ ‫نگران‬ ‫دیگر‬ ‫کاربر‬ ‫و‬ ‫اند‬ ‫کرده‬ ‫یکپارچه‬ ‫بود‬ ‫نخواهد‬ ‫ماتریس‬ ‫نمایش‬ ‫روشهای‬ ‫و‬ ‫ها‬ ‫داده‬ ‫انواع‬ ‫از‬
  • 23. Trilions ‫به‬ ‫که‬ ‫هایی‬ ‫کتابخانه‬ ‫و‬ ‫ها‬ ‫بسته‬ ‫از‬ ‫جامع‬ ‫مجموعه‬ ‫یک‬ ‫صورت‬loosly‫تحقیقاتی‬ ‫مرکز‬ ‫در‬ ‫که‬ ‫اند‬ ‫شده‬ ‫مرتبط‬ ‫هم‬ ‫به‬ Sandia‫است‬ ‫شده‬ ‫داده‬ ‫توسعه‬ •‫امکان‬ ‫که‬ ‫است‬ ‫شده‬ ‫طراحی‬ ‫باال‬ ‫به‬ ‫پایین‬ ‫صورت‬ ‫به‬ ‫را‬ ‫اشتراکی‬ ‫حافظه‬ ‫نویسی‬ ‫برنامه‬ ‫مدل‬ ‫از‬ ‫استفاده‬ ‫کند‬ ‫می‬ ‫فراهم‬ •‫هر‬‫صورت‬ ‫به‬ ‫توان‬ ‫می‬ ‫را‬ ‫ماژولها‬ ‫و‬ ‫ها‬ ‫بسته‬ ‫از‬ ‫یک‬ ‫کرد‬ ‫کامپایل‬ ‫مجزا‬ •‫دارای‬‫است‬ ‫خوب‬ ‫بسیار‬ ‫رایت‬ ‫کپی‬LGPL , BSD •‫از‬ ‫بیش‬ ‫شامل‬50‫است‬ ‫مختلف‬ ‫کارهای‬ ‫برای‬ ‫ماژول‬ oLinear solvers, mesh partitioning, utilities for FEM solvers, optimization, automatic differentiation