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

PDF
سیستم فایل HDFS
PPTX
IranOUG_Oracle_Multitenant
PDF
Data-Centered Architecture: Blackboard Architecture Style
PDF
ورودی خروجی Hadoop
PDF
Rbdmap ceph realease 0.2
PDF
Cisco Exploration 2 In Persion-Muhibullah Aman
PDF
مسیردهی و پروتوکولهای مسیریابی
PDF
آشنایی با Hadoop
سیستم فایل HDFS
IranOUG_Oracle_Multitenant
Data-Centered Architecture: Blackboard Architecture Style
ورودی خروجی Hadoop
Rbdmap ceph realease 0.2
Cisco Exploration 2 In Persion-Muhibullah Aman
مسیردهی و پروتوکولهای مسیریابی
آشنایی با Hadoop

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

PDF
how upgrade ceph
PDF
Pg autoscaling in ceph
PDF
rbdmap in ceph
PDF
how enable ceph dashboard
PDF
Ceph: A Powerful, Scalable, and Flexible Storage Solution
PDF
Network management 2_sample
PDF
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
PDF
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
PDF
OpenEHR پرونده الکترونیک سلامت
PPT
Data Base 2 paygah dade farsi language.ppt
PDF
Ssh edition 2
PDF
maxscale and spider engine for performance and security and clustering
ODP
هسته لینوکس و کامپایل آن
PPTX
سیستم های عامل فصل ۱
PDF
Herat University Library Management System Persian User Manual
PPTX
سیستم های عامل فصل ۳
PDF
Machine & Assembly Language - Chapter 1
PPTX
سیستم های عامل فصل ۵
PPTX
پیش مقدمه آموزش نرم افزار متلب
PPTX
Openstack Overview
how upgrade ceph
Pg autoscaling in ceph
rbdmap in ceph
how enable ceph dashboard
Ceph: A Powerful, Scalable, and Flexible Storage Solution
Network management 2_sample
1st Hadoop Tehran Workshop - اسلاید اولین کارگاه آموزش هدوپ تهران
Introduction to Hadoop and Spark - اسلاید کارگاه آموزش هدوپ و اسپارک شیراز
OpenEHR پرونده الکترونیک سلامت
Data Base 2 paygah dade farsi language.ppt
Ssh edition 2
maxscale and spider engine for performance and security and clustering
هسته لینوکس و کامپایل آن
سیستم های عامل فصل ۱
Herat University Library Management System Persian User Manual
سیستم های عامل فصل ۳
Machine & Assembly Language - Chapter 1
سیستم های عامل فصل ۵
پیش مقدمه آموزش نرم افزار متلب
Openstack Overview
Ad

More from aminnezarat (16)

PPTX
Health-medicine-and-Block-chain1402-1-12.pptx
PPTX
ارائه ابزار.pptx
PDF
00 - BigData-Chapter_01-PDC.pdf
PDF
Smart Data Strategy EN (1).pdf
PPT
slides8 SharedMemory.ppt
PPT
BASIC_MPI.ppt
PPT
Chap2 GGKK.ppt
PPTX
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
PPTX
04 memory traffic_fundamentals_of_parallelism_and_code_optimization-www.astek...
PPTX
03 open mp_fundamentals_of_parallelism_and_code_optimization-www.astek.ir
PPTX
02 vectorization fundamentals_of_parallelism_and_code_optimization-www.astek.ir
PPTX
01 introduction fundamentals_of_parallelism_and_code_optimization-www.astek.ir
PDF
Machine learning and big-data-in-physics 13970711-Dr. Amin Nezarat
PDF
Big data HPC Convergence-Dr. Amin-Nezarat-(aminnezarat@gmail.com)-2019
PDF
Camera ready-nash equilibrium-ngct2015-format
PDF
Data set cloudrank-d-hpca_tutorial
Health-medicine-and-Block-chain1402-1-12.pptx
ارائه ابزار.pptx
00 - BigData-Chapter_01-PDC.pdf
Smart Data Strategy EN (1).pdf
slides8 SharedMemory.ppt
BASIC_MPI.ppt
Chap2 GGKK.ppt
05 mpi fundamentals_of_parallelism_and_code_optimization-www.astek.ir
04 memory traffic_fundamentals_of_parallelism_and_code_optimization-www.astek...
03 open mp_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
Machine learning and big-data-in-physics 13970711-Dr. Amin Nezarat
Big data HPC Convergence-Dr. Amin-Nezarat-(aminnezarat@gmail.com)-2019
Camera ready-nash equilibrium-ngct2015-format
Data set cloudrank-d-hpca_tutorial
Ad

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