Paralelní iterační řešič ISOL
Stáhnout kompletní softwarový balík ISOL 1.45a (TAR.GZ), součást konečněprvkového systému GEM. Řešič ISOL a přidružené programy jsou volný software distribuovaný podle ustanovení Obecné veřejné licence GNU, vydávané Free Software Foundation.
Popis
Kód ISOL je určen pro řešení rozsáhlých lineárních systémů vznikajících MKP analýzou 3D okrajových úloh pružnosti. Řešič pracuje podle algoritmu metody sdružených gradientů posíleného aditivními Schwarzovými předpodmiňovači. Oblast je rozložena ve směru Z na několik nepřekrývajících se podoblastí, které jsou potom rozšířeny tak, že sousední podoblasti mají obvykle minimální překrytí.
Paralelní implemetnace řešiče zahrnuje několik souběžných procesů odpovídajících podúlohám. Každý proces pracuje s vlastní porcí dat podle algoritmu MSG. S ohledem na speciální jednorozměrné dělení oblasti jsou komunikační nároky paralelního řešiče docela malé, protože v iterační fázi komunikuje každý proces pouze lokálně se svými sousedy a to především když jsou vykonávány operace násobení matice vektorem a předpodmínění. Množství přenesených dat je malé a proporcionální rozsahu překrytí podoblastí. Proto má paralelizace velmi dobré předpoklady být účinná a škálovatelná.
Předpodmínění je dáno jednoúrovňovou aditivní Schwarzovou metodou. Podúlohy jsou řešeny nepřesně, když jsou lokální matice nahrazeny svými neúplnými faktorizacemi. Ale účinnost předpodmiňovače klesá s rostoucím počtem podoblastí a je nezbytné do předpodmiňovače přidat korekci z hrubé sítě. Takové vylepšení vytváří dvouúrovňovou Schwarzovu metodu, která zajišťuje numerickou škálovatelnost. Globální úlohu na hrubé síti je možné vyrobit separátně nebo numericky agregacemi. Podrobnější informace o programu lze nalézt v dokumentaci knihovny paralelních řešičů ELPAR (PDF en).
Program je napsaný v jazyce Fortran 77. Komunikace paralelních procesů je realizována předáváním zpráv na zaákladě standardu MPI, který je podporován a obecně dostupný na všech paralelních architekturách včetně systémů s distribuovanou pamětí. Kód byl testován na několika paralelních počítačích, např. symetrických multiprocesorech Natan a Simba, nebo klastrech Thea a Ra.