90 likes | 180 Views
Paralelní algoritmy ve zpracování dat. Výzkumný úkol:. Bc. Jan Hofta 2006 - 2007. cíle práce: získat základní přehled v oblastech genetických algoritmů, neuronových sítí a paralelizace seznámit se s projektem NNSU provést paralelizaci části kódu NNSU části práce:
E N D
Paralelní algoritmy ve zpracování dat Výzkumný úkol: Bc. Jan Hofta 2006 - 2007
cíle práce: • získat základní přehled v oblastech genetických algoritmů, neuronových sítí a paralelizace • seznámit se s projektem NNSU • provést paralelizaci části kódu NNSU • části práce: • 1.kapitola: Genetické algoritmy • 2.kapitola: Neuronové sítě • 3.kapitola: Projekt NNSU a jeho paralelizace 2/9
vycházejí z Darwinovy evoluční teorie, v matematice představují silný optimalizační nástroj • hrubá idea: • máme množinu (generaci) přípustných řešení úlohy (jedinců), každý jedinec je ohodnocený hodnotou fitness (jak moc je dobrým řešením úlohy) • tvoříme novou generaci, jedinci v ní vznikají: • křížením jedinců z minulé generace s vysokou fitness • náhodnými změnami těchto jedinců (mutacemi) • s přibývajícími generacemi průměrná hodnota fitness roste 3/9
vycházejí z nervových soustav živočichů, široké uplatnění, např. jako separátor množin • sestávají z výpočetních jednotek (neuronů) Váhy jednotlivých vstupů Ano Vážená Σ vstupů Vstupy Ne Perceptron Vícevrstvá síť 4/9
projekt UI AV ČR, řízený panem Ing. F. Haklem, CSc. s účastí mnoha doktorandů z naší katedry • univerzální separační nástroj, nejvhodnější neuronová síť k separaci se hledá pomocí genetických algoritmů • aplikace např. při detekci Higgsova bosonu v CERNu • nastavování a ohodnocování neuronových sítí, tedy jedinců v GA, výpočetně náročné => prostor pro paralelizaci 5/9
celý program se skládá z pluginů, tedy modulů s částmi projektu • plugin GA od Ing. R. Kalouse zajišťuje fungování genetických algoritmů • je v něm vyřešeno: • kódování neuronových sítí pro GA • jejich ohodnocování • operace GA (výběr, křížení, mutace) • snaha vytvořit jeho paralelní verzi (použití jeho metod při paralelním nastavování a ohodnocování neuronových sítí) 6/9
univerzální komunikační rozhraní pro paralelní programy s distribuovanou pamětí, od roku 1992 • v současnosti standardy MPI 1.1 (častěji používané) a MPI 2.1 (více funkcí) • spouští program ve více kopiích, každou ovládá jeden proces, ty si spolu navzájem vyměňují zprávy • standard nezávislý na programovacím jazyce, použito OpenMPI pro C/C++ 7/9
MpopMem SpopMem MdtbFit SdtbFit Slave 1 MdtbProt Učící a testovací data Učící a test. data SpopMem Archiv m SpopMem SdtbFit SdtbFit Slave 2 Archiv f Učící a testovací data Slave struktury masteru Master • jeden proces master, ostatní slavy • master v každé generaci pošle jedince slavům k naučení a ohodnocení, ti mu vrací jejich fitness 8/9