High-Performance Computing pro každého?

Technologie |

Každý, kdo v této době kupuje nový počítač, je postaven před volbu, zda má pořídit levnější počítač s jedním procesorem, nebo raději investovat do počítače se dvěma a více procesorovými jádry. S tím, jak se tyto počítače stávají dostupnější, se stále více uživatelů rozhoduje pro multiprocesorové systémy. Jsou ale současné aplikace schopny plně využít výkonu těchto počítačů?




Každý, kdo v této době kupuje nový počítač, je postaven před volbu, zda má pořídit levnější počítač s jedním procesorem, nebo raději investovat do počítače se dvěma a více procesorovými jádry. S tím, jak se tyto počítače stávají dostupnější, se stále více uživatelů rozhoduje pro multiprocesorové systémy. Jsou ale současné aplikace schopny plně využít výkonu těchto počítačů?

Moderní operační systémy dokáží bez problémů rozdělit výpočetní výkon počítače mezi několik současně běžících aplikací. To je výhodné, když na jednom počítači chceme dělat několik spolu nesouvisejících činností. V oblasti domácího využití jistě oceníme, když například můžeme zároveň vytvářet domácí video a brouzdat po Internetu nebo dělat bez zjevného zpomalení i jiné, náročnější činnosti. Takovéto využití počítačů je již dnes běžné.

V oblasti profesionálního využití, technických a inženýrských výpočtů však často potřebujeme co nejvyšší výpočetní výkon při řešení jednoho úkolu. To znamená, že jedna aplikace musí být schopna využít více procesorů najednou. Kromě snazšího úkolu rozdělit aplikaci na několik vláken zajišťujících výpočetní, grafické a vstupně/výstupní operace, je často žádoucí realizace skutečně paralelně pracujících algoritmů. Programů, které to umí pro uživatele transparentním způsobem, není mnoho. Dosud převládá nutnost tvorby specializovaných aplikací určených pro řešení konkrétního úkolu. To klade poměrně vysoké nároky na programátorskou zdatnost řešitelů, kteří musí sami navrhnout architekturu paralelní aplikace a s využitím některého z dostupných rozvrhovačů naprogramovat způsob komunikace mezi procesy běžícími paralelně na jednotlivých procesorech. Paralelní výpočty jsou proto většinou mimo praktické možnosti “běžného inženýra” řešícího určitý technický problém.

Situace se ale rychle mění. Ve světě existuje několik projektů, které mají za cíl vývoj paralelních verzí osvědčených numerických knihoven (jako příklad uveďme knihovny ScaLAPACK, PBLAS, paralelní řešiče systémů rovnic apod.). To umožňuje výrobcům komerčních programů tvorbu paralelních aplikací, které od uživatelů nevyžadují (až na konfiguraci paralelního prostředí) téměř žádné další kroky nad rámec toho, na co byli zvyklí při své práci s jednoprocesorovými systémy. Takovéto paralelní aplikace mohou využívat buď multiprocesorové pracovní stanice, nebo clustery počítačů propojených v síti.

K programům, které již nyní umí využívat paralelní výpočty, patří i nástroje MATLAB a Comsol Multiphysics.

Comsol Multiphysics, nástroj pro řešení inženýrských problémů metodou konečných prvků, využívá paralelní řešič PARDISO. To nyní umožňuje řešení úloh, které dříve šly řešit pouze obtížně, nebo za určitých zjednodušujících předpokladů. Paralelní zpracování spolu s adresovacími možnostmi 64bitových operačních systémů umožňuje práci s mnohem rozsáhlejšími soustavami rovnic než dosud.

V MATLABu existuje hned několik úrovní paralelizace algoritmů:

  • V první z nich lze využít nově dodávané základní matematické knihovny s podporou více jader. K využití této vlastnosti stačí pouze základní MATLAB, paralelizace je prováděna automaticky a pro uživatele zcela transparentním způsobem.
  • Druhou úrovní implementace paralelních algoritmů je Distributed Computing Toolbox (DCT). Ten v nové verzi umožňuje běh až čtyř paralelních procesů na jednom počítači bez nutnosti licence produktu MATLAB Distributed Computing Engine.
  • Třetí úrovní implementace paralelních algoritmů je společné využití Distributed Computing Toolboxu a MATLAB Distributed Computing Engine, které přináší možnost běhu paralelních procesů nejen na jednom počítači s více procesory, ale také v síti počítačů, s maximálním počtem 256 procesorů.

V MATLABu je tedy možné velmi jednoduše využít paralelních možností systému, aniž by s tím člověk měl jakékoliv zkušenosti. S využitím produktu Distributed Computing Toolbox je možné použít některé jednoduché principy paralelizace pro řešení rozsáhlých výpočetních úloh, pokročilý uživatel má navíc k dispozici kompletní prostředí pro vývoj vlastních paralelních aplikací. Některé zajímavé přístupy k využití paralelních možností MATLABu (distribuovaná pole, paralelní FOR smyčky, …) jsou popsány v článku Paralelní výpočty v MATLABu

Společnost HUMUSOFT s cílem usnadnění paralelních výpočtů s použitím těchto nástrojů vyvinula řadu výkonných multiprocesorových pracovních stanic HEAVYHORSE. Oproti clusterům počítačů mají multiprocesorové stanice několik výhod – pracují v režimu sdílené paměti, rychlost komunikace mezi výpočetními uzly (procesorovými jádry) je nejvyšší možná, konfigurace a správa takového systému je mnohem jednodušší, a to vše za příznivější cenu.

Pracovní stanice HEAVYHORSE jsou založené na procesorech AMD Opteron, dodávají se na přání zákazníka s některým z 64bitových operačních systémů, popřípadě i s nainstalovaným programovým vybavením MATLAB nebo Comsol Multiphysics. Pro práci s těmito programovými balíky jsou stanice zkoušeny a optimalizovány (výběr grafických karet a dalších HW a SW komponent), využití však jistě najdou i pro práci s dalšími profesionálními programovými balíky.

Další informace o pracovních stanicích HeavyHorse

Příklad využití paralelního řešiče PARDISO v programu Comsol Multiphysics pro co nejpřesnější výpočet turbulentního proudění kapaliny s vysokým Reynoldsovým číslem v ohybu potrubí.


Diagram paralelizace algoritmů v programu MATLAB


Pracovní stanice HEAVYHORSE








Související články




Komentáře

27.07.2014, 06:46

.... áëàãîäàðåí!!...

Napsat vlastní komentář

Pro přidání příspěvku do diskuze se prosím přihlašte v pravém horním rohu, nebo se prosím nejprve registrujte.