Skip to content

Kitatuzi na utayarishaji awali

Vitatuzi vya mstari vya FrontISTR husanidiwa kwa kuchagua mbinu ya moja kwa moja au mbinu ya kurudia; mbinu za kurudia huunganishwa na utayarishaji awali ili kutatua milinganyo ya mstari. Mbinu ya kushughulikia MPC na uondoaji wa viwango vya uhuru vya mgusano ni chaguo saidizi zinazoamua jinsi mfumo wa mstari wenye vizuizi vya nukta nyingi au vya mgusano unavyoshughulikiwa.

Muhtasari

Mipangilio ya kitatuzi na utayarishaji awali inajumuisha chaguo zifuatazo. Kwanza chagua mbinu ya kurudia au ya moja kwa moja kama kitatuzi cha mstari. Utayarishaji awali huunganishwa na mbinu ya kurudia pekee.

Kategoria Chaguo kuu Jukumu
Mbinu za kurudia CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN Kutatua matriki kubwa zilizo haba kwa matumizi ya kumbukumbu yenye ufanisi kiasi.
Utayarishaji awali wa mbinu za kurudia SSOR, usawazishaji wa diagonal, BILU, AMG, SAINV, RIF Kuboresha konverjensi ya mbinu za kurudia. Hazitumiki pamoja na mbinu za moja kwa moja.
Mbinu za moja kwa moja MUMPS, MKL Kutatua milinganyo ya mstari kwa uthabiti kupitia ufaktorizishaji wa matriki.
Mbinu za kushughulikia MPC Mbinu ya penalty, uondoaji dhahiri wa DOF Kuingiza vizuizi vya nukta nyingi katika mfumo wa mstari.
Uondoaji wa DOF za mgusano Otomatiki, huwezeshwa daima Kudhibiti ushughulikiaji wa viwango vya uhuru vya mgusano vinavyoongezwa na mgusano wa SLAGRANGE.
Vipengele saidizi Ukadiriaji wa nambari ya hali, uhifadhi wa matriki, uwekaji kumbukumbu Kusaidia utafutaji wa hitilafu, tathmini ya konverjensi na tathmini ya utendaji.

Kwa utekelezaji sambamba, usambamba wa MPI unaotegemea utenganishaji wa kikoa unaweza kuunganishwa na usambamba wa nyuzi wa OpenMP. Mbinu za kurudia ndizo chaguo la kawaida kwa uchanganuzi sambamba wa kiwango kikubwa, huku mbinu za moja kwa moja zikitumika pale maktaba zinazohitajika zimeunganishwa na suluhisho lenye uthabiti zaidi linahitajika.

Kuchagua kitatuzi na utayarishaji awali

Kwanza amua kama utatumia mbinu ya kurudia au ya moja kwa moja. Ikiwa mbinu ya kurudia imechaguliwa, chagua utayarishaji awali baada yake.

Kigezo cha uamuzi Mwongozo unaopendekezwa
Ukubwa wa tatizo Mbinu za moja kwa moja ni thabiti na rahisi kutumia kwa matatizo madogo hadi ya kati. Mbinu za kurudia hutumia kumbukumbu kwa ufanisi zaidi kwa matatizo makubwa.
Usimetria wa matriki Kwa matatizo simetriki chanya bainifu, zingatia CG. Kwa matatizo yasiyo simetriki, zingatia BiCGSTAB, GMRES, GPBiCG au mbinu zinazofanana.
Mazingira sambamba Chini ya usambamba wa MPI, unganisha mbinu ya kurudia na utenganishaji wa kikoa. Kwa utayarishaji awali chini ya usambamba wa OpenMP, zingatia utekelezaji wa SSOR wa rangi nyingi.
Kiandaliaji awali (mbinu ya kurudia inapotumika) Jaribu kwanza SSOR chaguo-msingi, kisha zingatia AMG. SSOR ni nyepesi kihesabu konverjensi ikiwa nzuri; utayarishaji awali wa AMG unafaa kwa matatizo changamano ya kiwango kikubwa. AMG inapatikana kama utekelezaji wa Trilinos-ML au SA-AMG iliyojengwa ndani ya HEC-MW; chagua kulingana na usanidi wa ujenzi.
Mgusano na MPC Katika uchanganuzi wenye mgusano au vizuizi vya nukta nyingi, uchaguzi wa mbinu ya kushughulikia MPC na uondoaji wa DOF za mgusano huathiri konverjensi na uthabiti.
Maktaba za nje MUMPS, MKL na AMG (Trilinos-ML) zinapatikana katika matoleo yaliyounganishwa na maktaba husika. AMG (SA-AMG) inapatikana katika matoleo yenye LAPACK iliyowezeshwa.

Kwa uchanganuzi wa kawaida, uvumilivu wa konverjensi wa chaguo-msingi, idadi ya juu ya marudio na mgawo wa marekebisho ya diagonal wa utayarishaji awali kwa kawaida vinatosha. Ni pale tu konverjensi inapokuwa polepole au suluhisho linapotengana ndipo unapopaswa kupitia upya, kwa mpangilio, mbinu ya kurudia, utayarishaji awali, mbinu ya kushughulikia MPC na uondoaji wa DOF za mgusano. Tazama rejeleo la neno kuu !SOLVER kwa thamani za vigezo na sintaksia.

Mbinu za kurudia

Mbinu za kurudia hutatua mifumo mikubwa iliyo haba kwa kusasisha suluhisho mara kwa mara kupitia zidisho za matriki na vekta pamoja na utayarishaji awali. FrontISTR hutoa mbinu zifuatazo za kurudia.

Mbinu ya kurudia Matumizi ya kawaida Maelezo
CG Matatizo simetriki chanya bainifu Chaguo la kawaida kwa uchanganuzi wa miundo na upitishaji joto.
BiCGSTAB Matatizo yasiyo simetriki Chaguo wakati mgusano au athari za uunganishaji zinasababisha kutosimetria kubwa.
GMRES Matatizo yasiyo simetriki Hutumika kwa ukubwa uliobainishwa wa nafasi ndogo ya Krylov.
GPBiCG Matatizo yasiyo simetriki Hutumika kama mbinu iliyoboreshwa katika familia ya BiCGSTAB.
GMRESR Matatizo yasiyo simetriki, matumizi ya hali ya juu Chaguo linalotumia GMRES kwa muundo uliowekwa ndani.
GMRESREN Matatizo yasiyo simetriki, matumizi ya hali ya juu Lahaja ya kujirudia katika familia ya GMRESR.

CG hudhani kuwa matriki ni simetriki chanya bainifu. Ikiwa mgusano wenye msuguano, ushughulikiaji usio simetriki wa vizuizi, athari za uunganishaji au mambo yanayofanana yanasababisha kutosimetria kubwa, zingatia BiCGSTAB, GMRES, GPBiCG au kitatuzi kingine kisicho simetriki. Kwa GMRES, kuongeza ukubwa wa nafasi ndogo ya Krylov kunaweza kuboresha konverjensi, lakini pia huongeza matumizi ya kumbukumbu.

METHOD2 ikibainishwa, FrontISTR inaweza kubadili kwenda mbinu mbadala ya kurudia ikiwa CG inatengana au inashindwa. Kipengele hiki ni chaguo mbadala kwa hali ambazo CG ndiyo kitatuzi kikuu; mbinu mbadala hutumia mipangilio na mistari ya data iliyobaki sawa na kitatuzi kikuu.

CG, BiCGSTAB, GPBiCG na PipeCG husasisha vekta ya masalio kwa uhusiano wa kujirudia; kwa hiyo kadiri iteresheni zinavyoongezeka, makosa ya kuzungusha hujilimbikiza na masalio yaliyokokotolewa yanaweza kutofautiana na masalio halisi. Ili kuzuia hili, vekta ya masalio hukokotolewa upya kutoka upande wa kulia na zidisho la matriki na vekta baada ya idadi fulani ya iteresheni. Kipindi hiki kinaweza kubainishwa kwa RECOMPUTE_RESIDUAL. Kurefusha kipindi hupunguza idadi ya zidisho za matriki na vekta, lakini huongeza hatari ya masalio ya uhusiano wa kujirudia kuachana na masalio halisi na suluhisho ambalo halijafikia konverjensi kutambuliwa kimakosa kuwa limefikia konverjensi. Kwa upande mwingine, kufupisha kipindi kupita kiasi hakuongezi tu zidisho za matriki na vekta, bali pia kunaweza kuvuruga uhusiano kati ya masalio na vekta saidizi unaodumishwa na uhusiano wa kujirudia, na hivyo kuharibu konverjensi yenyewe. Thamani chaguo-msingi ya kila mbinu imechaguliwa kwa kusawazisha mambo haya; ukiibadilisha, kagua historia ya konverjensi na masalio ya uwiano ya mwisho.

Utayarishaji awali

Utayarishaji awali hubadilisha matriki ya mgawo ili kuboresha konverjensi ya mbinu ya kurudia na hutumika tu wakati mbinu ya kurudia imechaguliwa. Mbinu za moja kwa moja hazitumii utayarishaji awali. Hata kwa mbinu ileile ya kurudia, uchaguzi wa utayarishaji awali unaweza kubadilisha kwa kiasi kikubwa idadi ya marudio na muda wa ukokotoaji unaohitajika kufikia konverjensi.

Utayarishaji awali Sifa Matumizi ya kawaida
SSOR Utayarishaji awali wa kawaida; inaunga mkono upangaji wa rangi nyingi. Chaguo la kwanza la kujaribu; hutumika sana katika uchanganuzi wa miundo.
Usawazishaji wa diagonal Utayarishaji awali nyepesi inayotumia vipengele vya diagonal. Wakati gharama ndogo ya ukokotoaji inapendelewa.
BILU Ufaktorizishaji wa LU usiokamilika kwa vitalu. Chaguo kwa matatizo ambayo ni vigumu kufikia konverjensi kwa SSOR.
AMG (Trilinos-ML) Multigrid ya kialjebra inayotumia maktaba ya nje ya Trilinos-ML. Chaguo kwa matatizo ya kiwango kikubwa au yanayotawaliwa na vipengele vya hitilafu vya kihierarkia.
AMG (SA-AMG) Multigrid ya kialjebra ya aina ya Smoothed Aggregation iliyojengwa ndani ya HEC-MW. Matumizi kama yaliyo juu; chaguo la kutumia AMG bila kuongeza maktaba ya nje.
SAINV Kinyume cha kukadiria kilicho haba. Chaguo maalumu la utayarishaji awali kwa matatizo ya mgusano au mazingira ya kumbukumbu iliyosambazwa.
RIF Ufaktorizishaji thabiti usiokamilika. Chaguo jingine la ufaktorizishaji usiokamilika.

SSOR ndiyo chaguo la kawaida, na toleo la upangaji wa rangi nyingi hutumika chini ya usambamba wa OpenMP. Usawazishaji wa diagonal ni mwepesi, ingawa kiwango cha kuboresha konverjensi hutegemea tatizo. BILU imetekelezwa kama ufaktorizishaji wa LU usiokamilika kwa vitalu na pia inaunga mkono matriki zenye idadi ya jumla ya viwango vya uhuru. Katika familia ya BILU, kuna njia inayoongeza kiotomatiki mgawo wa marekebisho ya diagonal SIGMA_DIAG na kujaribu tena mbinu ya kurudia ikitengana; tazama rejeleo la neno kuu kwa jinsi ya kubainisha thamani.

AMG (multigrid ya kialjebra) ina utekelezaji mbili: mmoja unaotumia maktaba ya nje ya Trilinos-ML na SA-AMG iliyojengwa ndani ya HEC-MW. Hizi ni utekelezaji huru zenye mahitaji tofauti ya usanidi wa ujenzi na chaguo zinazopatikana.

AMG inayotumia Trilinos-ML inahitaji ML iwe imewezeshwa wakati wa ujenzi. Kilainishi, mzunguko wa multigrid, mpango wa kufanya gridi kuwa korofi na mipangilio mingine inaweza kubainishwa; tazama rejeleo la neno kuu kwa thamani za kina.

SA-AMG ni kiandaliaji awali cha multigrid ya kialjebra cha aina ya Smoothed Aggregation na haihitaji Trilinos-ML. Hata hivyo, hutumia LAPACK ndani, hivyo inahitaji toleo lenye LAPACK iliyowezeshwa; ikichaguliwa katika toleo lisilo na LAPACK, programu hukoma bila kuanza uchanganuzi. Kwa utatuzi wa gridi korofi, MUMPS inaweza kutumika katika matoleo yenye MUMPS iliyowezeshwa; vinginevyo mbinu ya moja kwa moja ya matriki mnene iliyojengwa ndani hutumika.

SA-AMG inalenga hasa mifumo simetriki chanya bainifu (CG), lakini pia inaunga mkono mifumo iliyopunguzwa isiyo simetriki inayotokana na mgusano wenye msuguano (BiCGSTAB, GMRES na nyingine). Inaunga mkono viwango 1 (upitishaji joto), 2 (bapa), 3 (imara) na 6 (gamba) vya uhuru kwa kila nodi, lakini haiungi mkono matriki ambamo idadi ya viwango vya uhuru hutofautiana kati ya nodi. Kitatuzi cha gridi korofi, mzunguko wa multigrid, daraja la kilainishi na chaguo nyingine zinaweza kubainishwa, lakini thamani chaguo-msingi zinaweza kutumika kwa uchanganuzi wa kawaida. Tazama rejeleo la neno kuu kwa thamani na sintaksia. Katika matoleo yenye GPU (OpenACC) iliyowezeshwa, hatua ya kutumia kiandaliaji awali huendeshwa kwenye GPU.

SAINV inapotumika katika uchanganuzi sambamba wenye vizuizi vya mgusano au MPC, kina cha mwingiliano kinachotumika kwa utenganishaji wa kikoa kinaweza kuathiri konverjensi.

Mbinu za moja kwa moja

Mbinu za moja kwa moja hutatua milinganyo ya mstari kwa kufaktorisha matriki ya mgawo. Kwa kuwa hazitegemei idadi ya marudio, ni thabiti na zinaweza kuwa chaguo salama kwa uchanganuzi wenye hali za mgusano au vizuizi. Hata hivyo, matumizi yake ya kumbukumbu huongezeka kadiri tatizo linavyokuwa kubwa.

Mbinu ya moja kwa moja Mazingira sambamba Matumizi
MUMPS MPI sambamba Hutatua matriki zilizo haba kwa mbinu ya moja kwa moja katika mazingira ya kumbukumbu iliyosambazwa.
MKL Intel MKL / OpenMP Kitatuzi cha moja kwa moja kinachotegemea Intel MKL. Intel PARDISO hutumika ndani. Kwa michakato mingi ya MPI, njia ya Cluster MKL hutumika. DIRECTmkl ni jina mbadala la MKL.

Mbinu za moja kwa moja zinaweza kutumika kwa matriki simetriki na zisizo simetriki. MUMPS na MKL zinahitaji maktaba husika ziwe zimeunganishwa wakati wa ujenzi. Haziwezi kutumika katika mazingira yasiyo na maktaba hizo, hivyo tazama mwongozo wa ujenzi kwa vitegemezi vinavyohitajika na chaguo za CMake.

FrontISTR pia ina njia ya kitatuzi cha moja kwa moja iliyojengwa ndani ambayo haitumii maktaba ya nje, lakini kwa uchanganuzi wa kawaida unaohitaji mbinu ya moja kwa moja, MUMPS au MKL kwa kawaida zinapaswa kuzingatiwa kwanza.

Utayarishaji awali hautumiki kwa mbinu za moja kwa moja. Hata kama utayarishaji awali umebainishwa katika !SOLVER, haitumiki katika njia ya kitatuzi cha moja kwa moja.

Mbinu za kushughulikia MPC

Mbinu ya kushughulikia MPC huamua jinsi viwango vya uhuru vilivyounganishwa na vizuizi vya nukta nyingi vinavyoingizwa katika milinganyo ya mstari. Hata kwa milinganyo ileile ya vizuizi katika data ya ingizo, mbinu ya ushughulikiaji hubadilisha sifa na tabia ya konverjensi ya matriki ya mgawo.

Mbinu ya kushughulikia MPC Nafasi Matumizi ya chaguo-msingi
Mbinu ya penalty Hutimiza vizuizi kwa ukadiriaji kwa kuongeza vipengele vikubwa vya ugumu kwenye milinganyo ya vizuizi. Chaguo-msingi kwa mbinu za moja kwa moja.
Uondoaji dhahiri wa DOF Huondoa viwango vya uhuru vilivyowekewa vizuizi na kutatua mfumo wa mstari uliopunguzwa. Chaguo-msingi kwa mbinu za kurudia.

Mbinu ya penalty ndiyo chaguo-msingi kwa mbinu za moja kwa moja, huku uondoaji dhahiri wa DOF ukiwa chaguo-msingi kwa mbinu za kurudia. Mbinu ya MPC-CG iliyokuwa ikipatikana awali imeondolewa; MPCMETHOD=2 ikibainishwa, onyo hutolewa na mbinu husika ya chaguo-msingi hutumika.

Katika uondoaji dhahiri wa viwango vya uhuru, masi iliyolimbikizwa kwenye nodi inayotumika katika uchanganuzi wa modi na uchanganuzi wa mienendo kwa mbinu wazi pia hupunguzwa kwa mabadiliko yale yale ya matriki ya ugumu. Kwa kuwa matriki ya masi iliyopunguzwa kwa ujumla si ya ulalo pekee, jumla ya kila safu yake hutumika kama masi iliyolimbikizwa. Kwa vizuizi vya uunganishaji au ukadiriaji wa thamani za kati ambavyo jumla ya vigawo vya mlinganyo wa kizuizi ni 1, masi ya viwango vya uhuru tegemezi hugawiwa kwa viwango vya uhuru vinavyotawala kwa uwiano wa vigawo.

Mbinu ya kushughulikia MPC inaweza kubainishwa wazi kwa MPCMETHOD katika !SOLVER. Tazama rejeleo la neno kuu kwa maana na sintaksia ya kila thamani.

Uondoaji wa DOF za mgusano

Uondoaji wa DOF za mgusano hupunguza viwango vya ziada vya uhuru vya mgusano vinavyoletwa na mgusano wa SLAGRANGE kabla ya mfumo kupelekwa kwa kitatuzi cha mstari. Kuondoa DOF hizi za mgusano kunaweza kuboresha sifa za mfumo wa mstari unaoshughulikiwa na mbinu ya kurudia.

Katika hali ya kiotomatiki ya chaguo-msingi, uondoaji wa DOF za mgusano huwezeshwa kwa mbinu za kurudia na huzimwa kwa mbinu za moja kwa moja. Kwa mbinu za moja kwa moja, kuna njia inayotatua moja kwa moja mfumo uliopanuliwa wenye DOF za mgusano.

CONTACT_ELIM ikibainishwa wazi, uondoaji wa DOF za mgusano unaweza pia kufanywa wakati mbinu ya moja kwa moja inatumika. Kwa chaguo za aina ya mgusano, jozi ya mgusano na algoriti ya mgusano upande wa ingizo, tazama ukurasa wa Mgusano na Upachikaji.

Vipengele saidizi

Ukadiriaji wa nambari ya hali, uhifadhi wa matriki na uwekaji kumbukumbu vinaweza kutumika kuchunguza konverjensi na utendaji wa kitatuzi. Vipengele hivi havihitajiki kwa uchanganuzi wa kawaida na huwezeshwa hasa kwa utafutaji wa hitilafu au tathmini ya utendaji.

Kipengele Kusudi Maelezo
Ukadiriaji wa nambari ya hali Hutoa kiashirio cha nambari ya hali kwa CG na GMRES. Inapatikana katika matoleo yenye LAPACK iliyowezeshwa.
Uhifadhi wa matriki Huhifadhi matriki na upande wa kulia unaopelekwa kwa kitatuzi. Inaunga mkono miundo ya Matrix Market, CSR na BSR.
DUMPEXIT Humaliza uchanganuzi baada ya kuhifadhi matriki. Hutumika wakati matriki pekee inahitajika kwa uthibitishaji wa nje.
ITERLOG Hutoa historia ya konverjensi ya mbinu ya kurudia. Hutumika kuchunguza mwenendo wa mabaki.
TIMELOG Hutoa muda wa ukokotoaji wa kitatuzi. VERBOSE hutoa mgawanyo wa kina zaidi.
STEPLOG Hutoa taarifa za hatua. Hutumika kuchunguza utaratibu wa uchanganuzi.
LOGLEVEL Hutoa taarifa za uchunguzi kama muundo wa kihierarkia wa viandaliaji awali vya AMG. Hubainishwa kwa kujitegemea kutoka ITERLOG na TIMELOG. Thamani kubwa huongeza kiasi cha matokeo.

Uhifadhi wa matriki huruhusu matriki ya mgawo iliyokusanywa na uchanganuzi kuchunguzwa kwa zana za nje. DUMPEXIT ikiwashwa, uchanganuzi huisha baada ya matriki na upande wa kulia kuhifadhiwa. Ukadiriaji wa nambari ya hali ni kipengele cha majaribio kinachopatikana kwa CG na GMRES, na kinaweza kutumika kutambua tabia ya konverjensi.

Tazama pia