Домэйн хуваалт¶
Том хэмжээний торыг олон процесс ашиглан параллель шинжлэхийн өмнө нэг домэйнтой торыг дэд домэйнуудад хувааж, процесс бүрт оноох болон домэйн хоорондын холбоонд шаардлагатай мэдээллийг урьдчилан үүсгэх шаардлагатай. Энэ урьдчилсан боловсруулалтын алхмыг домэйн хуваалт гэж нэрлэнэ.
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 |
| SAINV урьдчилан нөхцөлжүүлэгч ашиглах контакт эсвэл MPC хязгаарлалттай бодлого | Давхцлын гүнийг 2 буюу түүнээс ихээр тохируулсан зангилаанд суурилсан хуваалт |
Домэйны тоог ихэвчлэн MPI процессын тоотой тааруулна. Параллель ажиллуулах журам ба процессын тоог заах талаар Параллель шинжилгээ-ээс үзнэ үү. SAINV урьдчилан нөхцөлжүүлэгч ба давхцлын гүний хамаарлыг Шийдэгч ба урьдчилан нөхцөлжүүлэлт-ээс мөн үзнэ үү.
Хуваалтын төрлүүд¶
Хуваалтын төрөл нь торны аль нэгжид дэд домэйн цорын ганц эзэмшил оноохыг тогтооно. Зангилаанд суурилсан хуваалт зангилаанд, элементэд суурилсан хуваалт элементэд эзэмшил онооно. Аль ч тохиолдолд хөрш дэд домэйнтай тооцоолол хийхэд шаардлагатай мэдээллийг давхцлын өгөгдөл хэлбэрээр хадгална.
Зангилаанд суурилсан хуваалт¶
Зангилаанд суурилсан хуваалтад зангилаа бүр яг нэг эзэмшигч дэд домэйнд оноогдоно. Элементүүдийг хөрш дэд домэйнуудад давхцуулан хадгална. Оролтод үүнийг !PARTITION, TYPE=NODE-BASED-аар заана.

Дэд домэйн бүр өөрийн дотоод зангилаа, тэдгээр дотоод зангилааг агуулсан элементүүд болон тэдгээр элементийг бүрдүүлэх зангилаануудыг хадгална.

Зангилаанд суурилсан хуваалтын холбооны хүснэгтүүд дараах мэдээллийг агуулна.
- Импорт зангилаа: Дэд домэйнд ашиглагддаг боловч өөр дэд домэйн эзэмшдэг зангилаанууд.
- Экспорт зангилаа: Өөр дэд домэйны импорт зангилаа болдог дотоод зангилаанууд.
- Хамтарсан элементүүд: Бусад дэд домэйнтай хуваалцдаг элементүүд.



Элементэд суурилсан хуваалт¶
Элементэд суурилсан хуваалтад элемент бүр яг нэг эзэмшигч дэд домэйнд оноогдоно. Зангилаануудыг хөрш дэд домэйнуудад давхцуулан хадгална. Оролтод үүнийг !PARTITION, TYPE=ELEMENT-BASED-аар заана.

Дэд домэйн бүр өөрийн дотоод элементүүд, тэдгээр дотоод элементийг бүрдүүлэх зангилаанууд болон тэдгээр зангилааг агуулсан элементүүдийг хадгална.

Элементэд суурилсан хуваалтын холбооны хүснэгтүүд дараах мэдээллийг агуулна.
- Импорт элементүүд: Дэд домэйнд ашиглагддаг боловч өөр дэд домэйн эзэмшдэг элементүүд.
- Экспорт элементүүд: Өөр дэд домэйны импорт элемент болдог дотоод элементүүд.
- Хамтарсан зангилаанууд: Бусад дэд домэйнтай хуваалцдаг зангилаанууд.



Аль ч хуваалтын төрөлд hecmw_part1 холбооны хүснэгтүүдийг автоматаар үүсгэж тархсан торон өгөгдөлд бичнэ. Иймээс хэрэглэгчид импорт/экспортын мэдээллийг шууд үүсгэх шаардлага ерөнхийдөө байхгүй.
Хуваалтын аргууд¶
Хуваалтын арга нь дэд домэйны хил хэрхэн үүсэхийг тогтооно. FrontISTR нь координатад суурилсан RCB болон графын хуваалтад суурилсан METIS-ийг дэмждэг.
| Хуваалтын арга | Шинж чанар | Үндсэн хязгаарлалт ба тэмдэглэл |
|---|---|---|
| RCB | Координатын утгад үндэслэн торыг рекурсивээр хоёр хуваана. Энгийн геометрт хурдан хуваалт өгнө. | Домэйны тоо \(2^n\)-ээр хязгаарлагдана. Хуваалтын тэнхлэгүүдийг заах ёстой. |
| pMETIS | Домэйн хоорондын холбоосыг харгалзан графын хуваалт ашиглана. | METIS идэвхжүүлсэн бүтээлтэд ашиглах боломжтой. |
| kMETIS | Олон чиглэлийн графын хуваалт ашигладаг тул нарийн төвөгтэй геометрт домэйны хил үүсгэхэд тохиромжтой. | METIS идэвхжүүлсэн бүтээлтэд ашиглах боломжтой. |
RCB нь Recursive Coordinate Bisection гэсэн үгийн товчлол бөгөөд координатын тэнхлэг дагуу торыг дахин дахин хоёр хуваана. Домэйны тоо \(2^n\) байж болох үед тохиромжтой бөгөөд хайрцаг хэлбэртэй энгийн геометрт ашиглахад хялбар.
METIS нь торны холбоосыг граф гэж үзэж, графын хуваалтаар дэд домэйн үүсгэнэ. Нарийн төвөгтэй геометр эсвэл домэйны тоог \(2^n\)-ээр хязгаарлахыг хүсэхгүй үед тохиромжтой. METIS-ийг ашиглахын тулд бүтээх үед METIS санг идэвхжүүлсэн байх ёстой. Хамаарлуудыг хэрхэн боловсруулах талаар Шаардлагатай ба нэмэлт хамаарлууд-аас үзнэ үү.
Давхцлын гүн¶
Давхцлын гүн нь хөрш дэд домэйнууд давхар хадгалах хүрээний давхаргын тоо юм. Зангилаанд суурилсан хуваалтад !PARTITION-ийн DEPTH параметрээр 1 буюу түүнээс их бүхэл тоо зааж болно. Өгөгдмөл давхцлын гүн 1.
Ердийн параллель шинжилгээнд DEPTH=1 хангалттай. Гэвч SAINV зэрэг SAI бүлгийн урьдчилан нөхцөлжүүлэгчийг контакт бодлого эсвэл MPC хязгаарлалттай бодлогод ашиглах үед давхцлын гүнийг 2 буюу түүнээс их болгох нь урьдчилан нөхцөлжүүлэгчийн чанарыг сайжруулж болно.
MPI параллель тооцоололд 1-р эрэмбийн тетраэдр элемент 341-д сонгомол ирмэг/зангилааны тэгшитгэлийн томьёолол (FORM341=SELECTIVE_ESNS) ашиглах үед мөн давхцлын гүн 2 буюу түүнээс их байх шаардлагатай. Ирмэгт болон зангилаанд суурилсан тэгшитгэл нь зорилтот элементтэй хөрш элементүүдийн хэмжигдэхүүнийг дундажладаг тул дэд домэйн дотор хөшүүн чанарыг угсрахад хоёр хөршийн давхаргын цаадах элементийн мэдээлэл шаардлагатай; өгөгдмөл DEPTH=1 үед домэйны хилийн ойролцоох тэгшитгэл хангалтгүй. Элементийн томьёоллын дэлгэрэнгүйг Элементийн сан-аас үзнэ үү.
Давхцлын гүнийг нэмэгдүүлэх нь хөрш дэд домэйнуудад хадгалах зангилаа ба элементийн тоог өсгөж, санах ойн хэрэглээ болон холбооны хэмжээг хоёуланг нэмэгдүүлнэ. Нийлэлт сайжрах ашиг ба тооцооллын өртгийн өсөлтийг тэнцвэржүүлэн тохируулна. Урьдчилан нөхцөлжүүлэгч сонгох талаар Шийдэгч ба урьдчилан нөхцөлжүүлэлт-аас үзнэ үү.
Контактын цэгүүдийг боловсруулах¶
Контактын хос агуулсан торыг хуваах үед !PARTITION-ийн CONTACT параметрээр контактын цэгүүдийн домэйнд байрлуулах бодлогыг зааж болно. Контактын цэгийн байрлал нь контакт хайлт ба контактын хязгаарлалттай параллель шинжилгээний тогтвортой байдал, холбооны хэмжээнд нөлөөлнө.
| Утга | Үүрэг |
|---|---|
DEFAULT | Стандарт байрлуулах бодлогыг ашиглана. |
SIMPLE | Контактын цэгүүдэд тусгай жин өгөхгүй, ердийн хуваалттай ойролцоо байрлуулна. |
AGGREGATE | Контактын хостой холбоотой зангилаануудыг бүлэглэх хандлагатайгаар хуваана. |
DISTRIBUTE | Master талын контактын зангилаанууд тодорхой дэд домэйнд төвлөрөхгүй байхаар хуваана. |
Контактгүй торонд CONTACT параметрт ерөнхийдөө анхаарах шаардлагагүй. Контакттай параллель шинжилгээнд нийлэлт эсвэл ачааллын тэнцвэржилт асуудалтай бол контактын цэгийн байрлуулах бодлогыг шалгана. Оролтын синтаксын дэлгэрэнгүйг !PARTITION-аас үзнэ үү.
Үүнээс тусад нь, CONTACT_OWNER параметрээр параллель контактын эзэмшлийн схемийг сонгож болно. CONTACT нь "хэрхэн хуваах"-ыг заадаг бол CONTACT_OWNER нь "хуваасны дараа аль тал хариуцах"-ыг заана.
| Утга | Үүрэг |
|---|---|
MASTER | Master эзэмшигчийн схем (өгөгдмөл). Master гадаргууг элемент эзэмшигч домэйнуудаар хувааж, slave зангилаануудыг master эзэмшигч домэйн бүрт хуулбарлана. |
SLAVE | Slave эзэмшигчийн схем. Slave зангилаа бүр зөвхөн өөрийн эзэмшигч домэйнд хадгалагдаж, бүх master гадаргууг тэр домэйнд байрлуулна. |
Хязгаарлагдмал гулсалт (!CONTACT дээр INTERACTION=FSLID) үед slave зангилаа master гадаргуу дээрх домэйн хуваалтын хил давахад MASTER схем нь хилийн дээр хөршийн хайлтыг тасалдуулж, контактын төлөв ба үрэлтийн түүх алдагдан, шийдэл домэйны тооноос хамаарах шалтгаан болж болно. SLAVE схем энэ асуудлыг зайлсхийдэг. Үүнийг зөвхөн TYPE=NODE-BASED үед зааж болох бөгөөд slave зангилаа эзэмшдэг домэйнуудын санах ойн хэрэглээ нэмэгдэнэ.
Домэйн хуваалтын зургийг гаргах¶
!PARTITION-д UCD параметрийг заавал хуваалтын үр дүнг шалгах UCD файл гаргана. UCD файлыг MicroAVS зэрэг дүрслэлийн хэрэгслээр домэйны дугаар ба хуваалтын хилийг шалгахад ашиглаж болно.
Домэйны тоо, хуваалтын арга эсвэл давхцлын гүнийг өөрчилсний дараа хуваасан домэйнуудын тэнцвэргүй байдал эсвэл хэвийн бус бутрал байгаа эсэхийг шалгах нь чухал. UCD гаралт нь параллель шинжилгээ ажиллуулахаас өмнө хуваалтын зөв эсэхийг шалгах туслах функц юм.
Холбогдох сэдвүүд¶
- Параллель шинжилгээ —
hecmw_part1ажиллуулах журам, оролтын файлууд, тархсан торон өгөгдлийн гаралтыг шалгах. - Шийдэгч ба урьдчилан нөхцөлжүүлэлт — Параллель шийдэгч, урьдчилан нөхцөлжүүлэгч болон SAINV ба давхцлын гүний хамаарал.
- Алдааны мэдэгдлийн жагсаалт —
hecmw_part1баfistr1-ийн төлөөлөх алдааны мэдэгдлүүд. - Параллель төгсгөлөг элементийн арга — Домэйн задлалт ба параллель төгсгөлөг элементийн аргын онолын үндэс.
- !PARTITION — Домэйн хуваалтын хэрэгслийн удирдлагын өгөгдлийн оролтын синтакс.