HPC

warning: Creating default object from empty value in /local/home/oberhuber/public_html/modules/i18n/i18ntaxonomy/i18ntaxonomy.pages.inc on line 40.
High Performance Computing

Klient pro uživatelské prostředí

Aby byly moje šachové programy lehce uživatelsky přístupné, upravil jsem je jako klienta k rozšířenému šachovému uživatelskému prostředí Winboard (to je verze pro windows; verze pro linux a unix se jmenuje Xboard). Úspěch totoho uživatelského prostředí jistě spočívá v dobré dokumentaci a jednoduchém způsobu komunikace mezi klientem a serverem. Server (uživatelské prostředí) si klienta (motor) spustí jako child process a komunikují spolu přes standardní vstup a výstup. Vlastní protokol komunikace je už poněkud složitější.

Možnosti zlepšení

Vylepšení pro sekvenční verzi

Paralelní šachový program

Efektivita větší než jedna

Při paralelizaci algoritmů se zavádí veličina známá jako efektivita. Ta teoreticky nemůže být větší než jedna, ale v praxi je možno takovéto hodnoty dosáhnout. Je v tom ovšem háček. Tento fenomén se vyskytuje zjednodušeně řečeno vždy při prohledávání stavového stromu do hloubky.

Algoritmus alfa-beta

Algoritmus alfa-beta umožňuje zrychlit použití minimaxu. V určitých fázích výpočtu jsem totiž schopen některé větve stromu úplně vynechat, aniž by to ovlivnilo výsledek výpočtu. Myšlenka alfa-bety je následující: posloupnost tahů (resp. cestu stromem odpovídající těmto tahům)
můžu jistě zavrhnout, když vím, že ohodnocení daného uzlu nebude lepší než ohodnocení jiné již známé varianty. V tom případě, i když celý podstrom ještě není kompletně prohledán, můžu hledání na daném podstromu ukončit a přesunout se ve stavovém stromu dál.

Sekvenční šachový program

Cílem šachového programu je pro danou šachovou pozici najít nejlepší tah pro stranu, která je právě na tahu. Šachové programy, tak jako mnoho jiných algoritmů, procházejí stavový strom úlohy.

V tomto případě jsou uzly stavového stromu možné pozice pro provedení určité posloupnosti tahů (kořen stromu je pak výchozí pozice), větve stromu jsou tahy, kterými přecházím od jednoho uzlu (pozice) k druhému. Šachové programy používají k prohledání stavového stromu
kombinaci dvou základních algoritmů – minimaxu a alfabety.

Paralelní šachy

Úkolem projektu bylo zparalelizovat šachový program. Nejprve ve stručnosti diskutuji algoritmus sekvenčního šachového programu, následně nastíním jeden velmi zajímavý problém týkající se paralelizace. Dále popíšu, jak jsem přesně paralelizaci implementoval, uvedu výsledky a
naznačím možná vylepšení pro paralelní i sekvenční verzi. Ke konci krátce popíšu, jak jsem paralelní i sekvenční verzi upravil na klienta pro jedno známé šachové uživatelské prostředí.

Autor: Václav Vávra
Rok: 2008

Jak vyvíjet pro Grid?

Webové služby jako prostředek pro vývoj

Jakmile se zaměříme na vývoj softwaru pro Grid, napadne nás hned několik otázek:

  • Jak vyřešit tak obrovskou heterogenitu prostředí ?
  • Jakým způsobem vyřešit komunikaci mezi jednotlivými komponentami gridu ?
  • Jak vyřešit problém komunikace mezi komponentami napsanými v jiných vývojových jazycích ?
  • Bude každá komponenta mít svůj vlastní protokol ? (počet protokolů bude nebezpečně vzrůstat bez existence jakékoliv standardizace)

Produkční gridy

K dnešnímu dni existuje několik gridů, které běží v produkčním prostředí. Tato stránka obsahuje odkazy a některé informace o těchto produkčních gridech.

EGEE (Enabling Grids for E-sciencE)

EGEE je někdy přezdívána jako Panevropská gridová platforma, jež je financována Evropskou unií pro vybudování výpočetní kapacity pro vědecké a akademické účely. Sdružuje cca 200 institucí z více než 39-ti zemí. Aktuální stav je nyní:

  • 30 tisíc CPU
  • diskový prostor 5PB
  • datový tok 1,5 GB/s

Architektura

Vrstvy gridu

Architektura gridu je velmi komplexní věc a je proto často popisována pomocí vrstev (layers), kde každá z nich má svoji specifickou funkci. Vyšší vrstvy jsou obecně uživatelsky zaměřené naproti tomu nižší vrstvy jsou zaměřeny na počítače, sítě a specialně zařízení (tedy hardwarově zaměřené).

Jednotlivé vrstvy gridu

Úvod

Definice Gridu

Výpočetní grid je hardwarová a softwarová infrastruktura, která poskytuje spolehlivý, standardizovaný, všudypřítomný a levný přístup ke špičkovým výpočetním službám.

(I. Foster, C. Kesselman. - The Grid: Blueprint for a New Computing Infrastructure, 1999)

V technickém slova smyslu je to rozsáhlý distribuovaný systém organizačně samostatných elementů, kterými mohou být individuální počítače (paměti, CPU, pevné disky) a informační systémy vzájemně propojeny počítačovou sítí.

Syndikovat obsah