1 Definice problému a popis sekvenčního algoritmu

Podobné dokumenty
3. úloha - problém batohu metodami branch & bound, dynamické programování, heuristika s testem

Prohledávání do šířky = algoritmus vlny

Stromy. Strom: souvislý graf bez kružnic využití: počítačová grafika seznam objektů efektivní vyhledávání výpočetní stromy rozhodovací stromy

Stromy, haldy, prioritní fronty

Cvičení předmětu MI-PAR P. Tvrdík, I. Šimeček, M. Šoch

Datové struktury 2: Rozptylovací tabulky

Dynamické programování

Algoritmy výpočetní geometrie

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

ČVUT FEL X36PAA - Problémy a algoritmy. 4. úloha - Experimentální hodnocení algoritmů pro řešení problému batohu

4. Úvod do paralelismu, metody paralelizace

Základy umělé inteligence

Algoritmizace prostorových úloh

Obsah prezentace. Základní pojmy v teorii o grafech Úlohy a prohledávání grafů Hledání nejkratších cest

Základní datové struktury III: Stromy, haldy

Elektronická dokumentace - LATEX. Maticové operace

NP-ÚPLNÉ PROBLÉMY. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Adresní vyhledávání (přímý přístup, zřetězené a otevřené rozptylování, rozptylovací funkce)

Časová a prostorová složitost algoritmů

MATURITNÍ TÉMATA Z MATEMATIKY

Úvod do teorie grafů

V každém kroku se a + b zmenší o min(a, b), tedy vždy alespoň o 1. Jestliže jsme na začátku dostali 2

Kybernetika a umělá inteligence, cvičení 10/11

5. Pro jednu pružinu změřte závislost stupně vazby na vzdálenosti zavěšení pružiny od uložení


ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Třída PTIME a třída NPTIME. NP-úplnost.

Základní komunikační operace

Cvičení MI-PRC I. Šimeček

Algoritmus pro hledání nejkratší cesty orientovaným grafem

Numerická stabilita algoritmů

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

Základy algoritmizace, návrh algoritmu

TGH05 - aplikace DFS, průchod do šířky

Martin Milata, Pokud je alespoň jeden rozměr čokolády sudý (s výjimkou tabulky velikosti 1x2, která už je od

2. úkol MI-PAA. Jan Jůna (junajan)

Aplikace metody BDDC

K OZA SE PASE NA POLOVINĚ ZAHRADY Zadání úlohy

Výroková a predikátová logika - II

Vzdělávací oblast: Matematika a její aplikace Vzdělávací obor: Matematický kroužek pro nadané žáky ročník 9.

Přerušovací systém s prioritním řetězem

Static Load Balancing Applied to Time Dependent Mechanical Problems

Základní škola Moravský Beroun, okres Olomouc

5 Rekurze a zásobník. Rekurzivní volání metody

Hledání kořenů rovnic jedné reálné proměnné metoda sečen Michal Čihák 23. října 2012

Algoritmizace prostorových úloh

Zpráva o průběhu přijímacího řízení na vysokých školách dle Vyhlášky MŠMT č. 343/2002 a její změně 276/2004 Sb.

Matematika. 6. ročník. Číslo a proměnná. desetinná čísla (využití LEGO EV3) číselný výraz. zaokrouhlování desetinných čísel. (využití LEGO EV3)

Algoritmizace prostorových úloh

Dynamické datové struktury I.

Komplexní čísla, Kombinatorika, pravděpodobnost a statistika, Posloupnosti a řady

Vyučovací předmět: Matematika Ročník: 7.

Téma: Arkanoid. X36SOJ Strojově orientované jazyky Semestrální práce. Vypracoval: Marek Handl Datum: červen 2006

SEMESTRÁLNÍ PRÁCE. Leptání plasmou. Ing. Pavel Bouchalík

8 Přednáška z

Gymnázium Jiřího Ortena, Kutná Hora

4EK311 Operační výzkum. 5. Teorie grafů

Základní škola Náchod Plhov: ŠVP Klíče k životu

Semestrální práce z předmětu Pravděpodobnost, statistika a teorie informace

IB109 Návrh a implementace paralelních systémů. Analytický model paralelních programů. RNDr. Jiří Barnat, Ph.D.

Státnice odborné č. 20

TGH05 - aplikace DFS, průchod do šířky

Mgr. Ladislav Zemánek Maturitní okruhy Matematika Obor reálných čísel

TEMATICKÝ PLÁN. září říjen

Kapitola 2: Analýza lineárních obvodů metodou admitanční matice

13 Měření na sériovém rezonančním obvodu

1 Nejkratší cesta grafem

Stromy. Karel Richta a kol. Katedra počítačů Fakulta elektrotechnická České vysoké učení technické v Praze Karel Richta a kol.

3. Vypočítejte chybu, které se dopouštíte idealizací reálného kyvadla v rámci modelu kyvadla matematického.

Pokyny k hodnocení MATEMATIKA

Praktické využití Mathematica CalcCenter. Ing. Petr Kubín, Ph.D. Katedra elektroenergetiky, ČVUT v Praze, FEL

Složitost Filip Hlásek

Předpokládané znalosti žáka 1. stupeň:

Voronoiův diagram. RNDr. Petra Surynková, Ph.D. Univerzita Karlova v Praze Matematicko-fyzikální fakulta

Automatická detekce anomálií při geofyzikálním průzkumu. Lenka Kosková Třísková NTI TUL Doktorandský seminář,

10. Složitost a výkon

Rekurzivní algoritmy

Vyučovací předmět: CVIČENÍ Z MATEMATIKY. A. Charakteristika vyučovacího předmětu.

4. NP-úplné (NPC) a NP-těžké (NPH) problémy

Výroková a predikátová logika - III

Elegantní algoritmus pro konstrukci sufixových polí

Menu =Prijimace

Distribuované algoritmy - přehled. Přednášky z Distribuovaných systémů Ing. Jiří Ledvina, CSc.

Software pro vzdálenou laboratoř

Datový typ prioritní fronta Semestrální práce z předmětu 36PT

Soustavy linea rnı ch rovnic

Iterační výpočty. Dokumentace k projektu č. 2 do IZP. 24. listopadu 2004

Pokročilé haldy. prof. Ing. Pavel Tvrdík CSc. Fakulta informačních technologií České vysoké učení technické v Praze c Pavel Tvrdík, 2010

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Řešení: PŘENESVĚŽ (N, A, B, C) = přenes N disků z A na B pomocí C

6. Tahy / Kostry / Nejkratší cesty

Užití systému Matlab při optimalizaci intenzity tepelného záření na povrchu formy

Vyvažování a rotace v BVS, všude se předpokládá AVL strom

= - rovnost dvou výrazů, za x můžeme dosazovat různá čísla, tím měníme

Dijkstrův algoritmus

NPRG030 Programování I 3/2 Z --- NPRG031 Programování II --- 2/2 Z, Zk

Tabulkový procesor. Základní rysy

Úvod do informatiky. Miroslav Kolařík

ANALYTICKÁ GEOMETRIE LINEÁRNÍCH ÚTVARŮ V ROVINĚ

ALGORITMIZACE 2010/03 STROMY, BINÁRNÍ STROMY VZTAH STROMŮ A REKURZE ZÁSOBNÍK IMPLEMENTUJE REKURZI PROHLEDÁVÁNÍ S NÁVRATEM (BACKTRACK)

Transkript:

Semestrální projekt X36PAR 2008/2009: Paralelní algoritmus pro řešení problému Marek Handl. ročník, obor výpočetní technika K336 FEL ČVUT, Karlovo nám. 13, 121 3 Praha 2 May 17, 2009 1 Definice problému a popis sekvenčního algoritmu MOT - Uspořádání elektromagnetů v motoru Vstupní data n = přirozené číslo, n >= 1 M[1..n] = množina n přirozených čísel představující indukčnosti elektromagnetů P [1..n] = množina n úhlů v polárních souřadnicích elektromagnetů na jednotkové kružnici (v radiánech) Zadání Naleznete usporadani elektromagnetu v motoru, jehoz stator tvori jednotkovou kruznici osazenou magnety na souradnicich p 1,..,p n s indukci m 1,..,m n tak, aby osa jeho rotoru co nejmene hazela. Uvedeny problem muzeme vyjadrit matematicky jako nalezeni permutaci poradi hmotnych bodu (vsech n bodu rozmistenych na jednotkove kruznici na pozicich P) tak, aby vychylka teziste od pocatku souradneho systemu (0,0) byla minimalni. Vzorec pro polohu teziste T(x,y): x = n i=1 m i x i y = n i=1 m i y i Výstup Přiřazení hodnot indukčnosti k jednotlivým úhlům tak, aby osa byla co nejblíže středu. Řešení Body, kam lze umístit magnety jsou pevně dány - formou úhlů. Hledají se tedy permutace množiny indukčností. Metodou hrubé síly jsou zkoumány všechny permutace a najde se ta s nejlepším ohodnocením - vzdálenost indukčního těžiště je minimální. Program používá vlastní zásobník, který simuluje rekurzi. Výpočet vytváří a prochází strom, což představuje tvorbu permutací. Strom se prochází do hloubky. Kořen má stupeň roven počtu elektromagnetů, na každé další hladině se stupeň o jedna snižuje. Strom obsahuje dvě hladiny s uzly stupně jedna. V každém kroku algoritmu se vybere jeden uzel z vrcholu zásobníku. Pokud se jedná o uzel z nejnižší hladiny, provede se výpočet ohodnocení, jelikož permutace je již hotová, a výsledek se porovná s nejlepším dosavadním řešením. V opačném případě se na zásobník umístí následníci uzlu. Počet permutací a tedy i počet listů stromu je n!. Počet stavů a tedy i počet všech uzlů 1

Počet magnetů Naměřený čas [min] 9 0,017 10 0,217 11 2,00 12 32,283 Table 1: Naměřené časy sekvenčního programu stromu je n! n 1 k=0 k!, což se již pro malá n blíží následujícímu vztahu. pocetstavu = e n! (1) Vzhledem k faktoriální složitosti lze volit pouze malý rozsah počtu magnetů. V následující tabulce jsou uvedeny naměřené časy výpočtu sekvenčního řešení na svazku Star. Program se spouští s jedním parametrem udávajícím vstupní soubor. Je možné využít program také k vygenerování pseudonáhodného vstupního souboru, syntaxe: program soubor -g pocet magnetu. Program vypisuje výsledek na standardní výstup a také vytváří html soubor, kde je výsledek jednoduše vizualizován. 2 Popis paralelního algoritmu a jeho implementace v MPI Základní výpočet expanze uzlu je v paralelním řešení shodný s uvedeným sekvenčním algoritmem. Navíc ale přináší možnost dělení zásobníku a komunikaci mezi procesy. K dělení zásobníku byla použita technika řezání u dna. Proces si zjistí kolik mu přišlo žádostí o práci (počet označme r). Poté vypočte kolik práce reprezentuje obsah jeho zásobníku - výpočtem velikosti podstromů jednotlivých uzlů na zásobníku (viz rovnice 1). Objem práce vydělí číslem r + 1 a poté postupně odebírá uzly ze dna zásobníku, dokud se nedosáhne požadované velikosti. Z odebíraných uzlů se vytváří nový zásobník a ten se poté posílá procesu, který žádal o práci. K dělení nedochází pokud zásobník představuje již jen málo práce - udáno konstantou ve zdrojovém kódu, aktuálně je hodnota 10000 stavů. Pro přenos je zásobník kódován do human-readable formy. Jedná se o string skládající se z celých čísel oddělených mezerami. Nejprve je uveden počet uzlů v zásobníku a pak následují jednotlivé uzly. Každý uzel se převede na permutaci indukčností, přesněji na indexy do pole indukčností. Hledání dárce je řešeno individuálním čítačem každého procesu. Ukončení výpočtu se provádí pomocí algoritmu pro distribuované ukončení výpočtu (ADUV), které využívá dvojbarevného peška. Základní popis běhu programu. Root proces začne s výpočtem hned od začátku. Ostatní procesy pošlou root procesu žádost o práci. Jakmile má root proces alespoň n uzlů na zásobníku, rozdělí ho a odešle žadatelům. Pak počítají všechny procesy stejně - provádějí expanze stavů a po každých 1000 (číslo je nastavitelné pomocí konstanty ve zdrojovém kódu) iteracích kontrolují, jestli jim nepřišly nějaké zprávy. Existují tyto druhy zpráv - žádost o práci, práce od jiného procesu, neposkytnutí práce od jiného procesu, pešek a ukončení výpočtu. Proces žádá o práci, pokud již nemá další stavy na zásobníku. Pokud mu přijde práce od jiného procesu, uloží ji na svůj zásobník a začne znovu se standardní 2

Sekvenční čas: 2, min Počet procesů 2 4 8 12 24 Naměřené časy v minutách InfiniBand 1,979 0,972 0,493 0,329 0,169 Ethernet 1,99 0,978 0,492 0,378 0,216 Zrychlení InfiniBand 1,263 2,72,071 7,99 14,793 Ethernet 1,23 2,6,081 6,614 11,74 Table 2: Měření 1-11 magnetů Sekvenční čas: 2, min Počet procesů 2 4 8 12 24 Naměřené časy v minutách InfiniBand 1,979 0,97 0,488 0,328 0,168 Ethernet 1,966 0,978 0,490 0,329 0,168 Zrychlení InfiniBand 1,263 2,64,123 7,622 14,881 Ethernet 1,272 2,6,102 7,99 14,881 Table 3: Měření 2-11 magnetů expanzí. Pokud obdrží zprávu se zamítnutím poskytnutí práce, ptá se dalšího procesu, ale každého procesu se ptá v řadě nejvýše jednou. Pokud root proces obdrží v řadě zamítnutí od každého procesu (aniž by mezitím obdržel práci), vyšle peška. Po zpracování všech stavů (a korektním oběhu peška), vyšle root proces všem ostatním zprávu o ukončení výpočtu. Poté se nalezne nejlepší řešení pomocí funkce MPI Reduce. Pokud nejlepší řešení nevlastní root proces, požádá o něj a bude mu zasláno. Pak již dojde jen k výpisu řešení a program končí. Program se spouští s jedním parametrem udávajícím vstupní soubor. Pro paralelní výpočet na svazku Star je nutno použít Sun Grid Engine. Každý proces má svůj výstupní soubor s názvem C processi, kde C je počet procesů použitých k výpočtu a I je číslo procesu z pohledu MPI. Co všechno se zapisuje do výstupních souborů, lze nastavit pomocí konstant ve zdrojovém kódu. Standardně je také vytvořen jeden html soubor s vizualizací řešení a popisem instance. 3 Naměřené výsledky a vyhodnocení Výsledky měření jsou uvedeny v tabulkách 2, 3 a 4. Jsou vždy uvedeny naměřené časy řešení instance a vypočtené hodnoty paralelního zrychlení. Zrychlení je také graficky znázorněno v grafech 1, 2 a 3. Z důvodu faktoriální složitosti jsou rozumně měřitelné jen instance velikosti 11 a 12 magnetů. 3.1 Vyhodnocení V prvním měření byl znatelný rozdíl mezi časy naměřenými s použitím sítě InfiniBand a Ethernet. V dalších měřeních je tento rozdíl již nepatrný. I z povahy problému lze usu- 3

2 InfiniBand Ethernet Linear 20 1 zrychleni 10 0 0 10 1 20 2 pocet procesu Figure 1: Měření 1 - paralelní zrychlení Sekvenční čas: 32,283 min Počet procesů 2 4 8 12 24 Naměřené časy v minutách InfiniBand 2,163 12,473 6,247 4,177 2,093 Ethernet 24,96 12,63 6,27 4,163 2,091 Zrychlení InfiniBand 1,283 2,88,168 7,729 1,424 Ethernet 1,293 2,70,14 7,7 1,439 Table 4: Měření 3-12 magnetů zovat, že rozdíl mezi těmito sítěmi by měl být minimální, protože ke komunikaci dochází málo a přenášejí se jen malá data - typicky jednotky uzlů na zásobníku. Výsledky prvního měření s použitím Ethernetu tedy byly pravděpodobně ovlivněny momentálním stavem systému - vytížení procesorů a komunikačních sítí způsobené událostmi mimo rozsah testovaného programu. Zrychlení je až na konstantu lineární. Tato konstanta je přibližně rovna 1, a bylo vypozorováno, že je způsobena větší složitostí a méně efektivním kódem paralelního řešení. Pokud se srovná čas dosažený sekvenčním řešením a čas paralelního řešení běžící jen na jednom procesu, dospějeme ke stejné hodnotě konstanty. Hodnotu konstanty by bylo pravděpodobně možné snížit optimalizací kódu a překladu. 3.2 Závěr Zadaný problém uspořádání elektromotoru lze dobře paralelizovat, jelikož stavový prostor je pravidelný a lze na něj pohlížet jako na strom. Neexistují tu tedy cykly a výpočty jednotlivých procesů jsou na sobě nezávislé. Z těchto důvodů a také díky faktoriální složitosti je problém dobře škálovatelný. 4

2 InfiniBand Ethernet Linear 20 1 zrychleni 10 0 0 10 1 20 2 pocet procesu Figure 2: Měření 2 - paralelní zrychlení Použité algoritmy dělení zásobníku a hledání dárce jsou jednoduché, ale funkční a pro daný problém postačující. Komunikace mezi procesy probíhá pomocí krátkých zpráv, jelikož je vždy potřeba přenášet jen malé množství dat. Ideální stav nastává pokud se počet procesorů rovná počtu magnetů. V tomto případě root proces provede jednu expanzi a může všem ostatním procesům rozeslat po jednom uzlu. Každý proces poté prohledává stejně velké stavový prostor. Za předpokladu, že procesy běží stejně rychle, skončí všechny ve stejnou chvíli a po oběhnutí peška již není třeba žádné další komunikace. V obecném případě samozřejmě procesy skončí v jiný čas a je možné, že budou žádat a dostávat práci od jiných procesů. Jakákoli taková akce však snižuje efektivitu. Stupeň paralelizmu se empiricky nepodařilo zjistit. Daný problém díky své pravidelnosti a předvídatelnosti výpočtu lze velmi dobře paralelizovat. Lze předpokládat, že stupeň paralelizmu je i pro použitá n velmi vysoký, určitě alespoň v řádu stovek. Nicméně k měření bylo možno použít jen 24 procesů. Pro stanovení meze, kdy rozklad výpočtu na více procesů přestává být výhodný je nutná znalost systému. Je třeba mít změřeno rychlost provádění výpočtu a rychlost přenosové sítě. Komunikace je obecně časově náročná operace, a proto se nevyplatí posílat malé množství práce. Program byl pro potřeby měření odhadem nastaven, aby posílal práci jen pokud představuje více jak 10000 stavů a toto nastavení se osvědčilo. 4 Literatura Paralelní systémy a algoritmy, Prof. Ing. Pavel Tvrdík, CSc., skripta, ČVUT 2006 Stránky předmětu X36PAR

2 InfiniBand Ethernet Linear 20 1 zrychleni 10 0 0 10 1 20 2 pocet procesu Figure 3: Měření 3 - paralelní zrychlení 6