Sprendikliai ir išankstinis sąlygojimas¶
FrontISTR tiesiniai sprendikliai konfigūruojami pasirenkant tiesioginį arba iteracinį metodą; iteraciniai metodai tiesinėms lygtims spręsti derinami su išankstiniu sąlygojimu. MPC apdorojimo metodas ir kontaktinių laisvės laipsnių eliminavimas yra pagalbiniai pasirinkimai, nustatantys, kaip tvarkoma tiesinė sistema su daugiataškiais arba kontaktiniais apribojimais.
Funkcijų apžvalga¶
Sprendiklio ir išankstinio sąlygojimo nustatymus sudaro toliau išvardyti pasirinkimai. Pirmiausia kaip tiesinį sprendiklį pasirinkite iteracinį arba tiesioginį metodą. Išankstinis sąlygojimas derinamas tik su iteraciniu metodu.
| Kategorija | Pagrindinės parinktys | Paskirtis |
|---|---|---|
| Iteraciniai metodai | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | Dideles retas matricas sprendžia palyginti taupiai naudodami atmintį. |
| Iteracinių metodų išankstinis sąlygojimas | SSOR, įstrižinis mastelio keitimas, BILU, AMG, SAINV, RIF | Gerina iteracinių metodų konvergenciją. Su tiesioginiais metodais nenaudojamas. |
| Tiesioginiai metodai | MUMPS, MKL | Patikimai sprendžia tiesines lygtis faktorizuodami matricą. |
| MPC apdorojimo metodai | Baudos metodas, MPC-CG metodas, tiesioginis laisvės laipsnių eliminavimas | Įtraukia daugiataškius apribojimus į tiesinę sistemą. |
| Kontaktinių laisvės laipsnių eliminavimas | Automatinis, visada įjungtas | Valdo papildomų kontaktinių laisvės laipsnių, kuriuos įveda SLAGRANGE kontaktas, apdorojimą. |
| Pagalbinės funkcijos | Sąlygotumo skaičiaus įvertinimas, matricos išklotinė, žurnalas | Padeda derinti, vertinti konvergenciją ir našumą. |
Lygiagrečiam vykdymui srities skaidymu pagrįstą MPI lygiagretumą galima derinti su OpenMP gijų lygiagretumu. Iteraciniai metodai yra standartinis pasirinkimas didelio masto lygiagrečiosioms analizėms, o tiesioginiai metodai naudojami, kai susietos reikiamos bibliotekos ir reikia patikimesnio sprendimo.
Sprendiklio ir išankstinio sąlygojimo pasirinkimas¶
Pirmiausia nuspręskite, ar naudoti iteracinį, ar tiesioginį metodą. Jei pasirenkamas iteracinis metodas, tada pasirinkite išankstinio sąlygojimo metodą.
| Sprendimo kriterijus | Rekomenduojamas būdas |
|---|---|
| Uždavinio dydis | Mažiems ir vidutiniams uždaviniams tiesioginiai metodai yra stabilūs ir paprasti naudoti. Dideliems uždaviniams iteraciniai metodai taupiau naudoja atmintį. |
| Matricos simetrija | Simetriniams teigiamai apibrėžtiems uždaviniams svarstykite CG. Nesimetriniams uždaviniams svarstykite BiCGSTAB, GMRES, GPBiCG ar panašius metodus. |
| Lygiagrečioji aplinka | MPI lygiagretumo atveju iteracinį metodą derinkite su srities skaidymu. OpenMP lygiagretumo išankstiniam sąlygojimui svarstykite daugiaspalvę SSOR realizaciją. |
| Išankstinis sąlygojimas (naudojant iteracinį metodą) | Pirmiausia išbandykite numatytąjį SSOR, tada svarstykite AMG. SSOR skaičiavimo kaina maža, kai konvergencija gera; AMG tinka sudėtingiems didelio masto uždaviniams. |
| Kontaktas ir MPC | Analizėse su kontaktu arba daugiataškiais apribojimais MPC apdorojimo metodas ir kontaktinių laisvės laipsnių eliminavimas veikia konvergenciją ir patikimumą. |
| Išorinės bibliotekos | MUMPS, MKL ir AMG galimi kompiliacijose, susietose su atitinkamomis bibliotekomis. |
Standartinėms analizėms paprastai pakanka numatytosios konvergencijos tolerancijos, didžiausio iteracijų skaičiaus ir išankstinio sąlygojimo įstrižinės pataisos koeficiento. Tik kai konvergencija lėta arba sprendinys diverguoja, iš eilės persvarstykite iteracinį metodą, išankstinio sąlygojimo metodą, MPC apdorojimo metodą ir kontaktinių laisvės laipsnių eliminavimą. Parametrų reikšmes ir sintaksę žr. !SOLVER raktažodžio žinyne.
Iteraciniai metodai¶
Iteraciniai metodai dideles retas sistemas sprendžia pakartotinai atnaujindami sprendinį matricos ir vektoriaus sandaugomis bei išankstiniu sąlygojimu. FrontISTR pateikia šiuos iteracinius metodus.
| Iteracinis metodas | Tipinis taikymas | Pastabos |
|---|---|---|
CG | Simetriniai teigiamai apibrėžti uždaviniai | Standartinis kandidatas konstrukcijų ir šilumos laidumo analizei. |
BiCGSTAB | Nesimetriniai uždaviniai | Kandidatas, kai kontaktas ar susiejimo efektai sukelia ryškią nesimetriją. |
GMRES | Nesimetriniai uždaviniai | Naudojamas su nurodytu Krylovo poerdvio dydžiu. |
GPBiCG | Nesimetriniai uždaviniai | Naudojamas kaip patobulintas BiCGSTAB šeimos metodas. |
GMRESR | Nesimetriniai uždaviniai, išplėstiniai taikymai | Parinktis, naudojanti GMRES įdėtiniu pavidalu. |
GMRESREN | Nesimetriniai uždaviniai, išplėstiniai taikymai | Rekursinis GMRESR šeimos variantas. |
CG daro prielaidą, kad matrica yra simetrinė ir teigiamai apibrėžta. Jei trinties kontaktas, nesimetrinis apribojimų apdorojimas, susiejimo efektai ar panašūs veiksniai sukelia ryškią nesimetriją, svarstykite BiCGSTAB, GMRES, GPBiCG ar kitą nesimetrinį sprendiklį. Naudojant GMRES, didesnis Krylovo poerdvis gali pagerinti konvergenciją, tačiau didina atminties sąnaudas.
Kai nurodytas METHOD2, FrontISTR gali persijungti į alternatyvų iteracinį metodą, jei CG diverguoja arba sugenda. Ši funkcija yra atsarginis kelias atvejams, kai pagrindinis sprendiklis yra CG; alternatyvus metodas naudoja tuos pačius likusius nustatymus ir duomenų eilutes kaip pagrindinis sprendiklis.
Išankstinis sąlygojimas¶
Išankstinis sąlygojimas transformuoja koeficientų matricą, kad pagerintų iteracinio metodo konvergenciją, ir taikomas tik pasirinkus iteracinį metodą. Tiesioginiai metodai išankstinio sąlygojimo nenaudoja. Net tam pačiam iteraciniam metodui išankstinio sąlygojimo pasirinkimas gali smarkiai pakeisti konvergencijai reikalingų iteracijų skaičių ir skaičiavimo laiką.
| Išankstinio sąlygojimo metodas | Ypatybės | Tipinis taikymas |
|---|---|---|
| SSOR | Standartinis metodas; palaiko daugiaspalvį išdėstymą. | Pirmasis kandidatas; plačiai naudojamas konstrukcijų analizėje. |
| Įstrižinis mastelio keitimas | Lengvas metodas, naudojantis įstrižines reikšmes. | Kai svarbi maža skaičiavimo kaina. |
| BILU | Blokinė nepilnoji LU faktorizacija. | Kandidatas uždaviniams, kuriems su SSOR sunku pasiekti konvergenciją. |
| AMG | Algebraic Multigrid, naudojantis Trilinos-ML. | Kandidatas didelio masto uždaviniams arba uždaviniams, kuriuose vyrauja hierarchinės paklaidos komponentės. |
| SAINV | Sparse Approximate Inverse. | Specializuota parinktis kontaktiniams uždaviniams arba paskirstytosios atminties aplinkoms. |
| RIF | Robust Incomplete Factorization. | Kita nepilnosios faktorizacijos parinktis. |
SSOR yra standartinis pasirinkimas, o OpenMP lygiagretumo atveju naudojama versija su daugiaspalviu išdėstymu. Įstrižinis mastelio keitimas yra lengvas, nors jo poveikis konvergencijai priklauso nuo uždavinio. BILU realizuotas kaip blokinė nepilnoji LU faktorizacija ir palaiko matricas su bendru laisvės laipsnių skaičiumi. BILU šeimai yra kelias, kuris iteraciniam metodui diverguojant automatiškai padidina įstrižinės pataisos koeficientą SIGMA_DIAG ir bando iš naujo; reikšmės nurodymą žr. raktažodžio žinyne.
AMG naudoja Trilinos-ML, todėl kompiliavimo metu turi būti įjungtas ML. Galima nurodyti glodintuvus, daugiatinklio ciklus, stambinimo metodus ir kitus nustatymus, tačiau išsamias reikšmes žr. raktažodžio žinyne. Kai SAINV naudojamas lygiagrečiojoje analizėje su kontaktu arba MPC apribojimais, srities skaidymo persidengimo gylis gali turėti įtakos konvergencijai.
Tiesioginiai metodai¶
Tiesioginiai metodai tiesines lygtis sprendžia faktorizuodami koeficientų matricą. Kadangi jie nepriklauso nuo iteracijų skaičiaus, yra patikimi ir gali būti stabilus pasirinkimas analizėms su kontaktinėmis arba apribojimo sąlygomis. Tačiau jų atminties sąnaudos didėja didėjant uždaviniui.
| Tiesioginis metodas | Lygiagrečioji aplinka | Taikymas |
|---|---|---|
MUMPS | MPI lygiagretumas | Tiesioginiu metodu sprendžia retas matricas paskirstytosios atminties aplinkose. |
MKL | Intel MKL / OpenMP | Intel MKL pagrįstas tiesioginis sprendiklis. Viduje naudojamas Intel PARDISO. Naudojant kelis MPI procesus naudojamas Cluster MKL kelias. DIRECTmkl yra MKL sinonimas. |
Tiesioginiai metodai gali būti naudojami tiek simetrinėms, tiek nesimetrinėms matricoms. MUMPS ir MKL reikalauja, kad kompiliavimo metu būtų susietos atitinkamos bibliotekos. Aplinkose be šių bibliotekų jų naudoti negalima, todėl reikiamas priklausomybes ir CMake parinktis žr. kompiliavimo vadove.
FrontISTR taip pat turi įtaisytą tiesioginio sprendiklio kelią be išorinės bibliotekos, tačiau įprastoms analizėms, kurioms reikia tiesioginio metodo, paprastai pirmiausia reikėtų svarstyti MUMPS arba MKL.
Tiesioginiams metodams išankstinis sąlygojimas netaikomas. Net jei !SOLVER nurodytas išankstinio sąlygojimo metodas, tiesioginio sprendiklio kelyje jis nenaudojamas.
MPC apdorojimo metodai¶
MPC apdorojimo metodas nustato, kaip daugiataškiais apribojimais susieti laisvės laipsniai įtraukiami į tiesines lygtis. Net naudojant tas pačias apribojimo lygtis įvesties duomenyse, apdorojimo metodas keičia koeficientų matricos savybes ir konvergencijos elgseną.
| MPC apdorojimo metodas | Paskirtis | Numatytasis naudojimas |
|---|---|---|
| Baudos metodas | Apytiksliai tenkina apribojimus, prie apribojimo lygčių pridėdamas didelius standumo narius. | Numatytasis tiesioginiams metodams. |
| MPC-CG metodas | Senesnis metodas, iteracinio sprendiklio viduje apdorojantis matricos ir vektoriaus sandaugas su apribojimais. | Neberekomenduojamas. |
| Tiesioginis laisvės laipsnių eliminavimas | Eliminuoja apribotus laisvės laipsnius ir sprendžia redukuotą tiesinę sistemą. | Numatytasis iteraciniams metodams. |
Baudos metodas yra numatytasis tiesioginiams metodams, o tiesioginis laisvės laipsnių eliminavimas — iteraciniams metodams. MPC-CG yra senesnė suderinamumo parinktis ir naujoms analizėms nerekomenduojama; paprastai naudokite tiesioginį laisvės laipsnių eliminavimą arba pasirinkto tiesioginio metodo numatytąjį apdorojimą.
MPC apdorojimo metodą galima aiškiai nurodyti !SOLVER parametru MPCMETHOD. Kiekvienos reikšmės prasmę ir sintaksę žr. raktažodžio žinyne.
Kontaktinių laisvės laipsnių eliminavimas¶
Kontaktinių laisvės laipsnių eliminavimas sumažina SLAGRANGE kontakto įvestus papildomus kontaktinius laisvės laipsnius prieš perduodant sistemą tiesiniam sprendikliui. Šių kontaktinių laisvės laipsnių eliminavimas gali pagerinti iteracinio metodo sprendžiamos tiesinės sistemos savybes.
Numatytuoju automatiniu režimu kontaktinių laisvės laipsnių eliminavimas įjungtas iteraciniams metodams ir išjungtas tiesioginiams metodams. Tiesioginiams metodams numatytas kelias, tiesiogiai sprendžiantis išplėstą sistemą su kontaktiniais laisvės laipsniais.
Kai CONTACT_ELIM nurodomas aiškiai, kontaktinių laisvės laipsnių eliminavimą galima atlikti ir naudojant tiesioginį metodą. Kontakto tipo, kontaktinės poros ir kontakto algoritmo pasirinkimus įvestyje žr. Kontakto ir įterpimo puslapyje.
Pagalbinės funkcijos¶
Sąlygotumo skaičiaus įvertinimą, matricos išklotines ir žurnalų išvestį galima naudoti sprendiklio konvergencijai ir našumui tirti. Įprastoms analizėms šios funkcijos nereikalingos ir daugiausia įjungiamos derinimui arba našumui vertinti.
| Funkcija | Paskirtis | Pastabos |
|---|---|---|
| Sąlygotumo skaičiaus įvertinimas | Išveda CG ir GMRES sąlygotumo skaičiaus indikatorių. | Galima kompiliacijose su įjungta LAPACK. |
| Matricos išklotinė | Išsaugo sprendikliui perduodamą matricą ir dešiniąją pusę. | Palaiko Matrix Market, CSR ir BSR formatus. |
DUMPEXIT | Nutraukia analizę išvedus matricą. | Naudojama, kai išoriniam tikrinimui reikia tik matricos. |
ITERLOG | Išveda iteracinio metodo konvergencijos istoriją. | Naudojama liekamųjų dydžių kitimui tikrinti. |
TIMELOG | Išveda sprendiklio skaičiavimo laiką. | VERBOSE pateikia išsamesnį išskaidymą. |
STEPLOG | Išveda žingsnio informaciją. | Naudojama analizės eigai tikrinti. |
Matricos išklotinė leidžia analizėje surinktą koeficientų matricą tirti išorinėmis priemonėmis. Kai įjungtas DUMPEXIT, išsaugojus matricą ir dešiniąją pusę analizė nutraukiama. Sąlygotumo skaičiaus įvertinimas yra eksperimentinė funkcija, galima su CG ir GMRES, ir gali būti naudojama konvergencijos elgsenai diagnozuoti.
Susijusios temos¶
- Tiesinis sprendiklis (teorija) — iteracinių metodų ir išankstinio sąlygojimo matematiniai principai.
- Netiesinės iteracijos ir laiko integravimas — Newtono iteracijų, kontakto iteracijų ir laiko integravimo schema, iškviečianti tiesinį sprendiklį.
- Srities skaidymas — MPI lygiagrečioji analizė ir persidengimo gylio nustatymai.
- Kontaktas ir įterpimas — kontakto tipų ir kontakto algoritmų pasirinkimas.
- !SOLVER — sprendiklio ir išankstinio sąlygojimo parametrų reikšmės bei sintaksė.
- Privalomos ir pasirenkamos priklausomybių bibliotekos — priklausomybės, pvz.,
MUMPS,MKL(Intel PARDISO), Trilinos-ML ir LAPACK.