HPC Nerds | High Performance and Scientific Computing
261 subscribers
17 photos
20 links
High performance and scientific computing

🔴 High Performance Computing
🔴 Parallel Programming
🔴 Distributed Programming
🔴 GPU Programming
🔴 Scientific Computing
🔴 Simulation



admin: @amirabbasasadi
Download Telegram
قبلا در مورد BLAS گفتم یکی از تکنیک هایی که پیاده سازی های سریع ازش استفاده قابل توجهی کردن SIMD هست و کلا در این مدل محاسبات خیلی موثر و پراستفاده است. حقیقت اینه که به علت وابستگی زیاد به سخت افزار انجام دادنش به صورت portable میتونه پر دردسرتر از موازی سازی در سطوح بالاتر باشه به همین خاطر منابع آموزشی زیادی برای یادگرفتنش نیست. به هر حال اگر دوست دارید شیوه انجامش در C++ رو یاد بگیرید، میتونید این آموزش از Sergey Slotin رو ببینید:
https://youtu.be/vIRjSdTCIEU?si=a2oT-lYFxWPGIkOQ

#cpp #cplusplus #SIMD
@hpcnerds
3👍2
این تیکه کد رو ببینید، وقتی اجرا بشه 7 تا عمل ضرب انجام میده:
x = x*x*x*x*x*x*x*x;

به صورت پیشفرض کامپایلر GCC کد بالا رو دقیقا به همین صورتی که هست کامپایل میکنه. یکی از flag های بهینه سازی کد در GCC اینه که به صورت پیشفرض غیرفعاله:
-fassociative-math

اگه کدی که گفتم رو با این فلگ کامپایل کنیم، کامپایلر کد رو به یه همچین چیزی تبدیل میکنه تا تعداد ضرب ها رو از 7 به 3 کاهش بده:
x *= x;
x *= x;
x *= x;

وقتی این flag فعال باشه، کامپایلر سعی میکنه با بازی کردن با ترتیب عملیات های ریاضی داخل کد، سرعت رو افزایش بده. این البته مثال چرتی بود، مثال جالب تر اینه ممکنه یه حلقه رو بر این اساس بازنویسی کنه که اجراش سریعتر بشه. از اونجایی که به خاطر خطاهای عددی، ترتیب عمل هایی مثل ضرب و جمع میتونه نتیجه محاسبات رو عوض کنه، این flag به صورت پیشفرض غیرفعال هست. در کل GCC هشت تا flag برای بهینه سازی عملیات های پایه ریاضی داره که میتونید در پروژه هایی که شامل محاسبات عددی سنگین ولی نه چندان حساس به خطا هستن، استفاده کنید

-ffinite-math-only
-fno-signed-zeros
-fno-trapping-math
-fassociative-math
-fno-math-errno
-freciprocal-math
-funsafe-math-optimizations
-fcx-limited-range

استفاده از flag زیر معادل با فعال کردن همشونه:
-ffast-math

تو این پست میتونید بخونید که هر کدوم از اینا دقیقا چیکار میکنن:
https://kristerw.github.io/2021/10/19/fast-math/

#cpp #gcc
@hpcnerds
7👍6
قراره یک ورکشاپ یک روزه در مورد کاربرد های Julia در HPC توسط Oak Ridge National Laboratory برگزار بشه که رایگان و مجازی هست. تاریخش هم June 18
https://www.olcf.ornl.gov/calendar/julia-for-hpc-and-intro-to-julia-for-science/
ضمنا این مرکز میزبان قویترین سوپرکامپیوتر فعلی یعنی Frontier هست و توصیه میکنم رویداد هایی که در مورد HPC برگزار میکنه رو از دست ندید :) سه روز بعدش هم یک ورکشاپ دیگه برای کاربرد های Julia در محاسبات علمی برگزار میشه که واسه ثبت نام هر دو میتونید فرم بالا رو ببینید. مهلت ثبت نام هم June 11 هست.
#julia
@hpcnerds
3🔥3🙏2👍1