Skip to content

Шешуші және алдын ала шарттау

FrontISTR сызықтық шешушілері тікелей немесе итерациялық әдісті таңдауға мүмкіндік береді; итерациялық әдістер сызықтық теңдеулерді шешу үшін алдын ала шарттаумен бірге қолданылады. MPC өңдеу тәсілі мен контакт еркіндік дәрежелерін жою — көпнүктелі немесе контакт шектеулері бар сызықтық жүйені қандай түрде өңдеу керектігін анықтайтын қосымша таңдаулар.

Функциялардың жалпы көрінісі

Шешуші мен алдын ала шарттау параметрлері келесі таңдаулардан тұрады. Алдымен сызықтық шешуші ретінде итерациялық немесе тікелей әдіс таңдалады. Алдын ала шарттау тек итерациялық әдіс таңдалғанда қолданылады.

Санат Негізгі таңдаулар Рөлі
Итерациялық әдістер CG, BiCGSTAB, GMRES, GPBiCG, GMRESR, GMRESREN Үлкен сирек матрицаларды жадты салыстырмалы тиімді пайдаланып шешеді.
Итерациялық әдістерге арналған алдын ала шарттау SSOR, диагональдық масштабтау, BILU, AMG, SAINV, RIF Итерациялық әдістердің жинақталуын жақсартады. Тікелей әдістерде қолданылмайды.
Тікелей әдістер MUMPS, MKL Матрицаны жіктеу арқылы сызықтық теңдеулерді орнықты шешеді.
MPC өңдеу тәсілдері Айыппұл әдісі, MPC-CG әдісі, еркіндік дәрежелерін айқын жою Көпнүктелі шектеулерді сызықтық жүйеге енгізеді.
Контакт еркіндік дәрежелерін жою Автоматты, әрқашан қосулы SLAGRANGE контактісі қосатын контакт еркіндік дәрежелерінің өңделуін басқарады.
Қосымша функциялар Шарттылық санын бағалау, матрицаны дамптау, журналға жазу Жөндеуге, жинақталуды тексеруге және өнімділікті бағалауға көмектеседі.

Параллель орындауда облыстарға бөлуге негізделген MPI параллельдігін OpenMP ағындық параллельдігімен біріктіруге болады. Итерациялық әдістер үлкен масштабты параллель талдау үшін стандартты таңдау болып табылады, ал тікелей әдістер қажетті кітапханалар байланыстырылған ортада анағұрлым орнықты шешім керек болғанда қолданылады.

Шешуші мен алдын ала шарттауды таңдау

Алдымен итерациялық немесе тікелей әдістің қайсысын қолданатыныңызды анықтаңыз. Итерациялық әдіс таңдалса, содан кейін алдын ала шарттауды таңдаңыз.

Шешім факторы Ұсынылатын тәсіл
Есеп өлшемі Кіші және орта есептерде тікелей әдістер тұрақты әрі қолдануға жеңіл. Үлкен есептерде итерациялық әдістер жадты тиімдірек пайдаланады.
Матрица симметриясы Симметриялы оң анықталған есептер үшін CG қарастырыңыз. Симметриясыз есептер үшін BiCGSTAB, GMRES, GPBiCG және ұқсас әдістерді қарастырыңыз.
Параллель орта MPI параллельдігінде итерациялық әдісті облыстарға бөлумен біріктіріңіз. OpenMP параллельдігіндегі алдын ала шарттау үшін көптүсті SSOR нұсқасын қарастырыңыз.
Алдын ала шарттау (итерациялық әдіс қолданылғанда) Алдымен әдепкі SSOR-ды қолданып көріңіз, кейін AMG-ні қарастырыңыз. Жинақталу жақсы болса, есептеу жағынан жеңіл SSOR тиімді; күрделі ірі есептер үшін AMG алдын ала шарттауы қолайлы.
Контакт және MPC Контакт немесе көпнүктелі шектеулер бар талдауларда MPC өңдеу тәсілі мен контакт еркіндік дәрежелерін жоюды таңдау жинақталу мен орнықтылыққа әсер етеді.
Сыртқы кітапханалар MUMPS, MKL және AMG тиісті кітапханалар байланыстырылған құрастыруларда қолжетімді.

Стандартты талдауларда жинақталу шегі, ең көп итерация саны және алдын ала шарттаудың диагональдық түзету коэффициенті үшін әдепкі мәндер әдетте жеткілікті. Тек жинақталу баяу болғанда немесе шешім шашырағанда итерациялық әдісті, алдын ала шарттауды, MPC өңдеу тәсілін және контакт еркіндік дәрежелерін жоюды осы ретпен қайта қарастырыңыз. Параметр мәндері мен синтаксисі үшін !SOLVER кілтсөз анықтамалығын қараңыз.

Итерациялық әдістер

Итерациялық әдістер үлкен сирек жүйелерді матрица-вектор көбейтінділері мен алдын ала шарттауды қайталап орындау арқылы шешімді жаңартып шешеді. FrontISTR келесі итерациялық әдістерді ұсынады.

Итерациялық әдіс Әдеттегі қолданылуы Ескертпе
CG Симметриялы оң анықталған есептер Құрылымдық және жылу өткізгіштік талдауларындағы стандартты үміткер.
BiCGSTAB Симметриясыз есептер Контакт немесе байланыс әсерлері күшті симметриясыздық туғызғанда қолданылатын үміткер.
GMRES Симметриясыз есептер Krylov ішкі кеңістігінің өлшемі көрсетіліп қолданылады.
GPBiCG Симметриясыз есептер BiCGSTAB тобының жетілдірілген әдісі ретінде қолданылады.
GMRESR Симметриясыз есептер, күрделі қолданулар GMRES-ті кірістірілген түрде қолданатын нұсқа.
GMRESREN Симметриясыз есептер, күрделі қолданулар GMRESR тобының рекурсивті нұсқасы.

CG матрицаның симметриялы оң анықталған болуын талап етеді. Үйкелісті контакт, симметриясыз шектеулерді өңдеу, байланысқан әсерлер немесе ұқсас факторлар күшті симметриясыздық енгізсе, BiCGSTAB, GMRES, GPBiCG немесе басқа симметриясыз шешушіні қарастырыңыз. GMRES үшін Krylov ішкі кеңістігінің өлшемін ұлғайту жинақталуды жақсартуы мүмкін, бірақ жад шығынын да арттырады.

METHOD2 көрсетілсе, CG шашырағанда немесе бұзылғанда FrontISTR балама итерациялық әдіске ауыса алады. Бұл функция CG негізгі шешуші болатын жағдайларға арналған резервтік жол; балама әдіс негізгі шешушімен бірдей қалған параметрлер мен дерек жолдарын қолданады.

Алдын ала шарттау

Алдын ала шарттау — итерациялық әдістің жинақталуын жақсарту үшін коэффициенттер матрицасын түрлендіру үдерісі және ол тек итерациялық әдіс таңдалғанда қолданылады. Тікелей әдістер алдын ала шарттауды қолданбайды. Бір итерациялық әдістің өзінде алдын ала шарттауды таңдау жинақталуға қажет итерациялар саны мен есептеу уақытын едәуір өзгерте алады.

Алдын ала шарттау Сипаттамасы Әдеттегі қолданылуы
SSOR Стандартты алдын ала шарттау; көптүсті реттеуді қолдайды. Алдымен қолданылатын үміткер; құрылымдық талдауда кең қолданылады.
Диагональдық масштабтау Диагональ элементтерін пайдаланатын жеңіл алдын ала шарттау. Есептеу шығынын азайту керек болғанда.
BILU Блоктық толық емес LU жіктеуі. SSOR-мен жинақталуы қиын есептер үшін үміткер.
AMG Trilinos-ML негізіндегі алгебралық көпторлы әдіс. Үлкен масштабты немесе иерархиялық қате құраушылары басым есептер үшін үміткер.
SAINV Sparse Approximate Inverse. Контакт есептері немесе үлестірілген жад орталарына арналған мамандандырылған алдын ала шарттау нұсқасы.
RIF Robust Incomplete Factorization. Толық емес жіктеудің тағы бір нұсқасы.

SSOR — стандартты таңдау, ал OpenMP параллельдігінде көптүсті реттеу нұсқасы қолданылады. Диагональдық масштабтау жеңіл, бірақ жинақталуды жақсарту әсері есепке тәуелді. BILU блоктық толық емес LU жіктеуі ретінде іске асырылған және еркіндік дәрежелерінің жалпы саны бар матрицаларды да қолдайды. BILU тобында итерациялық әдіс шашырағанда диагональдық түзету коэффициенті SIGMA_DIAG автоматты түрде ұлғайтылып, қайта әрекет жасалатын жол бар; мәнді көрсету жолын кілтсөз анықтамалығынан қараңыз.

AMG Trilinos-ML қолданады, сондықтан құрастыру кезінде ML қосулы болуы керек. Тегістегіштерді, көпторлы циклдерді, ірілендіру тәсілдерін және басқа параметрлерді көрсетуге болады, бірақ нақты мәндер үшін кілтсөз анықтамалығын қараңыз. 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 әдісі Шектеулері бар матрица-вектор көбейтінділерін итерациялық шешуші ішінде өңдейтін ескі әдіс. Ұсынылмайды.
Еркіндік дәрежелерін айқын жою Шектелген еркіндік дәрежелерін жойып, ықшамдалған сызықтық жүйені шешеді. Итерациялық әдістер үшін әдепкі.

Тікелей әдістер үшін айыппұл әдісі әдепкі, ал итерациялық әдістер үшін еркіндік дәрежелерін айқын жою әдепкі болып табылады. MPC-CG — үйлесімділікке арналған ескі нұсқа және жаңа талдауларға ұсынылмайды; әдетте еркіндік дәрежелерін айқын жоюды немесе таңдалған тікелей әдістің әдепкі өңдеуін қолданыңыз.

MPC өңдеу тәсілін !SOLVER ішіндегі MPCMETHOD арқылы анық көрсетуге болады. Әр мәннің мағынасы мен синтаксисін кілтсөз анықтамалығынан қараңыз.

Контакт еркіндік дәрежелерін жою

Контакт еркіндік дәрежелерін жою SLAGRANGE контактісі енгізетін қосымша контакт еркіндік дәрежелерін сызықтық шешушіге бермес бұрын ықшамдайды. Бұл еркіндік дәрежелерін жою итерациялық әдіс өңдейтін сызықтық жүйенің қасиеттерін жақсартуы мүмкін.

Әдепкі автоматты режимде контакт еркіндік дәрежелерін жою итерациялық әдістер үшін қосылады да, тікелей әдістер үшін өшіріледі. Тікелей әдістерде контакт еркіндік дәрежелері бар кеңейтілген жүйені тікелей шешетін жол қарастырылған.

CONTACT_ELIM анық көрсетілсе, тікелей әдіс қолданылғанда да контакт еркіндік дәрежелерін жоюға болады. Енгізу жағындағы контакт түрі, контакт жұбы және контакт алгоритмін таңдау үшін Контакт және енгізу бетіне қараңыз.

Қосымша функциялар

Шешушінің жинақталуы мен өнімділігін зерттеу үшін шарттылық санын бағалау, матрицаны дамптау және журналға жазуды қолдануға болады. Қалыпты талдауда бұл функциялар қажет емес және негізінен жөндеу немесе өнімділікті бағалау үшін қосылады.

Функция Мақсаты Ескертпе
Шарттылық санын бағалау CG және GMRES үшін шарттылық санының көрсеткішін шығарады. LAPACK қосылған құрастыруларда қолжетімді.
Матрицаны дамптау Шешушіге берілетін матрица мен оң жақ бөлікті файлға сақтайды. Matrix Market, CSR және BSR пішімдерін қолдайды.
DUMPEXIT Матрица дампталғаннан кейін талдауды тоқтатады. Сыртқы тексеру үшін тек матрицаны алу қажет болғанда қолданылады.
ITERLOG Итерациялық әдістің жинақталу тарихын шығарады. Қалдықтың өзгерісін тексеру үшін қолданылады.
TIMELOG Шешушінің есептеу уақытын шығарады. VERBOSE егжей-тегжейлі бөліністі шығарады.
STEPLOG Қадам туралы ақпаратты шығарады. Талдау барысын тексеру үшін қолданылады.

Матрицаны дамптау талдау кезінде жиналған коэффициенттер матрицасын сыртқы құралдармен тексеруге мүмкіндік береді. DUMPEXIT қосылғанда матрица мен оң жақ бөлік сақталғаннан кейін талдау тоқтайды. Шарттылық санын бағалау CG және GMRES үшін қолжетімді тәжірибелік функция және жинақталуды диагностикалау үшін қолданылады.

Қатысты тақырыптар

AI-assisted translation May contain errors Official docs Status