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

Լուծիչ և նախապայմանավորում

FrontISTR-ի գծային լուծիչը գծային հավասարումների համակարգը լուծում է՝ ընտրելով ուղղակի կամ իտերացիոն մեթոդ, իսկ իտերացիոն մեթոդի դեպքում այն համակցելով նախապայմանավորման հետ։ MPC-ի մշակման եղանակը և կոնտակտային ազատության աստիճանների վերացումը լրացուցիչ ընտրություններ են, որոնք որոշում են, թե ինչ ձևով պետք է մշակվի բազմակետ սահմանափակումներ կամ կոնտակտային սահմանափակումներ պարունակող գծային համակարգը։

Ֆունկցիոնալ հնարավորությունների ընդհանուր պատկերը

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

Դաս Հիմնական տարբերակներ Դեր
Իտերացիոն մեթոդ CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN Մեծ չափի նոսր մատրիցները լուծում է հիշողության արդյունավետ օգտագործմամբ։
Իտերացիոն մեթոդի նախապայմանավորում SSOR, անկյունագծային մասշտաբավորում, BILU, AMG, SAINV, RIF Բարելավում է իտերացիոն մեթոդի զուգամիտությունը։ Ուղղակի մեթոդի դեպքում չի օգտագործվում։
Ուղղակի մեթոդ MUMPS, MKL Գծային հավասարումները կայուն կերպով լուծում է մատրիցի տրոհմամբ։
MPC-ի մշակման եղանակ տուգանքային մեթոդ, ազատության աստիճանների բացահայտ վերացում Բազմակետ սահմանափակումները ներառում է գծային համակարգում։
Կոնտակտային ազատության աստիճանների վերացում ավտոմատ, միշտ միացված Փոխում է SLAGRANGE կոնտակտում ավելացվող կոնտակտային ազատության աստիճանների մշակումը։
Օժանդակ գործառույթներ պայմանավորվածության թվի գնահատում, մատրիցի արտահանում, մատյանի արտածում Օգնում են կարգաբերմանը, զուգամիտության ստուգմանը և կատարողականության գնահատմանը։

Զուգահեռ կատարման ժամանակ հնարավոր է համակցել MPI զուգահեռացումը՝ տիրույթի բաժանմամբ, և OpenMP թելային զուգահեռացումը։ Իտերացիոն մեթոդը մեծածավալ զուգահեռ վերլուծությունների ստանդարտ ընտրությունն է, իսկ ուղղակի մեթոդն օգտագործվում է համապատասխան գրադարանները կապած միջավայրում, երբ անհրաժեշտ է ավելի կայուն լուծում։

Լուծիչի և նախապայմանավորման ընտրություն

Նախ որոշեք՝ օգտագործել իտերացիոն, թե ուղղակի մեթոդ, իսկ իտերացիոն մեթոդ ընտրելու դեպքում այնուհետև ընտրեք նախապայմանավորումը։

Ընտրության չափանիշ Առաջարկվող մոտեցում
Խնդրի չափ Փոքր և միջին չափի խնդիրների դեպքում ուղղակի մեթոդը կայուն է և հեշտ օգտագործելի։ Մեծ խնդիրների դեպքում իտերացիոն մեթոդը հիշողության տեսանկյունից ավելի արդյունավետ է։
Մատրիցի համաչափություն Համաչափ դրական որոշյալ խնդիրների համար դիտարկեք CG-ն։ Ոչ համաչափ խնդիրների համար դիտարկեք BiCGSTAB, GMRES, GPBiCG և նման մեթոդներ։
Զուգահեռ միջավայր MPI զուգահեռացման դեպքում համակցեք իտերացիոն մեթոդը տիրույթի բաժանման հետ։ OpenMP զուգահեռացման ներքո որպես նախապայմանավորում դիտարկեք բազմագույն SSOR-ը։
Նախապայմանավորում (իտերացիոն մեթոդ ընտրելիս) Նախ փորձեք լռելյայն SSOR-ը, ապա դիտարկեք AMG-ը։ Լավ զուգամիտության դեպքում SSOR-ը հաշվարկային առումով թեթև է, իսկ բարդ մեծածավալ խնդիրների համար նպատակահարմար է AMG նախապայմանավորումը։ AMG-ն ունի Trilinos-ML-ի վրա հիմնված իրականացում և HEC-MW-ում ներկառուցված SA-AMG իրականացում․ ընտրեք ըստ կառուցման կազմաձևի։
Կոնտակտ և MPC Կոնտակտային վերլուծության կամ բազմակետ սահմանափակումներ պարունակող վերլուծության դեպքում MPC-ի մշակման եղանակի և կոնտակտային ազատության աստիճանների վերացման ընտրությունը ազդում է զուգամիտության և կայունության վրա։
Արտաքին գրադարաններ MUMPS, MKL և AMG (Trilinos-ML) հասանելի են համապատասխան գրադարանները կապած կառուցումներում։ AMG (SA-AMG) հասանելի է LAPACK-ը միացված կառուցումներում։

Ստանդարտ վերլուծությունների համար զուգամիտության չափանիշը, իտերացիաների առավելագույն թիվը և նախապայմանավորման անկյունագծային ուղղման գործակիցը սովորաբար բավարար են լռելյայն արժեքներով։ Միայն դանդաղ զուգամիտության կամ տարամիտման դեպքում հերթով վերանայեք իտերացիոն մեթոդը, նախապայմանավորումը, MPC-ի մշակման եղանակը և կոնտակտային ազատության աստիճանների վերացումը։ Պարամետրերի արժեքների և ձևաչափի համար տես բանալի բառերի տեղեկատուի !SOLVER էջը։

Իտերացիոն մեթոդներ

Իտերացիոն մեթոդները մեծ չափի նոսր մատրիցների համար լուծումը թարմացնում են՝ կրկնելով մատրից-վեկտոր արտադրյալը և նախապայմանավորումը։ FrontISTR-ում կարելի է ընտրել հետևյալ իտերացիոն մեթոդները։

Իտերացիոն մեթոդ Կիրառման ուղեցույց Նշում
CG Համաչափ դրական որոշյալ խնդիրներ Ստանդարտ թեկնածու է կառուցվածքային և ջերմահաղորդման վերլուծությունների համար։
BiCGSTAB Ոչ համաչափ խնդիրներ Թեկնածու է այն դեպքերում, երբ կոնտակտի կամ կապակցված խնդրի պատճառով ոչ համաչափությունն ուժեղ է։
GMRES Ոչ համաչափ խնդիրներ Օգտագործվում է՝ նշելով Krylov ենթատարածության չափը։
GPBiCG Ոչ համաչափ խնդիրներ Օգտագործվում է որպես BiCGSTAB ընտանիքի կատարելագործված մեթոդ։
GMRESR Ոչ համաչափ խնդիրներ, առաջադեմ կիրառություններ Տարբերակ է, որտեղ GMRES-ը կիրառվում է ներդրված ձևով։
GMRESREN Ոչ համաչափ խնդիրներ, առաջադեմ կիրառություններ GMRESR ընտանիքի ռեկուրսիվ տարբերակն է։

CG-ն ենթադրում է, որ մատրիցը համաչափ դրական որոշյալ է։ Եթե շփումով կոնտակտը, ոչ համաչափ սահմանափակումների մշակումը, կապակցված ազդեցությունները և այլ գործոններ առաջացնում են ուժեղ ոչ համաչափություն, դիտարկեք BiCGSTAB, GMRES, GPBiCG և նման մեթոդներ։ GMRES-ում Krylov ենթատարածության չափի մեծացումը երբեմն բարելավում է զուգամիտությունը, սակայն միաժամանակ մեծացնում է հիշողության օգտագործումը։

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

CG, BiCGSTAB, GPBiCG և PipeCG մեթոդները մնացորդային վեկտորը թարմացնում են ռեկուրենտ բանաձևով, ուստի իտերացիաների կուտակմանը զուգընթաց կուտակվում են կլորացման սխալներ, և մնացորդը կարող է շեղվել իրական մնացորդից։ Դա կանխելու համար որոշակի թվով իտերացիաներից հետո մնացորդային վեկտորը վերահաշվարկվում է աջ մասից և մատրից-վեկտոր արտադրյալից։ Այդ պարբերությունը սահմանվում է RECOMPUTE_RESIDUAL-ով։ Ավելի երկար պարբերությունը նվազեցնում է մատրից-վեկտոր արտադրյալների քանակը, սակայն մեծացնում է ռեկուրենտ հաշվարկված մնացորդի՝ իրական մնացորդից հեռանալու և չզուգամիտած լուծումը սխալմամբ զուգամիտած համարելու վտանգը։ Հակառակ դեպքում, չափազանց կարճ պարբերությունը ոչ միայն մեծացնում է մատրից-վեկտոր արտադրյալների քանակը, այլ նաև կարող է խախտել մնացորդի և օժանդակ վեկտորների միջև այն կապը, որը պահպանում է ռեկուրենտ բանաձևը, և վատացնել հենց զուգամիտությունը։ Յուրաքանչյուր մեթոդի լռելյայն արժեքը հավասարակշռում է այս գործոնները. այն փոխելու դեպքում ստուգեք զուգամիտության պատմությունը և վերջնական հարաբերական մնացորդը։

Նախապայմանավորում

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

Նախապայմանավորում Բնութագիր Կիրառման ուղեցույց
SSOR Ստանդարտ նախապայմանավորում։ Աջակցում է բազմագույն դասավորմանը։ Առաջին փորձվող տարբերակ։ Լայնորեն օգտագործվում է կառուցվածքային վերլուծություններում։
Անկյունագծային մասշտաբավորում Թեթև նախապայմանավորում, որն օգտագործում է անկյունագծային տարրերը։ Երբ անհրաժեշտ է նվազեցնել հաշվարկային ծախսը։
BILU Բլոկային ոչ լրիվ LU տրոհում։ Թեկնածու այն խնդիրների համար, որոնք SSOR-ով դժվար են զուգամիտում։
AMG (Trilinos-ML) Հանրահաշվական բազմացանցային մեթոդ՝ արտաքին Trilinos-ML գրադարանի միջոցով։ Թեկնածու մեծ խնդիրների կամ հիերարխիկ սխալի բաղադրիչներով գերակշռող խնդիրների համար։
AMG (SA-AMG) HEC-MW-ում ներկառուցված Smoothed Aggregation տիպի հանրահաշվական բազմացանցային մեթոդ։ Նույն կիրառությունը։ Թեկնածու է, երբ AMG-ն օգտագործվում է առանց լրացուցիչ արտաքին գրադարանի։
SAINV Sparse Approximate Inverse։ Թեկնածու կոնտակտային խնդիրների կամ բաշխված միջավայրերում հատուկ նախապայմանավորման համար։
RIF Robust Incomplete Factorization։ Ոչ լրիվ տրոհման ընտանիքի այլընտրանք։

SSOR-ը ստանդարտ ընտրություն է, իսկ OpenMP զուգահեռացման դեպքում օգտագործվում է բազմագույն դասավորմամբ տարբերակը։ Անկյունագծային մասշտաբավորումը թեթև է, բայց դրա զուգամիտությունը բարելավող ազդեցությունը կախված է խնդրից։ BILU-ն իրականացված է որպես բլոկային ոչ լրիվ LU տրոհում և աջակցում է նաև ընդհանուր ազատության աստիճաններով մատրիցներին։ BILU ընտանիքում, եթե իտերացիոն մեթոդը տարամիտում է, կա անկյունագծային ուղղման SIGMA_DIAG գործակիցը ավտոմատ մեծացնելու և նորից փորձելու ուղի, սակայն արժեքների նշումը նկարագրված է բանալի բառերի տեղեկատուում։

AMG-ն (հանրահաշվական բազմացանցային մեթոդ) ունի երկու իրականացում՝ արտաքին Trilinos-ML գրադարանն օգտագործող տարբերակը և HEC-MW-ում ներկառուցված SA-AMG-ը։ Դրանք անկախ իրականացումներ են և տարբերվում են պահանջվող կառուցման կազմաձևով ու հասանելի ընտրանքներով։

Trilinos-ML-ի վրա հիմնված AMG-ի համար կառուցման ժամանակ ML-ը պետք է միացված լինի։ Կարելի է նշել հարթեցնողը, բազմացանցային ցիկլը, կոպտացման եղանակը և այլ պարամետրեր, սակայն մանրամասն արժեքները տրված են բանալի բառերի տեղեկատուում։

SA-AMG-ը Smoothed Aggregation տիպի հանրահաշվական բազմացանցային նախապայմանավորում է և չի պահանջում Trilinos-ML։ Սակայն այն ներսում օգտագործում է LAPACK, ուստի անհրաժեշտ է LAPACK-ը միացված կառուցում․ եթե SA-AMG-ը նշվի LAPACK-ն անջատած կառուցման մեջ, ծրագիրը կավարտվի՝ առանց վերլուծությունը սկսելու։ Կոպիտ ցանցի լուծման համար MUMPS-ը միացված կառուցումներում կարելի է օգտագործել MUMPS, իսկ հակառակ դեպքում կիրառվում է ներկառուցված խիտ մատրիցի ուղղակի մեթոդը։

SA-AMG-ը հիմնականում նախատեսված է համաչափ դրական որոշյալ համակարգերի (CG) համար, սակայն աջակցում է նաև շփումով կոնտակտից առաջացող ոչ համաչափ կրճատված համակարգերին (BiCGSTAB, GMRES և այլն)։ Մեկ հանգույցի ազատության աստիճանների համար աջակցվում են 1-ը (ջերմահաղորդում), 2-ը (հարթ խնդիր), 3-ը (պինդ մարմին) և 6-ը (թաղանթ), սակայն չի աջակցվում հանգույցից հանգույց ազատության աստիճանների տարբեր թվով մատրիցներին։ Կարելի է նշել կոպիտ ցանցի լուծիչը, բազմացանցային ցիկլը, հարթեցնողի աստիճանը և այլ ընտրանքներ, իսկ ստանդարտ վերլուծությունների համար կարելի է օգտագործել լռելյայն արժեքները։ Արժեքներն ու ձևաչափը տրված են բանալի բառերի տեղեկատուում։ GPU-ն (OpenACC) միացված կառուցումներում նախապայմանավորման կիրառման մասը կատարվում է GPU-ի վրա։

Եթե SAINV-ը կիրառվում է կոնտակտային խնդիրներում կամ MPC պարունակող զուգահեռ վերլուծություններում, տիրույթի բաժանման ժամանակ համընկնման խորությունը կարող է ազդել զուգամիտության վրա։

Ուղղակի մեթոդներ

Ուղղակի մեթոդը գծային հավասարումները լուծում է՝ տրոհելով գործակցային մատրիցը։ Այն կայուն է, քանի որ կախված չէ իտերացիաների թվից, և կարող է կայուն ընտրություն լինել կոնտակտային վերլուծություններում կամ սահմանափակումներ պարունակող խնդիրներում։ Մյուս կողմից, խնդրի չափի մեծացման հետ մեծանում է հիշողության օգտագործումը։

Ուղղակի մեթոդ Զուգահեռ միջավայր Կիրառում
MUMPS MPI զուգահեռացում Բաշխված հիշողությամբ միջավայրում նոսր մատրիցը լուծում է ուղղակի մեթոդով։
MKL Intel MKL / OpenMP Intel MKL-ի ուղղակի մեթոդն է։ Ներսում աշխատում է Intel PARDISO-ն։ Մի քանի MPI պրոցեսների դեպքում օգտագործվում է Cluster MKL ուղին։ DIRECTmklMKL-ի այլանունն է։

Ուղղակի մեթոդները կարող են կիրառվել ինչպես համաչափ, այնպես էլ ոչ համաչափ մատրիցների համար։ MUMPS-ի և MKL-ի օգտագործման համար կառուցման ժամանակ համապատասխան գրադարանը պետք է կապակցված լինի։ Դրանք հասանելի չեն առանց գրադարանների միջավայրում, ուստի պահանջվող կախվածությունների և CMake տարբերակների համար տես կառուցման ուղեցույցը։

FrontISTR-ն ունի նաև արտաքին գրադարան չօգտագործող ներկառուցված ուղղակի մեթոդի ուղի, սակայն սովորական վերլուծության համար ուղղակի մեթոդ ընտրելիս որպես թեկնածու դիտարկեք MUMPS կամ MKL։

Ուղղակի մեթոդներում նախապայմանավորում չի կիրառվում։ Նույնիսկ եթե !SOLVER-ում նախապայմանավորում է նշված, ուղղակի մեթոդի ուղին այն չի օգտագործում։

MPC-ի մշակման եղանակներ

MPC-ի մշակման եղանակը որոշում է, թե բազմակետ սահմանափակումներով կապված ազատության աստիճաններն ինչպես են ներառվում գծային հավասարումների համակարգում։ Նույն մուտքային սահմանափակման հավասարման դեպքում անգամ մշակման եղանակից կախված փոխվում են գործակցային մատրիցի հատկությունները և զուգամիտությունը։

MPC-ի մշակման եղանակ Դիրքավորում Լռելյայն կիրառում
Տուգանքային մեթոդ Սահմանափակման հավասարմանը մեծ կոշտություն ավելացնելով՝ այն բավարարում է մոտավոր կերպով։ Լռելյայն՝ ուղղակի մեթոդի համար։
Ազատության աստիճանների բացահայտ վերացում Վերացնում է սահմանափակված ազատության աստիճանները և լուծում կրճատված գծային համակարգը։ Լռելյայն՝ իտերացիոն մեթոդի համար։

Ուղղակի մեթոդի լռելյայն եղանակը տուգանքային մեթոդն է, իսկ իտերացիոն մեթոդինը՝ ազատության աստիճանների բացահայտ վերացումը։ Նախկինում հասանելի MPC-CG մեթոդը հեռացվել է. MPCMETHOD=2 նշելու դեպքում տրվում է նախազգուշացում և կիրառվում է համապատասխան լռելյայն մեթոդը։

Ազատության աստիճանների բացահայտ վերացման դեպքում մոդալ վերլուծության և բացահայտ մեթոդով դինամիկ վերլուծության մեջ օգտագործվող կենտրոնացված զանգվածները նույնպես կրճատվում են կոշտության մատրիցի նույն ձևափոխությամբ։ Քանի որ կրճատված զանգվածի մատրիցն ընդհանուր դեպքում անկյունագծային չէ, դրա տողերի գումարներն օգտագործվում են որպես կենտրոնացված զանգվածներ։ Միացման կամ միջարկման այն սահմանափակումներում, որոնց սահմանափակման հավասարման գործակիցների գումարը 1 է, ենթակա ազատության աստիճանի զանգվածը բաշխվում է գլխավոր ազատության աստիճանների միջև՝ գործակիցներին համամասնորեն։

MPC-ի մշակման եղանակը կարելի է բացահայտ նշել !SOLVERMPCMETHOD պարամետրով։ Արժեքների նշանակության և ձևաչափի համար տես բանալի բառերի տեղեկատուն։

Կոնտակտային ազատության աստիճանների վերացում

Կոնտակտային ազատության աստիճանների վերացումը գործառույթ է, որը SLAGRANGE կոնտակտում ավելացվող կոնտակտային ազատության աստիճանները կրճատում է նախքան դրանք գծային լուծիչին փոխանցելը։ Դրանց վերացումը կարող է բարելավել իտերացիոն մեթոդով մշակվող գծային համակարգի հատկությունները։

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

CONTACT_ELIM-ը բացահայտ նշելով՝ կարելի է կոնտակտային ազատության աստիճանների վերացում կատարել նաև ուղղակի մեթոդի դեպքում։ Կոնտակտի տեսակի, կոնտակտային զույգի և կոնտակտային ալգորիթմի մուտքային ընտրության համար տես կոնտակտի և ներկառուցման էջերը։

Օժանդակ գործառույթներ

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

Գործառույթ Կիրառում Նշում
Պայմանավորվածության թվի գնահատում CG և GMRES մեթոդների համար արտածում է պայմանավորվածության թվի ցուցիչ։ Օգտագործվում է LAPACK-ով միացված կառուցման դեպքում։
Մատրիցի արտահանում Ֆայլում պահպանում է լուծիչին փոխանցվող մատրիցը և աջ կողմը։ Աջակցում է Matrix Market, CSR և BSR ձևաչափերին։
DUMPEXIT Ավարտում է վերլուծությունը մատրիցը արտահանելուց հետո։ Օգտագործվում է, երբ անհրաժեշտ է առանձնացնել միայն մատրիցը և ստուգել այն արտաքին գործիքով։
ITERLOG Արտածում է իտերացիոն մեթոդի զուգամիտության պատմությունը։ Թույլ է տալիս ստուգել մնացորդի փոփոխությունը։
TIMELOG Արտածում է լուծիչի հաշվարկային ժամանակը։ VERBOSE-ի դեպքում արտածում է մանրամասն բաժանումը։
STEPLOG Արտածում է քայլի տեղեկությունը։ Օգտագործվում է վերլուծության ընթացակարգը ստուգելու համար։
LOGLEVEL Արտածում է AMG նախապայմանավորման հիերարխիկ կառուցվածքի և նման ախտորոշիչ տեղեկություններ։ Նշվում է ITERLOG-ից և TIMELOG-ից անկախ։ Ավելի մեծ արժեքների դեպքում արտածումն ավելանում է։

Մատրիցի արտահանումը գործառույթ է, որով վերլուծության ընթացքում հավաքված գործակցային մատրիցը կարելի է ստուգել արտաքին գործիքով։ DUMPEXIT-ը միացնելու դեպքում վերլուծությունն ավարտվում է մատրիցը և աջ կողմը պահելու պահին։ Պայմանավորվածության թվի գնահատումը CG և GMRES մեթոդների համար հասանելի փորձարարական գործառույթ է և օգտագործվում է զուգամիտության ախտորոշման համար։

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