Ebazlea eta aurrebaldintzapena¶
FrontISTR-en ebazle linealak metodo zuzen edo iteratibo bat hautatuz konfiguratzen dira; metodo iteratiboak aurrebaldintzatzaile batekin konbinatzen dira ekuazio linealak ebazteko. MPC tratamendu-metodoak eta kontaktu-askatasun-graduen ezabaketak puntu anitzeko edo kontaktu-murriztapenak dituen sistema lineala nola tratatzen den zehazten duten aukera osagarriak dira.
Funtzioen ikuspegi orokorra¶
Ebazlearen eta aurrebaldintzapenaren ezarpenek honako aukera hauek dituzte. Lehenik, metodo iteratibo edo zuzen bat hautatzen da ebazle lineal gisa. Aurrebaldintzatzailea metodo iteratiboekin bakarrik konbinatzen da.
| Kategoria | Aukera nagusiak | Eginkizuna |
|---|---|---|
| Metodo iteratiboak | CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN | Matrize sakabanatu handiak memoria nahiko eraginkortasunez ebazten dituzte. |
| Metodo iteratiboetarako aurrebaldintzatzaileak | SSOR, eskalatze diagonala, BILU, AMG, SAINV, RIF | Metodo iteratiboen konbergentzia hobetzen dute. Ez dira metodo zuzenekin erabiltzen. |
| Metodo zuzenak | MUMPS, MKL | Ekuazio linealak matrize-faktorizazioaren bidez modu sendoan ebazten dituzte. |
| MPC tratamendu-metodoak | Penalizazio-metodoa, askatasun-graduen ezabaketa esplizitua | Puntu anitzeko murriztapenak sistema linealean txertatzen dituzte. |
| Kontaktu-askatasun-graduen ezabaketa | Automatikoa, beti gaituta | SLAGRANGE kontaktuak gehitutako kontaktu-askatasun-graduen tratamendua kontrolatzen du. |
| Funtzio osagarriak | Baldintza-zenbakiaren estimazioa, matrize-dumpa, erregistroa | Arazketa, konbergentziaren ebaluazioa eta errendimenduaren ebaluazioa laguntzen dituzte. |
Exekuzio paraleloan, domeinu-deskonposizioan oinarritutako MPI paralelismoa OpenMP hari-paralelismoarekin konbina daiteke. Metodo iteratiboak eskala handiko analisi paraleloetarako ohiko aukera dira; metodo zuzenak, berriz, behar diren liburutegiak estekatuta daudenean eta soluzio sendoagoa behar denean erabiltzen dira.
Ebazlea eta aurrebaldintzatzailea hautatzea¶
Lehenik erabaki metodo iteratibo edo zuzen bat erabili behar den. Metodo iteratiboa hautatzen bada, ondoren aurrebaldintzatzailea hautatu.
| Erabaki-faktorea | Gomendatutako ikuspegia |
|---|---|
| Problemaren tamaina | Metodo zuzenak egonkorrak eta erabiltzeko errazak dira problema txiki eta ertainetan. Metodo iteratiboek memoria eraginkorrago erabiltzen dute problema handietan. |
| Matrizearen simetria | Problema simetriko positibo definituetarako, kontuan hartu CG. Problema ez-simetrikoetarako, kontuan hartu BiCGSTAB, GMRES, GPBiCG edo antzeko metodoak. |
| Ingurune paraleloa | MPI paralelismoan, metodo iteratiboa domeinu-deskonposizioarekin konbinatu. OpenMP paralelismoko aurrebaldintzapenerako, kontuan hartu kolore anitzeko SSOR inplementazioa. |
| Aurrebaldintzatzailea (metodo iteratiboa erabiltzean) | Lehenik saiatu SSOR lehenetsiarekin, eta gero kontuan hartu AMG. SSOR konputazionalki arina da konbergentzia ona denean; AMG aurrebaldintzapena egokia da problema konplexu eta eskala handikoetarako. AMG Trilinos-ML bidezko inplementazio gisa eta HEC-MWren SA-AMG integratu gisa dago erabilgarri; hautatu konpilazio-konfigurazioaren arabera. |
| Kontaktua eta MPC | Kontaktua edo puntu anitzeko murriztapenak dituzten analisietan, MPC tratamendu-metodoaren eta kontaktu-askatasun-graduen ezabaketaren aukerak konbergentzian eta sendotasunean eragiten du. |
| Kanpoko liburutegiak | MUMPS, MKL eta AMG (Trilinos-ML) dagozkien liburutegiekin estekatutako konpilazioetan daude erabilgarri. AMG (SA-AMG) LAPACK gaituta duten konpilazioetan dago erabilgarri. |
Analisi arruntetan, konbergentzia-tolerantzia lehenetsia, iterazio kopuru maximoa eta aurrebaldintzatzailearen zuzenketa diagonaleko koefizientea nahikoak izaten dira. Konbergentzia motela denean edo soluzioa dibergitzen denean bakarrik berrikusi behar dira, hurrenez hurren, metodo iteratiboa, aurrebaldintzatzailea, MPC tratamendu-metodoa eta kontaktu-askatasun-graduen ezabaketa. Parametroen balioak eta sintaxia ikusteko, kontsultatu !SOLVER gako-hitzaren erreferentzia.
Metodo iteratiboak¶
Metodo iteratiboek sistema sakabanatu handiak ebazten dituzte soluzioa behin eta berriz eguneratuz, matrize-bektore biderketen eta aurrebaldintzapenaren bidez. FrontISTR-ek honako metodo iteratibo hauek eskaintzen ditu.
| Metodo iteratiboa | Ohiko aplikazioa | Oharrak |
|---|---|---|
CG | Problema simetriko positibo definituak | Egitura- eta bero-eroapen analisietarako ohiko hautagaia. |
BiCGSTAB | Problema ez-simetrikoak | Kontaktuak edo akoplamendu-efektuek ez-simetria handia sortzen dutenean erabiltzeko hautagaia. |
GMRES | Problema ez-simetrikoak | Zehaztutako Krylov azpiespazioaren tamainarekin erabiltzen da. |
GPBiCG | Problema ez-simetrikoak | BiCGSTAB familiako metodo hobetu gisa erabiltzen da. |
GMRESR | Problema ez-simetrikoak, aplikazio aurreratuak | GMRES forma habiaratuan erabiltzen duen aukera. |
GMRESREN | Problema ez-simetrikoak, aplikazio aurreratuak | GMRESR familiako aldaera errekurtsiboa. |
CG metodoak matrizea simetriko positibo definitua dela suposatzen du. Marruskadura-kontaktuak, murriztapenen tratamendu ez-simetrikoak, akoplamendu-efektuek edo antzeko faktoreek ez-simetria handia sartzen badute, kontuan hartu BiCGSTAB, GMRES, GPBiCG edo beste ebazle ez-simetriko bat. GMRES erabiltzean, Krylov azpiespazioaren tamaina handitzeak konbergentzia hobetu dezake, baina memoria-erabilera ere handitzen du.
METHOD2 zehazten denean, FrontISTR beste metodo iteratibo batera alda daiteke CG dibergitzen bada edo huts egiten badu. Funtzio hau CG ebazle nagusia den kasuetarako ordezko aukera da; metodo alternatiboak ebazle nagusiaren gainerako ezarpen eta datu-lerro berak erabiltzen ditu.
CG, BiCGSTAB, GPBiCG eta PipeCG metodoek hondar-bektorea errekurrentzia-formula baten bidez eguneratzen dute; beraz, iterazioak pilatu ahala biribiltze-erroreak metatzen dira eta hondarra benetako hondarretik aldendu daiteke. Hori saihesteko, iterazio kopuru jakin baten ondoren hondar-bektorea berriro kalkulatzen da eskuineko aldetik eta matrize-bektore biderkaduratik. Periodo hori RECOMPUTE_RESIDUAL erabiliz zehazten da. Periodoa luzatzeak matrize-bektore biderkadura gutxiago egitea dakar, baina errekurrentziaz kalkulatutako hondarra benetako hondarretik aldentzeko eta konbergitu ez duen soluzio bat konbergitutzat jotzeko arriskua handitzen du. Aldiz, periodoa laburregia bada, matrize-bektore biderkaduren kopurua handitzeaz gain, errekurrentziak hondarraren eta bektore osagarrien artean mantentzen duen erlazioa hautsi daiteke eta konbergentzia bera okertu. Metodo bakoitzaren balio lehenetsiek oreka hori kontuan hartzen dute; balioak aldatzen badira, egiaztatu konbergentzia-historia eta amaierako hondar erlatiboa.
Aurrebaldintzapena¶
Aurrebaldintzapenak koefiziente-matrizea eraldatzen du metodo iteratiboaren konbergentzia hobetzeko, eta metodo iteratibo bat hautatzen denean bakarrik aplikatzen da. Metodo zuzenek ez dute aurrebaldintzapenik erabiltzen. Metodo iteratibo bera erabilita ere, aurrebaldintzatzailearen aukerak nabarmen alda ditzake konbergentziarako behar diren iterazio kopurua eta kalkulu-denbora.
| Aurrebaldintzatzailea | Ezaugarriak | Ohiko aplikazioa |
|---|---|---|
| SSOR | Aurrebaldintzatzaile estandarra; kolore anitzeko ordenamendua onartzen du. | Lehenengo probatzeko hautagaia; egitura-analisian oso erabilia. |
| Eskalatze diagonala | Sarrera diagonalak erabiltzen dituen aurrebaldintzatzaile arina. | Konputazio-kostu txikia lehenesten denean. |
| BILU | Bloke bidezko LU faktorizazio osatugabea. | SSOR bidez konbergitzea zaila den problemetarako hautagaia. |
| AMG (Trilinos-ML) | Kanpoko Trilinos-ML liburutegia erabiltzen duen sare anitzeko metodo aljebraikoa. | Eskala handiko problemetarako edo errore-osagai hierarkikoak nagusi diren problemetarako hautagaia. |
| AMG (SA-AMG) | HEC-MWn integratutako Smoothed Aggregation motako sare anitzeko metodo aljebraikoa. | Aurrekoaren antzeko kasuetarako; kanpoko liburutegi gehigarririk gabe AMG erabiltzeko hautagaia. |
| SAINV | Alderantzizko matrize sakabanatu hurbildua. | Kontaktu-problemetarako edo memoria banatuko inguruneetarako aurrebaldintzapen-aukera espezializatua. |
| RIF | Faktorizazio osatugabe sendoa. | Beste faktorizazio osatugabeko aukera bat. |
SSOR da aukera estandarra, eta OpenMP paralelismoan kolore anitzeko ordenamendua duen bertsioa erabiltzen da. Eskalatze diagonala arina da, nahiz eta konbergentziaren hobekuntza problemaren araberakoa izan. BILU bloke bidezko LU faktorizazio osatugabe gisa inplementatuta dago eta askatasun-gradu kopuru orokorra duten matrizeak ere onartzen ditu. BILU familian, metodo iteratiboa dibergitzen denean SIGMA_DIAG zuzenketa diagonaleko koefizientea automatikoki handitu eta berriro saiatzen den bide bat dago; balioa nola zehaztu jakiteko, ikusi gako-hitzaren erreferentzia.
AMG-k (sare anitzeko metodo aljebraikoak) bi inplementazio ditu: kanpoko Trilinos-ML liburutegia erabiltzen duena eta HEC-MWn integratutako SA-AMG. Inplementazio independenteak dira, eta behar dituzten konpilazio-konfigurazioak eta erabilgarri dituzten aukerak desberdinak dira.
Trilinos-ML bidezko AMG erabiltzeko, ML konpilazio-garaian gaituta egon behar da. Leuntzailea, sare anitzeko zikloa, loditze-eskema eta beste ezarpen batzuk zehaztu daitezke; balio zehatzak ikusteko, kontsultatu gako-hitzen erreferentzia.
SA-AMG Smoothed Aggregation motako sare anitzeko aurrebaldintzatzaile aljebraikoa da, eta ez du Trilinos-ML behar. Hala ere, LAPACK erabiltzen du barnean; beraz, LAPACK gaituta duen konpilazioa behar da. LAPACK desgaituta duen konpilazio batean hautatzen bada, programa analisia hasi gabe amaitzen da. Sare lodiko ebazpenerako, MUMPS gaituta duten konpilazioetan MUMPS erabil daiteke; bestela, integratutako matrize dentsoen metodo zuzena erabiltzen da.
SA-AMG batez ere sistema simetriko positibo definituetarako (CG) da, baina marruskadura-kontaktuak sortutako sistema murriztu ez-simetrikoak ere onartzen ditu (BiCGSTAB, GMRES eta beste batzuk). Nodo bakoitzeko 1 (bero-eroapena), 2 (planoa), 3 (solidoa) eta 6 (oskola) askatasun-gradu onartzen ditu, baina ez nodoen artean askatasun-gradu kopurua aldatzen den matrizerik. Sare lodiko ebazlea, sare anitzeko zikloa, leuntzailearen gradua eta beste aukera batzuk zehaztu daitezke, baina analisi estandarretan balio lehenetsiak erabil daitezke. Balioak eta sintaxia ikusteko, kontsultatu gako-hitzen erreferentzia. GPU (OpenACC) gaituta duten konpilazioetan, aurrebaldintzatzailea aplikatzeko fasea GPUan exekutatzen da.
SAINV kontaktu- edo MPC-murriztapenak dituen analisi paralelo batean erabiltzen denean, sarearen partizionamendurako erabilitako gainjartze-sakonerak konbergentzian eragin dezake.
Metodo zuzenak¶
Metodo zuzenek ekuazio linealak koefiziente-matrizea faktorizatuz ebazten dituzte. Iterazio kopuruaren mende ez daudenez, sendoak dira eta aukera egonkorra izan daitezke kontaktu- edo murriztapen-baldintzak dituzten analisietan. Hala ere, memoria-kontsumoa problemaren tamainarekin handitzen da.
| Metodo zuzena | Ingurune paraleloa | Aplikazioa |
|---|---|---|
MUMPS | MPI paraleloa | Matrize sakabanatuak metodo zuzen batez ebazten ditu memoria banatuko inguruneetan. |
MKL | Intel MKL / OpenMP | Intel MKL-n oinarritutako ebazle zuzena. Barnean Intel PARDISO erabiltzen da. MPI prozesu anitzekin, Cluster MKL bidea erabiltzen da. DIRECTmkl MKL-ren aliasa da. |
Metodo zuzenak matrize simetriko nahiz ez-simetrikoekin erabil daitezke. MUMPS eta MKL erabiltzeko, dagozkien liburutegiak konpilazio-garaian estekatuta egon behar dira. Liburutegi horiek ez dituzten inguruneetan ezin dira erabili; behar diren mendekotasunak eta CMake aukerak ikusteko, kontsultatu konpilazio-gida.
FrontISTR-ek kanpoko liburutegirik erabiltzen ez duen barneko ebazle zuzeneko bide bat ere badu, baina metodo zuzena behar duten analisi arruntetarako normalean MUMPS edo MKL hartu behar dira lehenik kontuan.
Aurrebaldintzapena ez zaie metodo zuzenei aplikatzen. !SOLVER-en aurrebaldintzatzaile bat zehaztuta egonda ere, ebazle zuzeneko bidean ez da erabiltzen.
MPC tratamendu-metodoak¶
MPC tratamendu-metodoak puntu anitzeko murriztapenen bidez lotutako askatasun-graduak ekuazio linealetan nola txertatzen diren zehazten du. Sarrera-datuetako murriztapen-ekuazioak berak izanda ere, tratamendu-metodoak koefiziente-matrizearen propietateak eta konbergentzia-portaera aldatzen ditu.
| MPC tratamendu-metodoa | Kokapena | Erabilera lehenetsia |
|---|---|---|
| Penalizazio-metodoa | Murriztapenak gutxi gorabehera betetzen ditu, murriztapen-ekuazioei zurruntasun-termino handiak gehituz. | Metodo zuzenetarako lehenetsia. |
| Askatasun-graduen ezabaketa esplizitua | Murriztutako askatasun-graduak ezabatzen ditu eta sistema lineal murriztua ebazten du. | Metodo iteratiboetarako lehenetsia. |
Penalizazio-metodoa da metodo zuzenetarako lehenetsia, eta askatasun-graduen ezabaketa esplizitua metodo iteratiboetarako. Lehen hauta zitekeen MPC-CG metodoa kendu egin da; MPCMETHOD=2 zehaztean, abisua ematen da eta dagokion metodo lehenetsia erabiltzen da.
Askatasun-graduen ezabaketa esplizituan, analisi modalean eta analisi dinamiko esplizituan erabiltzen diren masa kontzentratuak ere zurruntasun-matrizearen transformazio berarekin murrizten dira. Murriztutako masa-matrizea, oro har, diagonala ez denez, haren errenkaden baturak masa kontzentratu gisa erabiltzen dira. Murriztapen-ekuazioaren koefizienteen batura 1 duten lotura- edo interpolazio-murriztapenetan, mendeko askatasun-graduaren masa askatasun-gradu nagusien artean banatzen da, koefizienteekiko proportzioan.
MPC tratamendu-metodoa esplizituki zehaztu daiteke !SOLVER-eko MPCMETHOD erabiliz. Balio bakoitzaren esanahia eta sintaxia ikusteko, kontsultatu gako-hitzaren erreferentzia.
Kontaktu-askatasun-graduen ezabaketa¶
Kontaktu-askatasun-graduen ezabaketak SLAGRANGE kontaktuak gehitutako kontaktu-askatasun-gradu osagarriak murrizten ditu sistema ebazle linealari eman aurretik. Kontaktu-askatasun-gradu horiek ezabatzeak metodo iteratiboak tratatzen duen sistema linealaren propietateak hobetu ditzake.
Modu automatiko lehenetsian, kontaktu-askatasun-graduen ezabaketa gaituta dago metodo iteratiboetarako eta desgaituta metodo zuzenetarako. Metodo zuzenetarako, kontaktu-askatasun-graduak dituen sistema handitua zuzenean ebazten duen bide bat dago.
CONTACT_ELIM esplizituki zehazten denean, kontaktu-askatasun-graduen ezabaketa metodo zuzen batekin ere egin daiteke. Sarrerako kontaktu-motaren, kontaktu-parearen eta kontaktu-algoritmoaren aukerak ikusteko, kontsultatu Kontaktua eta txertaketa orria.
Funtzio osagarriak¶
Baldintza-zenbakiaren estimazioa, matrize-dumpak eta erregistroak erabil daitezke ebazlearen konbergentzia eta errendimendua aztertzeko. Funtzio hauek ez dira beharrezkoak analisi arruntetarako, eta batez ere arazketarako edo errendimendu-ebaluaziorako gaitzen dira.
| Funtzioa | Helburua | Oharrak |
|---|---|---|
| Baldintza-zenbakiaren estimazioa | CG eta GMRES-en baldintza-zenbakiaren adierazle bat ateratzen du. | LAPACK gaituta duten konpilazioetan erabilgarri. |
| Matrize-dumpa | Ebazleari emandako matrizea eta eskuineko bektorea gordetzen ditu. | Matrix Market, CSR eta BSR formatuak onartzen ditu. |
DUMPEXIT | Matrizea gorde ondoren analisia amaitzen du. | Kanpoko egiaztapenerako matrizea bakarrik behar denean erabiltzen da. |
ITERLOG | Metodo iteratiboaren konbergentzia-historia ateratzen du. | Hondarraren joera aztertzeko erabiltzen da. |
TIMELOG | Ebazlearen kalkulu-denbora ateratzen du. | VERBOSE-k banaketa xeheagoa ateratzen du. |
STEPLOG | Urratsaren informazioa ateratzen du. | Analisi-prozedura aztertzeko erabiltzen da. |
LOGLEVEL | AMG aurrebaldintzatzaileen hierarkiaren eraikuntza bezalako diagnostiko-informazioa ateratzen du. | ITERLOG eta TIMELOG-etik bereizita zehazten da. Balio handiagoek irteera gehiago sortzen dute. |
Matrize-dumpak analisiak muntatutako koefiziente-matrizea kanpoko tresnekin aztertzeko aukera ematen du. DUMPEXIT gaituta dagoenean, analisia matrizea eta eskuineko bektorea gorde ondoren amaitzen da. Baldintza-zenbakiaren estimazioa CG eta GMRES-ekin erabilgarri dagoen funtzio esperimentala da, eta konbergentzia-portaera diagnostikatzeko erabil daiteke.
Lotutako gaiak¶
- Ebazle lineala (teoria) — Metodo iteratiboen eta aurrebaldintzapenaren printzipio matematikoak.
- Iterazio ez-lineala eta denbora-integrazioa — Ebazle lineala deitzen duten Newton iterazioen, kontaktu-iterazioen eta denbora-integrazioaren esparrua.
- Sarearen partizionamendua — MPI analisi paraleloa eta gainjartze-sakoneraren ezarpenak.
- Kontaktua eta txertaketa — Kontaktu-moten eta kontaktu-algoritmoen hautaketa.
- !SOLVER — Ebazlearen eta aurrebaldintzatzailearen parametroen balioak eta sintaxia.
- Beharrezko eta aukerako mendekotasun-liburutegiak —
MUMPS,MKL(Intel PARDISO), Trilinos-ML eta LAPACK bezalako mendekotasunak.