آشنایی با محاسبات موازی
مردم همیشه میپرسند که چگونه عملکرد نرمافزار شبیهسازی COMSOL Multiphysics® در یک سیستم موازی بهبود مییابد، بهویژه اکنون که رایانههای رومیزی چند هستهای بزرگ نسبتاً ارزان هستند و اجاره زمان در سرویسهای ابری مانند Amazon Elastic Compute Cloud™ آسان است. با این حال، به نظر میرسد که همیشه نمیتوان عملکرد سریعتری را تنها با استفاده از سختافزار بیشتر در این مشکل به دست آورد. برای درک دلیل، اجازه دهید نگاهی مفهومی به رایانه ها و الگوریتم هایی که نرم افزار COMSOL® استفاده می کند بیاندازیم.
یک مدل بسیار ساده از یک کامپیوتر رومیزی معمولی
بیایید با در نظر گرفتن یک مدل بسیار ساده از یک کامپیوتر شروع کنیم که فقط از سه بخش تشکیل شده است: حافظه دسترسی تصادفی (RAM) که برای ذخیره اطلاعات استفاده می شود. یک واحد پردازش که عملیات ریاضی را روی اطلاعات انجام می دهد. و یک اتوبوس ، که داده ها را بین این دو منتقل می کند.
شماتیک قسمت های کلیدی کامپیوتر
برای اهداف این پست وبلاگ، بیایید تصور کنیم که همه دادههای مربوط به مشکل در RAM قرار دارند و این دادهها از طریق گذرگاه به واحد پردازش منتقل میشوند. گذرگاه حافظه خود می تواند از چندین کانال تشکیل شده باشد که به صورت موازی کار می کنند و به طور موثری توان عملیاتی را افزایش می دهند. واحد پردازش میتواند از چندین تراشه تشکیل شده باشد که هر کدام میتوانند چندین هسته محاسباتی داشته باشند که میتوانند به طور همزمان روی دادهها کار کنند، پس از بارگیری آنها از حافظه از طریق گذرگاه. بیایید از این به عنوان مدل ذهنی خود از رایانه ای که روی دسکتاپ ما نشسته است استفاده کنیم.
آیا می توانیم یک گیم بازی کنیم؟
بسیاری از مشکلات در علوم کامپیوتر را می توان بازی هایی دانست که در کودکی انجام می دادیم. بیایید به سه مورد از کلاسیک ها نگاه کنیم.
در جستجوی والتر (والدو)
اول، بیایید سعی کنیم چهره ای در میان جمعیت پیدا کنیم، á la والدو کجاست؟
عکسی از کنفرانس COMSOL. میتونی منو پیدا کنی؟
فرض کنید عکسی با صدها نفر داریم – سریعترین راه برای یافتن یک نفر چیست؟
میتوانید تمام تصویر را توسط خودتان اسکن کنید و چهرهها را یکی یکی بررسی کنید تا ببینید آیا با فردی که جستجو میکنید مطابقت دارند یا خیر. اما، این می تواند بسیار کند باشد. همچنین می توانید دوستان خود را برای کمک دعوت کنید. در این مورد، ابتدا تصویر را به قطعات کوچکتر تقسیم می کنید. سپس هر فرد می تواند به طور مستقل روی یک قطعه کار کند.
در زبان علوم کامپیوتر می گوییم که این بازی کاملاً موازی است .
دو نفر کار می کنند زمان حل را به نصف کاهش می دهند، چهار نفر زمان حل را به چهار کاهش می دهند و غیره. اما، یک محدودیت وجود دارد – شما فقط می توانید به تعداد چهره هایی که در میان جمعیت وجود دارد، به شما کمک کنند. فراتر از این نقطه، دعوت از افراد بیشتری برای کمک، روند را تسریع نمیکند و حتی ممکن است کار را کند کند.
حل یک پازل
بعد، بیایید سعی کنیم یک پازل را حل کنیم.
می توانید تصویر را کنار هم بگذارید؟
این کمی پیچیده تر است – شما می توانید چندین نفر را در یک زمان کار کنید، اما آنها نمی توانند به طور مستقل کار کنند. هر فرد چند ده قطعه پازل را از توده اصلی برای خود برمی دارد و سعی می کند آنها را با قطعاتی که دوستانش در حال چیدن آنها هستند در کنار هم قرار دهد. مردم سعی خواهند کرد قطعات خود را با هم هماهنگ کنند. آنها قطعات را به عقب و جلو خواهند داد و دائماً با یکدیگر در ارتباط خواهند بود.
یک دانشمند کامپیوتر این را یک بازی تا حدی موازی می نامد .
اگرچه افزودن افراد بیشتر زمان حل را کاهش می دهد، اما یک رابطه ریاضی ساده نخواهد بود. فرض کنید یک پازل 1000 تکه ای دارید و 10 نفر هر کدام 100 قطعه دارند. آنها زمان نسبتاً بیشتری را صرف کار بر روی قطعات خود و زمان کمتری برای صحبت خواهند کرد. از طرف دیگر، اگر 100 نفر با هر کدام 10 قطعه داشته باشید، تکه های صحبت و حرکت بسیار بیشتری در اطراف وجود خواهد داشت. و وقتی 1000 نفر روی یک پازل با 1000 قطعه کار می کنند چه اتفاقی می افتد؟ آن را در خانه امتحان کنید!
احتمالاً می توانید ببینید که برای یک پازل با اندازه مشخص، حداکثر تعداد افرادی وجود دارند که می توانند آن را کار کنند. این تعداد بسیار کمتر از تعداد قطعات پازل خواهد بود. افزودن افراد بیشتر باعث افزایش سرعت کارها نمی شود.
انباشتن بلوک ها
در نهایت، بیایید سعی کنیم چند بلوک را روی هم قرار دهیم تا یک برج تشکیل شود و سپس با برداشتن بلوکها از سطوح پایینتر و اضافه کردن آنها به بالا، بدون اینکه سازه واژگون شود، ارتفاع برج را بالا ببریم.
چقدر می توانید برج را روی هم قرار دهید؟ (برج JENGA روی یک کاشی ایستاده است. “جنگا تحریف شده” توسط Guma89 – اثر شخصی. دارای مجوز Creative Commons Attribution-Share Alike 3.0 از طریق Wikimedia Commons .)
در این بازی فقط یک نفر می تواند در یک زمان بازی کند و می توان گفت که بازی کاملا سریالی است .
بازی با افراد بیشتر، بازی را سریعتر تمام نمیکند، و اگر افراد زیادی را برای بازی دعوت کنید، برخی از آنها هرگز فرصت انجام کاری را نخواهند داشت. در واقع، احتمالاً سریعترین (البته نه چندان اجتماعی) این است که خودتان این بازی را انجام دهید.
این چگونه با COMSOL Multiphysics ارتباط دارد؟
احتمالاً میتوانید روابط بین انجام این بازیها و استفاده از COMSOL Multiphysics را ببینید. چگونه است که ما شروع به طبقه بندی مسائلی که در COMSOL Multiphysics حل می کنید به این دسته بندی ها می کنیم:
- جزئی موازی – همه مسائل در COMSOL Multiphysics یک جزء تا حد موازی دارند. حل یک سیستم معادلات خطی یک مسئله تا حدی قابل موازی سازی است. بنابراین، مهم نیست که چه کلاسی از مسئله را حل می کنید، بخش (معمولاً قابل توجهی) از زمان حل برای حل یک مسئله تا حدی موازی صرف می شود. برای مسائلی که فقط یک مسئله ثابت، دامنه فرکانس یا فرکانس ویژه را حل می کنید، تقریباً تمام زمان صرف حل سیستم معادلات خطی می شود.
- کاملاً موازی – یک مشکل کاملاً موازی هنگام استفاده از عملکرد Parametric Sweep مانند هنگام جارو کردن طیف وسیعی از ابعاد هندسی ایجاد می شود. هر مرحله در جابجایی پارامتر نیاز به حل یک مسئله تا حدی قابل موازی سازی دارد، اما هر پارامتر می تواند به طور مستقل حل شود، و اگر پارامترها را به طور مستقل حل کنید، هیچ اطلاعاتی بین موارد مختلف رد و بدل نمی شود.
- کاملا سریال – یک مشکل سریال زمانی ایجاد می شود که بخش های بعدی راه حل به مقادیر محاسبه شده قبلی بستگی دارد. مدل های وابسته به زمان، مدل هایی که از روش های ادامه استفاده می کنند و مسائل بهینه سازی در این دسته قرار می گیرند. همه چنین مدل هایی هنوز نیاز به حل یک سیستم معادلات خطی دارند، اما آنها این کار را به صورت متوالی انجام می دهند. سرعت احتمالی عمدتاً توسط افزایش سرعت ممکن هنگام حل سیستم نیمه موازی معادلات خطی کنترل می شود.
این چگونه به سخت افزار دسکتاپ من مربوط می شود؟
هنگام حل، COMSOL Multiphysics بیشتر وقت خود را صرف حل یک مسئله نیمه موازی می کند. بنابراین، در واقع در سخت افزار چه اتفاقی می افتد؟
نرم افزار COMSOL با اطلاعات بارها، شرایط مرزی، خواص مواد و مش المان محدود شروع می شود و داده هایی را تولید می کند که در طول فرآیند حل استفاده می شود. تعداد زیادی گیگابایت حافظه برای ذخیره ماتریس های سیستم، تولید اطلاعات میانی و محاسبه راه حل مورد نیاز است. در حالت ایده آل، تمام این اطلاعات باید در RAM ذخیره شوند.
شایان ذکر است که COMSOL Multiphysics حلکنندههای مبتنی بر دیسک سخت را نیز ارائه میکند، اما سرعت آنها نسبت به زمانی که مستقیماً از طریق RAM به دادهها دسترسی پیدا میکند، کندتر خواهد بود. مزیت آنها این است که به شما اجازه می دهند مشکلات بزرگتری را حل کنید.
البته، این دادهها باید توسط پردازندهها عملیاتی شوند، بنابراین مشخص میشود که گلوگاه موجود در راهحل روی رایانه رومیزی در واقع پهنای باند گذرگاه حافظه است – بسیار بیشتر از سرعت پردازنده یا حتی تعداد هسته های پردازنده
در مورد خوشه ها چطور؟
رایانههای خوشهای در واقع چیزی بیش از رایانههای معمولی یا گرههایی نیستند که با یک لایه ارتباطی اضافی متصل هستند.
بیایید فرض کنیم که ما با یک خوشه کار می کنیم که در آن هر گره از نظر کارایی با کامپیوتر منفرد ما برابر است. داده ها از طریق سخت افزار اتصال بین گره ها منتقل می شوند. سرعت اتصال نه تنها به نوع سخت افزار، بلکه به پیکربندی فیزیکی نیز بستگی دارد. در مجموع، معمولاً سرعت آن کمتر از سرعت گذرگاه حافظه در هر گره منفرد است. این یک ملاحظه اضافی را معرفی می کند.
یک مدل ساده از یک خوشه با چهار گره محاسباتی.
قبلاً دیدهایم که مورد تا حدی قابل موازیسازی مهمترین مورد برای درک است، بنابراین روی آن تمرکز خواهیم کرد.
در یک خوشه، می گوییم که ما این مشکل را به معنای موازی توزیع شده حل می کنیم . در چارچوب بازی ما برای چیدن یک پازل، میتوانیم به این فکر کنیم که چند نفر از دوستانمان را در اتاقهای مختلف خانهمان گروهبندی میکنیم و به هر کدام یک پشته از قطعات میدهیم. اکنون علاوه بر این باید قطعات و اطلاعات را بین اتاق های مختلف ارسال کنید.
COMSOL Multiphysics الگوریتم راه حل را تنظیم می کند تا میزان کار انجام شده به صورت محلی را به حداکثر برساند و مقدار داده هایی را که به عقب و جلو ارسال می شود به حداقل برساند. این حلکنندههای موازی توزیعشده، که هنگام استفاده از مجوز شبکه شناور در دسترس هستند، الگوریتم راهحل را تنظیم میکنند تا مشکل را به طور مؤثر بر روی گرههای مختلف خوشه تقسیم کند. باز هم می بینیم که محدودیتی وجود دارد. اگر تعداد زیادی گره درگیر باشد، ما همیشه داده ها را به عقب و جلو انتقال می دهیم. بنابراین، برای هر مشکل خاص، تعدادی گره وجود دارد که بیش از آنها سرعت راه حل بهبود نمی یابد .
حال، اگر یک مشکل کاملاً موازی دارید، مانند یک جاروی پارامتری، که در آن هر مرحله از جارو کردن را می توان به طور کامل در رم موجود در یک گره حل کرد، پس یک کلاستر یک راه تقریباً عالی برای سرعت بخشیدن به مدل سازی شما است. میتوانید از تعداد گرههایی که مقادیر پارامتری وجود دارد که میخواهید آنها را جارو کنید، استفاده کنید.
خلاصه ای از محاسبات موازی و COMSOL Multiphysics®
اکنون باید انواع مختلفی از مشکلاتی را که COMSOL Multiphysics حل می کند، از نظر موازی سازی و نحوه ارتباط آنها با عملکرد، داشته باشید.
وقتی روی یک کامپیوتر کار می کنید، گلوگاه عملکرد به جای سرعت کلاک و تعداد پردازنده ها، سرعت گذرگاه است. برای ماشینهای رومیزی، دستورالعملهای خرید سختافزار خاصتری را نیز در پایگاه دانش خود منتشر میکنیم . برای کامپیوترهای خوشه ای، بسته به اندازه مشکل، معماری خوشه و نوع مشکل حل شده، عملکرد می تواند بسیار متغیرتر باشد. اگر جزئیات فنی بیشتری درباره خوشهها میخواهید، لطفاً این سری از وبلاگها را در مورد محاسبات موازی ترکیبی ببینید .
خدمات وب آمازون، نشانواره «تأمین شده توسط خدمات وب آمازون» و Amazon Elastic Compute Cloud علائم تجاری Amazon.com, Inc. یا شرکتهای وابسته آن در ایالات متحده و/یا سایر کشورها هستند.
JENGA® یک علامت تجاری ثبت شده متعلق به Pokonobe Associates است.
- لینک دانلود به صورت پارت های 1 گیگابایتی در فایل های ZIP ارائه شده است.
- در صورتی که به هر دلیل موفق به دانلود فایل مورد نظر نشدید به ما اطلاع دهید.
برای مشاهده لینک دانلود لطفا وارد حساب کاربری خود شوید!
وارد شویدپسورد فایل : پسورد ندارد گزارش خرابی لینک
دیدگاهتان را بنویسید