پرش به محتویات

پارتیشن‌بندی مش

هنگام تحلیل موازی یک مش بزرگ با چند فرایند، لازم است مش تک‌دامنه به زیردامنه‌ها تقسیم شود و اطلاعات لازم برای تخصیص هر فرایند و ارتباط میان دامنه‌ها از پیش تولید شود. این مرحلهٔ پیش‌پردازش «پارتیشن‌بندی مش» نام دارد.

در محاسبات موازی FrontISTR، hecmw_part1 یک مش تک‌دامنه را به زیردامنه‌ها تقسیم کرده و دادهٔ مش توزیع‌شده ایجاد می‌کند. دادهٔ مش توزیع‌شدهٔ تولیدشده توسط fistr1 موازی خوانده می‌شود و همراه با اطلاعات لازم برای ارتباط میان دامنه‌ها در حل‌گر موازی به کار می‌رود.

این صفحه نوع تقسیم، روش تقسیم، عمق هم‌پوشانی و نحوهٔ برخورد با نقاط تماس را که در پارتیشن‌بندی مش انتخاب می‌شوند توضیح می‌دهد. برای روش اجرای hecmw_part1، قالب دقیق فایل کنترل و پیام‌های خطا به موارد مرتبط مراجعه کنید.

نمای کلی قابلیت‌ها

پارتیشن‌بندی مش فرایند تقسیم یک مش تک‌دامنه به چند زیردامنه است. FrontISTR با ترکیب نوع تقسیم، روش تقسیم، تعداد دامنه‌ها و عمق هم‌پوشانی، دادهٔ مش توزیع‌شده ایجاد می‌کند.

محور انتخاب گزینه‌های اصلی نقش
نوع پارتیشن‌بندی مش پارتیشن‌بندی مبتنی بر گره، پارتیشن‌بندی مبتنی بر المان تعیین می‌کند مالکیت بر اساس گره یا المان اختصاص یابد.
روش پارتیشن‌بندی مش RCB، METIS (pMETIS / kMETIS) نحوهٔ ایجاد مرزهای دامنه را تعیین می‌کند.
تعداد دامنه‌ها هر عدد صحیح مثبت (برای RCB برابر \(2^n\)) تعداد زیردامنه‌ها در دادهٔ مش توزیع‌شده را تعیین می‌کند. معمولاً با تعداد فرایندهای MPI یکسان در نظر گرفته می‌شود.
عمق هم‌پوشانی عدد صحیح 1 یا بیشتر محدوده‌ای را که دامنه‌های مجاور به‌طور تکراری نگه می‌دارند تعیین می‌کند. در پارتیشن‌بندی مبتنی بر گره مشخص می‌شود.
جدول‌های ارتباط اطلاعات ورودی/خروجی، اطلاعات اشتراکی تبادل دادهٔ لازم میان زیردامنه‌های مجاور را تعریف می‌کند. هنگام پارتیشن‌بندی مش به‌طور خودکار تولید می‌شود.

از آنجا که جدول‌های ارتباط در دادهٔ مش توزیع‌شده قرار دارند، در تحلیل معمولی کاربر نیازی به ویرایش مستقیم آن‌ها ندارد. fistr1 موازی این دادهٔ مش توزیع‌شده را می‌خواند و معادلات خطی را با روش مستقیم موازی مانند MUMPS یا روش تکراری حل می‌کند.

انتخاب پیکربندی پارتیشن‌بندی مش

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

روش پارتیشن‌بندی مش را بر اساس شکل هندسی و تعداد دامنه‌ها انتخاب کنید. برای شکل‌های ساده که تعداد دامنه‌ها می‌تواند \(2^n\) باشد، RCB گزینه‌ای ساده و پایدار است. برای شکل‌های پیچیده یا زمانی که تعداد دلخواهی از دامنه‌ها لازم است، METIS مبتنی بر پارتیشن‌بندی گراف گزینهٔ مناسبی است.

ویژگی مسئله انتخاب توصیه‌شده
تحلیل موازی استاندارد سازه‌ای یا هدایت حرارتی پارتیشن‌بندی مبتنی بر گره
کاربردهایی مانند تحلیل کوپل‌شده که از اطلاعات توزیع‌شدهٔ المان‌محور استفاده می‌کنند پارتیشن‌بندی مبتنی بر المان
شکل ساده نزدیک به مکعب‌مستطیل با تعداد دامنهٔ \(2^n\) RCB
شکل پیچیده یا تعداد دلخواه دامنه‌ها METIS
مسائل تماس یا دارای قید MPC با پیش‌شرط‌گذار SAINV پارتیشن‌بندی مبتنی بر گره با عمق هم‌پوشانی 2 یا بیشتر

تعداد دامنه‌ها معمولاً با تعداد فرایندهای MPI یکسان در نظر گرفته می‌شود. برای روش اجرای موازی و تعیین تعداد فرایندها، تحلیل با پردازش موازی را ببینید. برای رابطهٔ پیش‌شرط‌گذار SAINV و عمق هم‌پوشانی، حل‌گر و پیش‌شرط‌گذارها را نیز ببینید.

انواع پارتیشن‌بندی مش

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

پارتیشن‌بندی مبتنی بر گره

در پارتیشن‌بندی مبتنی بر گره، هر گره دقیقاً به یک زیردامنهٔ مالک اختصاص می‌یابد. در زیردامنه‌های مجاور، المان‌ها به‌صورت هم‌پوشان نگهداری می‌شوند. در ورودی، این حالت با !PARTITION, TYPE=NODE-BASED مشخص می‌شود.

مفهوم پارتیشن‌بندی مبتنی بر گره

شکل 10.1 مفهوم پارتیشن‌بندی مبتنی بر گره

هر زیردامنه گره‌های داخلی، المان‌های شامل آن گره‌های داخلی، و گره‌های تشکیل‌دهندهٔ آن المان‌ها را نگه می‌دارد.

گره‌ها و المان‌های نگهداری‌شده در هر زیردامنه در پارتیشن‌بندی مبتنی بر گره

شکل 10.2 گره‌ها و المان‌های نگهداری‌شده در هر زیردامنه در پارتیشن‌بندی مبتنی بر گره

جدول‌های ارتباط در پارتیشن‌بندی مبتنی بر گره شامل اطلاعات زیر هستند.

  • گره‌های ورودی: گره‌هایی که در یک زیردامنه استفاده می‌شوند اما مالک آن‌ها زیردامنهٔ دیگری است.
  • گره‌های خروجی: گره‌های داخلی که گرهٔ ورودی زیردامنهٔ دیگری هستند.
  • المان‌های مشترک: المان‌هایی که با زیردامنه‌های دیگر مشترک‌اند.

گره‌های ورودی در پارتیشن‌بندی مبتنی بر گره

شکل 10.3 گره‌های ورودی در پارتیشن‌بندی مبتنی بر گره

گره‌های خروجی در پارتیشن‌بندی مبتنی بر گره

شکل 10.4 گره‌های خروجی در پارتیشن‌بندی مبتنی بر گره

المان‌های مشترک در پارتیشن‌بندی مبتنی بر گره

شکل 10.5 المان‌های مشترک در پارتیشن‌بندی مبتنی بر گره

پارتیشن‌بندی مبتنی بر المان

در پارتیشن‌بندی مبتنی بر المان، هر المان دقیقاً به یک زیردامنهٔ مالک اختصاص می‌یابد. در زیردامنه‌های مجاور، گره‌ها به‌صورت هم‌پوشان نگهداری می‌شوند. در ورودی، این حالت با !PARTITION, TYPE=ELEMENT-BASED مشخص می‌شود.

مفهوم پارتیشن‌بندی مبتنی بر المان

شکل 10.6 مفهوم پارتیشن‌بندی مبتنی بر المان

هر زیردامنه المان‌های داخلی، گره‌های تشکیل‌دهندهٔ آن المان‌های داخلی، و المان‌های شامل آن گره‌ها را نگه می‌دارد.

گره‌ها و المان‌های نگهداری‌شده در هر زیردامنه در پارتیشن‌بندی مبتنی بر المان

شکل 10.7 گره‌ها و المان‌های نگهداری‌شده در هر زیردامنه در پارتیشن‌بندی مبتنی بر المان

جدول‌های ارتباط در پارتیشن‌بندی مبتنی بر المان شامل اطلاعات زیر هستند.

  • المان‌های ورودی: المان‌هایی که در یک زیردامنه استفاده می‌شوند اما مالک آن‌ها زیردامنهٔ دیگری است.
  • المان‌های خروجی: المان‌های داخلی که المان ورودی زیردامنهٔ دیگری هستند.
  • گره‌های مشترک: گره‌هایی که با زیردامنه‌های دیگر مشترک‌اند.

المان‌های ورودی در پارتیشن‌بندی مبتنی بر المان

شکل 10.8 المان‌های ورودی در پارتیشن‌بندی مبتنی بر المان

المان‌های خروجی در پارتیشن‌بندی مبتنی بر المان

شکل 10.9 المان‌های خروجی در پارتیشن‌بندی مبتنی بر المان

گره‌های مشترک در پارتیشن‌بندی مبتنی بر المان

شکل 10.10 گره‌های مشترک در پارتیشن‌بندی مبتنی بر المان

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

روش‌های پارتیشن‌بندی مش

روش پارتیشن‌بندی مش نحوهٔ تعیین مرزهای زیردامنه را بیان می‌کند. FrontISTR از RCB مبتنی بر مختصات و METIS مبتنی بر پارتیشن‌بندی گراف پشتیبانی می‌کند.

روش پارتیشن‌بندی مش ویژگی‌ها محدودیت‌ها و نکات اصلی
RCB مش را بر اساس مقادیر مختصات به‌طور بازگشتی به دو بخش تقسیم می‌کند. برای هندسه‌های ساده تقسیم سریع فراهم می‌کند. تعداد دامنه‌ها به \(2^n\) محدود است. محورهای تقسیم باید مشخص شوند.
pMETIS بر اساس پارتیشن‌بندی گراف و با در نظر گرفتن اتصال میان دامنه‌ها تقسیم می‌کند. در بیلدهایی که METIS فعال است قابل استفاده است.
kMETIS بر اساس پارتیشن‌بندی چندبخشی گراف عمل می‌کند و ایجاد مرزهای دامنه را برای هندسه‌های پیچیده آسان‌تر می‌سازد. در بیلدهایی که METIS فعال است قابل استفاده است.

RCB مخفف Recursive Coordinate Bisection است و مش را به‌طور تکراری در امتداد محورهای مختصات به دو بخش تقسیم می‌کند. وقتی تعداد دامنه‌ها بتواند \(2^n\) باشد مناسب است و برای هندسه‌های ساده و جعبه‌مانند به‌راحتی قابل استفاده است.

METIS اتصال‌های مش را به‌صورت گراف در نظر می‌گیرد و با پارتیشن‌بندی گراف زیردامنه‌ها را می‌سازد. برای هندسه‌های پیچیده یا زمانی که نمی‌خواهید تعداد دامنه‌ها به \(2^n\) محدود شود، گزینهٔ مناسبی است. برای استفاده از METIS باید کتابخانهٔ METIS هنگام بیلد فعال باشد. برای نحوهٔ کار با وابستگی‌ها، وابستگی‌های الزامی و اختیاری را ببینید.

عمق هم‌پوشانی

عمق هم‌پوشانی تعداد لایه‌های محدوده‌ای است که زیردامنه‌های مجاور به‌طور تکراری نگه می‌دارند. در پارتیشن‌بندی مبتنی بر گره می‌توان با پارامتر DEPTH در !PARTITION یک عدد صحیح 1 یا بیشتر مشخص کرد. عمق هم‌پوشانی پیش‌فرض 1 است.

برای تحلیل موازی معمولی، DEPTH=1 کافی است. با این حال، اگر پیش‌شرط‌گذار خانوادهٔ SAI مانند SAINV در مسئلهٔ تماس یا مسئلهٔ دارای قید MPC استفاده شود، افزایش عمق هم‌پوشانی به 2 یا بیشتر ممکن است کیفیت پیش‌شرط‌گذاری را بهبود دهد.

همچنین هنگام استفادهٔ موازی MPI از فرمول‌بندی هموارسازی انتخابی یال/گره (FORM341=SELECTIVE_ESNS) برای المان چهاروجهی مرتبه اول 341، عمق هم‌پوشانی باید 2 یا بیشتر باشد. در هموارسازی مبتنی بر یال/گره، کمیت‌های المان‌های مجاور المان هدف میانگین‌گیری می‌شوند؛ بنابراین برای مونتاژ سختی در یک زیردامنه به اطلاعات المان‌های «همسایهٔ همسایه» نیاز است و با DEPTH=1 پیش‌فرض، هموارسازی نزدیک مرز دامنه ناکافی خواهد بود. برای جزئیات فرمول‌بندی المان، کتابخانهٔ المان را ببینید.

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

نحوهٔ برخورد با نقاط تماس

هنگام پارتیشن‌بندی مشی که شامل جفت‌های تماس است، می‌توان با پارامتر CONTACT در !PARTITION سیاست قرارگیری نقاط تماس در دامنه‌ها را تعیین کرد. قرارگیری نقاط تماس بر پایداری و حجم ارتباط در تحلیل موازی شامل جستجوی تماس و قیود تماس اثر می‌گذارد.

مقدار نقش
DEFAULT از سیاست قرارگیری استاندارد استفاده می‌کند.
SIMPLE بدون اختصاص وزن ویژه به نقاط تماس، از قرارگیری نزدیک به پارتیشن‌بندی معمول استفاده می‌کند.
AGGREGATE به‌گونه‌ای تقسیم می‌کند که گره‌های مرتبط با جفت‌های تماس تمایل به گروه‌بندی داشته باشند.
DISTRIBUTE به‌گونه‌ای تقسیم می‌کند که گره‌های سمت اصلی تماس کمتر در زیردامنه‌های خاص متمرکز شوند.

برای مش‌های بدون تماس، معمولاً نیازی به توجه به پارامتر CONTACT نیست. اگر در تحلیل موازی شامل تماس، همگرایی یا موازنهٔ بار مشکل دارد، سیاست قرارگیری نقاط تماس را بازبینی کنید. برای جزئیات قالب ورودی، !PARTITION را ببینید.

مستقل از این مورد، با پارامتر CONTACT_OWNER می‌توان شیوهٔ مالکیت تماس موازی را انتخاب کرد. CONTACT مشخص می‌کند «چگونه تقسیم شود»، در حالی که CONTACT_OWNER مشخص می‌کند «پس از تقسیم کدام سمت مسئول باشد».

مقدار نقش
MASTER شیوهٔ مالکیت سمت اصلی (پیش‌فرض). سطح اصلی بر اساس دامنه‌های مالک المان تقسیم می‌شود و گره‌های تابع در هر دامنهٔ مالکِ سمت اصلی تکثیر می‌شوند.
SLAVE شیوهٔ مالکیت سمت تابع. هر گرهٔ تابع فقط در دامنهٔ مالک خود نگهداری می‌شود و کل سطح اصلی در آن دامنه قرار می‌گیرد.

در لغزش محدود (INTERACTION=FSLID در !CONTACT)، اگر گرهٔ تابع از مرز پارتیشن‌بندی مش روی سطح اصلی عبور کند، در MASTER ممکن است جستجوی همسایگی در مرز قطع شود و حالت تماس و تاریخچهٔ اصطکاک از دست برود و پاسخ به تعداد دامنه‌ها وابسته شود. SLAVE از این مشکل جلوگیری می‌کند. فقط هنگامی قابل تعیین است که TYPE=NODE-BASED باشد؛ مصرف حافظه در دامنه‌های مالک گره‌های تابع افزایش می‌یابد.

خروجی تصویر پارتیشن‌بندی مش

با تعیین پارامتر UCD در !PARTITION می‌توان فایل UCD برای بررسی نتیجهٔ پارتیشن‌بندی مش خروجی داد. فایل UCD را می‌توان با ابزارهای تجسم مانند MicroAVS برای بررسی شمارهٔ دامنه‌ها و مرزهای پارتیشن‌بندی استفاده کرد.

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

موارد مرتبط