Прескокнете до содржината

Поделба на мрежа

Кога мрежа од голем размер се анализира паралелно со повеќе процеси, мрежата со еден домен најпрво мора да се подели на поддомени и однапред да се генерираат информациите потребни за доделување на секој процес и за комуникација меѓу домените. Овој чекор на претпроцесирање се нарекува поделба на мрежа.

Во паралелното пресметување со FrontISTR, hecmw_part1 ја дели мрежата со еден домен на поддомени и создава податоци за распределена мрежа. Генерираните податоци за распределена мрежа ги чита паралелниот fistr1 и паралелниот решавач ги користи заедно со информациите потребни за комуникација меѓу домените.

Оваа страница ги опишува типот на поделба, методот на поделба, длабочината на преклопување и постапувањето со контактните точки што се избираат при поделба на мрежа. За постапката за извршување на hecmw_part1, конкретната синтакса на контролната датотека и пораките за грешки, видете ги поврзаните теми.

Преглед на функциите

Поделбата на мрежата е процес на делење на мрежа со еден домен на повеќе поддомени. FrontISTR создава податоци за распределена мрежа со комбинирање на тип на поделба, метод на поделба, број на домени и длабочина на преклопување.

Критериум за избор Главни опции Улога
Тип на поделба Поделба базирана на јазли, поделба базирана на елементи Одредува дали сопственоста се доделува по јазол или по елемент.
Метод на поделба RCB, METIS (pMETIS / kMETIS) Одредува како се создаваат границите на домените.
Број на домени Кој било позитивен цел број (\(2^n\) за RCB) Го одредува бројот на поддомени во податоците за распределена мрежа. Вообичаено се усогласува со бројот на 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 мора да биде овозможена при градењето. За ракување со зависностите, видете Задолжителни и опционални зависности.

Длабочина на преклопување

Длабочината на преклопување е бројот на слоеви во опсегот што редундантно го задржуваат соседните поддомени. При поделба базирана на јазли, !PARTITION овозможува со параметарот DEPTH да се зададе цел број 1 или поголем. Стандардната длабочина на преклопување е 1.

За вообичаена паралелна анализа, DEPTH=1 е доволно. Меѓутоа, кога за контактен проблем или проблем со MPC ограничувања се користи предусловувач од фамилијата SAI, како SAINV, зголемувањето на длабочината на преклопување на 2 или повеќе може да го подобри квалитетот на предусловувачот.

Длабочина на преклопување 2 или поголема е потребна и кога селективната формулација за измазнување по рабови/јазли (FORM341=SELECTIVE_ESNS) се користи со тетраедарскиот елемент од прв ред 341 при MPI паралелно пресметување. Измазнувањето базирано на рабови и јазли ги осреднува величините преку елементите соседни на целниот елемент, па за составување на крутоста во поддоменот се потребни информации од елементи оддалечени два слоја на соседство; со стандардното DEPTH=1, измазнувањето во близина на границите на домените е недоволно. За детали за формулацијата на елементот, видете Библиотека на елементи.

Зголемувањето на длабочината на преклопување го зголемува бројот на јазли и елементи што ги задржуваат соседните поддомени, а со тоа и употребата на меморија и обемот на комуникација. Поставете ја така што ќе се балансира подобрената конвергенција со зголемениот пресметковен трошок. За избор на предусловувач, видете Решавач и предусловување.

Постапување со контактни точки

При поделба на мрежа што содржи контактни парови, !PARTITION овозможува со параметарот CONTACT да се зададе политиката за распоредување на контактните точки по домени. Распоредувањето на контактните точки влијае врз стабилноста и обемот на комуникација кај паралелните анализи што вклучуваат пребарување на контакт и контактни ограничувања.

Вредност Улога
DEFAULT Ја користи стандардната политика на распоредување.
SIMPLE Користи распоредување блиско до вообичаената поделба, без доделување посебни тежини на контактните точки.
AGGREGATE Дели така што јазлите поврзани со контактни парови имаат тенденција да се групираат.
DISTRIBUTE Дели така што контактните јазли на главната страна поретко се концентрираат во одредени поддомени.

За мрежи без контакт, параметарот CONTACT генерално не бара посебно внимание. Ако конвергенцијата или балансирањето на оптоварувањето се проблематични во паралелна анализа со контакт, преиспитајте ја политиката за распоредување на контактните точки. За детали за влезната синтакса, видете !PARTITION.

Независно од ова, параметарот CONTACT_OWNER може да се користи за избор на шемата на сопственост за паралелен контакт. Додека CONTACT задава „како да се подели“, CONTACT_OWNER задава „која страна е одговорна по поделбата“.

Вредност Улога
MASTER Шема со сопственик на главната страна (стандардно). Главната површина се дели според домените што ги поседуваат елементите, а зависните јазли се реплицираат во секој домен што поседува дел од главната страна.
SLAVE Шема со сопственик на зависната страна. Секој зависен јазол се задржува само во неговиот сопственички домен, а целата главна површина се поставува во тој домен.

Кај конечно лизгање (INTERACTION=FSLID на !CONTACT), кога зависен јазол преминува граница на поделбата на мрежата на главната површина, шемата MASTER може да го прекине пребарувањето на соседство на границата, поради што се губат состојбата на контактот и историјата на триење и решението станува зависно од бројот на домени. Шемата SLAVE го избегнува овој проблем. Може да се зададе само кога TYPE=NODE-BASED; употребата на меморија се зголемува во домените што поседуваат зависни јазли.

Излез на слика од поделбата на мрежата

Со !PARTITION, задавањето на параметарот UCD создава UCD датотека за проверка на резултатот од поделбата. UCD датотеката може да се користи со алатки за визуелизација како MicroAVS за проверка на броевите на домените и границите на поделбата.

По промена на бројот на домени, методот на поделба или длабочината на преклопување, важно е да се провери дали постои нерамнотежа меѓу поделените домени или неприродна фрагментација. UCD излезот е помошна функција за проверка на валидноста на поделбата пред извршување на паралелната анализа.

Поврзани теми