Անցնել պարունակությանը

Տիրույթի բաժանում

Երբ մեծածավալ ցանցը զուգահեռ վերլուծվում է մի քանի պրոցեսներով, մեկ տիրույթով ցանցը նախ պետք է բաժանել ենթատիրույթների և նախապես ստեղծել յուրաքանչյուր պրոցեսին վերագրման ու տիրույթների միջև հաղորդակցության համար անհրաժեշտ տեղեկությունը։ Այս նախնական մշակման քայլը կոչվում է տիրույթի բաժանում։

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-ով։

Հանգույցների վրա հիմնված բաժանման գաղափարը

Նկար 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 սահմանափակումներով խնդրում SAINV-ի նման SAI ընտանիքի նախապայմանավորիչ օգտագործելիս համընկնման խորությունը 2 կամ ավելի դարձնելը կարող է բարելավել նախապայմանավորիչի որակը։

2 կամ ավելի համընկնման խորություն է պահանջվում նաև, երբ MPI զուգահեռ հաշվարկում 341 առաջին կարգի քառանիստ տարրի հետ օգտագործվում է եզրային/հանգուցային ընտրովի հարթեցման ձևակերպումը (FORM341=SELECTIVE_ESNS)։ Եզրային և հանգուցային հարթեցումը միջինացնում է թիրախային տարրին հարակից տարրերի մեծությունները, ուստի ենթատիրույթի ներսում կոշտությունը հավաքելու համար անհրաժեշտ է երկու հարևանության շերտ հեռու տարրերի տեղեկություն․ լռելյայն DEPTH=1-ով տիրույթների սահմանների մոտ հարթեցումն անբավարար է։ Տարրի ձևակերպման մանրամասների համար տես Տարրերի գրադարան։

Համընկնման խորության մեծացումը ավելացնում է հարևան ենթատիրույթներում պահպանվող հանգույցների ու տարրերի քանակը՝ մեծացնելով և՛ հիշողության օգտագործումը, և՛ հաղորդակցության ծավալը։ Ընտրեք այն՝ հավասարակշռելով զուգամիտության բարելավումը և հաշվարկային արժեքի աճը։ Նախապայմանավորիչի ընտրության համար տես Լուծիչ և նախապայմանավորիչներ։

Կոնտակտային կետերի մշակում

Կոնտակտային զույգեր պարունակող ցանցը բաժանելիս !PARTITION-ը թույլ է տալիս CONTACT պարամետրով նշել կոնտակտային կետերի տիրույթային տեղաբաշխման քաղաքականությունը։ Կոնտակտային կետերի տեղաբաշխումն ազդում է կոնտակտի որոնում և կոնտակտային սահմանափակումներ պարունակող զուգահեռ վերլուծությունների կայունության ու հաղորդակցության ծավալի վրա։

Արժեք Դեր
DEFAULT Օգտագործում է ստանդարտ տեղաբաշխման քաղաքականությունը։
SIMPLE Օգտագործում է սովորական բաժանմանը մոտ տեղաբաշխում՝ կոնտակտային կետերին հատուկ կշիռներ չվերագրելով։
AGGREGATE Բաժանում է այնպես, որ կոնտակտային զույգերի հետ կապված հանգույցները հակված լինեն խմբավորվելու։
DISTRIBUTE Բաժանում է այնպես, որ գլխավոր կողմի կոնտակտային հանգույցները քիչ կենտրոնանան որոշակի ենթատիրույթներում։

Առանց կոնտակտի ցանցերի համար CONTACT պարամետրը սովորաբար ուշադրություն չի պահանջում։ Եթե կոնտակտ պարունակող զուգահեռ վերլուծությունում զուգամիտության կամ բեռի հավասարակշռման խնդիր կա, վերանայեք կոնտակտային կետերի տեղաբաշխման քաղաքականությունը։ Մուտքային շարահյուսության մանրամասների համար տես !PARTITION։

Սրանից անկախ, CONTACT_OWNER պարամետրով կարելի է ընտրել զուգահեռ կոնտակտի սեփականության սխեման։ Եթե CONTACT-ը նշում է «ինչպես բաժանել», ապա CONTACT_OWNER-ը նշում է «բաժանումից հետո որ կողմն է պատասխանատու»։

Արժեք Դեր
MASTER Գլխավոր-սեփականատեր սխեմա (լռելյայն)։ Գլխավոր մակերևույթը բաժանվում է տարրերի սեփականատեր տիրույթներով, իսկ ենթակա հանգույցները կրկնօրինակվում են յուրաքանչյուր գլխավոր-սեփականատեր տիրույթում։
SLAVE Ենթակա-սեփականատեր սխեմա։ Յուրաքանչյուր ենթակա հանգույց պահվում է միայն իր սեփականատեր տիրույթում, իսկ ամբողջ գլխավոր մակերևույթը տեղադրվում է այդ տիրույթում։

Վերջավոր սահքի դեպքում (!CONTACT-ում INTERACTION=FSLID), երբ ենթակա հանգույցը գլխավոր մակերևույթի վրա հատում է տիրույթի բաժանման սահմանը, MASTER սխեման կարող է սահմանում ընդհատել հարևանության որոնումը՝ կորցնելով կոնտակտային վիճակն ու շփման պատմությունը և լուծումը կախված դարձնելով տիրույթների քանակից։ SLAVE սխեման խուսափում է այս խնդրից։ Այն կարելի է նշել միայն TYPE=NODE-BASED դեպքում, և ենթակա հանգույցներ սեփականացնող տիրույթներում հիշողության օգտագործումը մեծանում է։

Տիրույթի բաժանման պատկերի արտածում

!PARTITION-ում UCD պարամետրը նշելով արտածվում է UCD ֆայլ՝ բաժանման արդյունքը ստուգելու համար։ UCD ֆայլը կարելի է օգտագործել MicroAVS-ի նման տեսապատկերման գործիքներով՝ տիրույթների համարներն ու բաժանման սահմանները դիտելու համար։

Տիրույթների քանակը, բաժանման մեթոդը կամ համընկնման խորությունը փոխելուց հետո կարևոր է ստուգել բաժանված տիրույթների անհավասարակշռությունը կամ անբնական մասնատումը։ UCD ելքը օժանդակ գործառույթ է՝ զուգահեռ վերլուծությունից առաջ բաժանման վավերությունը ստուգելու համար։

Առնչվող թեմաներ