ابر رایانه
ابر رایانه
خواندن ۳ دقیقه·۵ ماه پیش

برنامه نویسی موازی در محاسبات سنگین به همراه MPI

سخنرانی امروز درباره برنامه‌نویسی موازی با MPIاست. بنابراین، بخش اول واقعاً به بررسی MPIمی‌پردازد که رابط ارسال پیام نامیده می‌شود. در ادامه، به مقدمه‌ای از دوره‌های قبل اشاره می‌شود. در حال انجام، ما در حال ارسال پیام هستیم و در اصل به دلایلی برای انجام این کار پرداخته‌ایم.

اگر در ساحل با ارتفاع موج بالاتری مواجه شویم، ممکن است نیاز به قایق‌های بادبانی یا حتی اسکی روی آب باشد. این وضعیت پیچیدگی بیشتری از جهان واقعی را ایجاد می‌کند که ممکن است مدل‌سازی یا شبیه‌سازی آب زیرزمینی را مورد بررسی قرار دهیم، با تقسیم یک منطقه بزرگ به قطعات کوچکتر و محاسبه فیزیک در مدل‌های مختلف مانند جو یا تعامل زمین و سپس آب زیرزمینی.


این همه به پیچیدگی بیشتری وابسته است و نیازمند داده‌های بیشتری است که باید ذخیره و پردازش شوند. ممکن است این حجم داده به اندازه‌ای باشد که یک پردازنده به تنهایی نتواند آن را پردازش کند، به خصوص وقتی که معادلات فیزیکی مانند محاسبه ارتفاع موج را مورد بررسی قرار می‌دهیم. در این مواقع، ممکن است فرآیندها بسیار کند باشند، به ویژه اگر ما بخواهیم در یک مقیاس بزرگ مانند ساحل کل یا پیش‌بینی آب و هوای یک کشور عمل کنیم.


در ادامه، در مورد موازی سازی صحبت خواهیم کرد و از اصول بنیادی آن نیز بهره خواهیم برد. MPI به ما یک مجموعه از توابع ارائه می‌دهد که به ما این امکان را می‌دهد که برنامه‌های توزیع شده را پیاده‌سازی کنیم. این نوع برنامه‌نویسی به دلیل این است که داده‌ها در حافظه پردازنده‌ها پنهان هستند و مستقیماً به آنها دسترسی نداریم، بلکه نیاز به ارسال پیام داریم تا داده‌هایی که بر روی پردازنده‌های دیگر موجود هستند را دریافت کنیم.

در ادامه، به مفاهیم پیچیده‌تری مانند برنامه‌های HPC که با استفاده از MPI پیاده‌سازی می‌شوند، خواهیم پرداخت. این پیاده‌سازی‌ها به دلیل این است که بهبود عملکرد ماشین‌های HPC جدیدتر با CPUهای بهتر را به دنبال دارند، بسیار حیاتی است.

اگر دسترسی داشته باشید و پیش‌تر چگونه این کار را انجام داده‌اید، ممکن است با ماژول `Avail` انجام شود. در یکی از ماژول‌های عنکبوتی، می‌توانید عمیق‌تر شیرجه بزنید و باید بگویم که آنچه که نیاز داریم، وجود دارد. دسترسی به سیستم برای استفاده از استانداردهای `cssh` برای دسترسی به ماشین‌های HPC راه دور مهم است، همچنین پیاده‌سازی با کارایی بالای `openmpi`. اگرچه پیاده‌سازی‌های مختلفی از طریق `YouTube` وجود دارد، اما بعد از آشنایی کمی با این موضوع، تکالیف را با سخنرانی‌های عملی بعدی می‌بینیم.

پیاده‌سازی‌های دیگر را نیز درک خواهید کرد، زیرا کم و بیش از همان استاندارد پیروی می‌کنند. مرحله اول در واقع زمانی است که نمونه‌های خود را که در گذشته داشتیم، به همان شکل گسترش می‌دهیم. بنابراین در مرحله اول هیچ تغییری ایجاد نشد، ما یک `SSH` به سیستم راه دور مانند `YouTube` می‌خواهیم. برای یک برنامه قدرت، فقط برای شما به عنوان یک ایده عملی و فراتر از آن، به فکر خواهم افتاد که به کجا می‌روید.


سیستم `Deep` در آلمان یا سیستم `YouTube` در ایسلند، هر دو اساساً یک MPI دارند، اما سؤال این است که آیا آنها همان پیاده‌سازی MPI را دارند؟ با این حال، این خیلی مهم نیست، زیرا MPIبسیار قابل حمل است. امیدواریم به زودی به `YouTube` برویم و سپس با برخی از متخصصان که همچنین مدیران هستند، ملاقات کنیم تا احساس بزرگتری از دست آوریم که در واقع دستگاه HPC در مورد چیست.

مرحله دوم پس از آن جالب است، زیرا همیشه با یک برنامه C معمولی شروع می‌کنید. اگر اکنون با برنامه پاور از ابتدا شروع می‌کنید، نکته جالب اینجا حذف آن است. این می‌تواند برنامه‌های پیچیده‌تری را در CFD مدیریت کند.

ttps://shabihsazan.com/%D8%A7%D8%AC%D8%A7%D8%B1%D9%87-%D8%A7%D8%A8%D8%B1-%D8%B1%D8%A7%DB%8C%D8%A7%D9%86%D9%87/


برنامه نویسیبرنامه نویسی موازیمحاسبات سنگینmpihpc
شاید از این پست‌ها خوشتان بیاید