Soudruhům v Číně už ale přestává stačit, že jejich nejvýkonnější superpočítač je více než 5x výkonnější než nejvýkonnější počítač USA a tak si do následující pětiletky do roku 2020 naplánovali, že překonají svůj výkon z předchozí pětiletky z roku 2010 rovnou 200 krát.
Tento plánovaný drobek má zvládnout exaflopy. Pro ty, kteří nekoukají celý život do počítače, by stálo za to objasnit, že FLOP - floating point operation (per sec), je takový fetiš, kterým si superpočítačové velmoci poměřují, která ho má většího. Je to poněkud přezíravé k mikropočítačům, které nemají instrukce k počítání s desetinnými čísly, kde raději rychlost uvádíme v MIPS (mega instructions per sec). Rozdíl je pouze ve specializaci procesorů, co do výkonu vyjadřuje MIPS zhruba totéž, zo mega FLOPs. Teda až na tu strašidelnou předponu exa, která značí milion milionů mega FLOPs. Pokud vás zajímá srovnání, můžete si změřit výkon vašeho stroje například programem Sandra (ke stažení zde).
Současný nejrychlejší čínský superpočítač mající přes deset milionů jader má být překonán desetinásobně. Leckterého scifistu pak napadne, že Číňané snad staví terminátora. Podíváme-li se na věc z pohledu čisté kvantity, pak lidský mozek má prý něco kolem 100 miliard neuronů. Současné procesory obyčejných počítačů mají jednotky miliard tranzistorů. Zatímco tranzistory v procesorech fungují hlavně jako spínače mající funkcí blízko k bipolárním neuronům s jedním axonem a jedním dendritem, v kortikálních neuronech tvořívají desítky tisíc synapsí, což posouvá složitost o čtyři řády výše. Současný čínský superpočítač s 40.960 uzly, každý o 5,4 miliardě tranzistorů už ale obsahuje řádově téměř tolik tranzistorových spojení, kolik je synapsí v lidském mozku.
Jednou z hlavních překážek k terminátorovi je odvod tepla: výkon dnešních superpočítačů je řádově 10.000 žehliček (10 kž), což je podstatně více než u člověka (100 mž) a hlavní důvod, proč jsou superpočítače ve specializovaných barácích a ne v krabici od bot (velikostně srovnatelná s lidskou hlavou).
Nakonec ty FLOPy nejsou až tak určující pro myšlenkové operace: dnes jsou výkony superpočítačů a nejlepších šachistů zhruba srovnatelné, přestože člověk provádí něco kolem 1 FLOP za pár sekund, a to ještě jak kdy. Náš mozek nemá a nepotřebuje tyto specializované instrukce.
Šachové stroje vyhodnocují tisíce až miliony tahů za sekundu. Člověk vyhodnotí nejvýše 10 tahů za sekundu. Počítačové vyhodnocení tahu je sice na nižší úrovni, ale hrubou silou se dokázaly člověku vyrovnat.
Přestože tedy v Číně velmi pravděpodobně neplánují konstrukci terminátora, je jen otázkou času, než počítače člověka přechytračí. Zatím přes padesát let podivuhodně přesně platí Moorův zákon: pravidlo, že každých 18 měsíců se počet tranzistorů integrovatelných do čipu zdvojnásobuje. Tisícinásobného navýšení tedy dosahujeme zhruba každých 15 let. Kolem roku 2035 tedy nejspíš budeme mít stroje s tisícem tranzistorů na každou synapsi v lidském mozku. Bude to jako hrubá síla stačit na porážku lidského myšlení? Možná. Už dnes si počítače troufají na blafování: tento týden superpočítač Bridges vyzývá čtyři profesionální hráče na poker.
Turnaj umělé a lidské inteligence začal 11. ledna a 19 dnů bude ještě pokračovat. Hraje se o 200 000 dolarů (aby prý lidská část turnaje byla motivována stroj porazit). V době vkládání článku mírně vedl počítač. Přímý přenos můžete sledovat zde:
Jsme na prahu zvyšování inteligence?
Autor: Josef Pazdera (04.01.2004)
Učenlivé stroje dalším krokem ke skutečné umělé inteligenci
Autor: Jan Zikmund (11.01.2014)
Hawking rozvířil obavy o umělou inteligenci
Autor: Stanislav Mihulka (06.12.2014)
Příchod „hloupé“ umělé inteligence
Autor: Jan Špaček (06.02.2015)
Vyřeší nejpalčivější problémy světa davová superinteligence?
Autor: Stanislav Mihulka (02.01.2016)
Umělá inteligence autonomního automobilu se stala řidičem
Autor: Stanislav Mihulka (16.02.2016)
Čína kraluje žebříčku nejrychlejších superpočítačů už 7. rok
Autor: Stanislav Mihulka (21.06.2016)
Letecká bojová umělá inteligence si natřela na chleba taktické experty
Autor: Stanislav Mihulka (29.06.2016)
Úsvit kvantové komunikace díky Číně
Autor: Dušan Majer (18.08.2016)
Diskuze:
Paralelizace a využití množství procesorů
Fanda Sin,2017-01-19 14:46:06
Čínské super počítače jsou sice nejvýkonnější, ale dohánějí to velkým počtem paralelních jednotek, takže je programátorsky problém velký paralelní výkon stroje využít.
Pro modelování nějakých fyzikálních dějů asi ano, ale ne všechny problémy lze jednoduše paralelizovat.
Například pohyb každého atomu v systému se počítá "zvlášť", ale pak se stejně výpočty musí "spojit" a to už se paralelizuje hůře. (omlouvám se za velké zjednodušení, ale pro představu by to mohlo stačit)
Například nejvýkonnější počítač US (o kterém víme, těžko říci co má třeba taková NSA)
má 0,314 FLOPS na jádro, kdežto 2. nejvýkonnější (čínský) má 0,011 FLOPS a nejvýkonnější má 0,009 FLOPS na jádro. (pokud dobře počítám)
Nyní má navíc NVidia, AMD i Intel zákaz vyvážet do Číny takto výkonné procesory (CPU i GPU) protože se US bojí, že si na tom Čína modeluje návrh atomové bomby.
Re: Paralelizace a využití množství procesorů
Drahomír Strouhal,2017-01-19 15:25:29
Tohle je absurdní. Superpočítače byly vždy o paralelizaci. Prakticky nemůže existovat úloha pro superpočítače, na které by nebyla brutální paralelizace. Tady se nebavíme o tom, jestli je lepší jednojádro nebo dvoujádro. Při tak obrovském množství vláken už je bezpředmětné, jak se jaká aplikace chová na jedno jádro.
Re: Re: Paralelizace a využití množství procesorů
Fanda Sin,2017-01-19 15:57:14
To jsem rád, že jste mi to na jasném příkladu vysvětlil, proč je můj předpoklad absurdní.
Mohu požádat alespoň o 1 příklad, kdy je možné na 100% využít 10 649 600 vláken? (počet procesorů nejvýkonnějšího superpočítače světa)
Každá paralelizace má jistý stupeň "sériovosti" - jak jsem již uvedl, pokud chceme počítat celý systém, tak se musí spočítat i různá působení jednotlivých částí systému a v tuto chvíli paralelizace trpí.
Nastupují různá synchronizační omezení - jednotlivá vlákna musí čekat na dokončení jiného vlákna. Tím se samozřejmě uvolní původní procesor, ale pokud nemáte další vlákno které čeká na spuštění, je to k ničemu.
Wiki to má docela hezky popsané:
https://en.wikipedia.org/wiki/Parallel_computing
Re: Re: Re: Paralelizace a využití množství procesorů
Jan Turoň,2017-01-19 18:26:50
@Fanda Sin: Fyzikové na urychlovači SSC mají aplikaci pro generování Higgsových bosonů pro kterou požadují realtimové zpracování datového toku v řádech 100TB/s (Supercollider 2, Michael McAshan, s.163 - Google books).
Šachové superpočítače zase zakládají svou kariéru na tom, že procházejí a vyhodnocují strom možných tahů do hloubky, přičemž kvůli chybějícímu výkonu odřezávají větve, které se jeví jako špatné tahy. Je ale možné, že to, co se jeví jako špatný tah, se nějakou geniální kombinací ukáže za pár tahů jako skvělý tah. Zatímco v koncovkách i běžný počítač dokáže díky užšímu vyhledávacímu stromu provádět analýzu třeba 100 tahů dopředu (a ve vícekolových partiích se superpočítači i nejlepší šachisti světa ve vyrovnané pozici raději rezignují a šetří síly na další partii), tak ve střední hře může být i pro superpočítač 8-10 tahů problém, což je ale ještě na hraně schopností nejlepších světových šachistů.
V obou dvou případech se monstrózních 10M jader sakra hodí. Podobných příkladů by šla vymyslet celá řada. Krom toho společnosti spravující superpočítače prodávají výpočetní výkon, takže čím silnější stroj, tím větší výdělky. A myslím, že je po tom velká poptávka: firmy jako IBM téměř okamžitě alokují prostředky každého většího světového superpočítače (viz např. ostravský Anselm+Salomon). Vzhledem k množství peněz do toho vražených pro to mají určitě nějaký sakra dobrý a sakra jistý důvod.
Re: Re: Re: Re: Paralelizace a využití množství procesorů
Fanda Sin,2017-01-20 09:43:41
Děkuji za slušně formulovanou odpověď.
SSC je už dokončené?
Nedokážu si představit co s těmi daty dělají, takže si nedokážu představit jak je to náročné a už vůbec si nedokážu představit jak to jde paralelizovat.
Pokud to jsou prostě jen údaje z detektorů, tak to asi zpracovávat paralelně není problém, ale pokud se najde něco - například - musí se vyhodnotit celkový počet a interakce jednotlivých elementárních částic rozpadu v stejné chvíli, tak předpokládám, že v tam bude problém s paralelizací.
Čekal bych, že před opravdovým zpracováním dat, to budou "prohánět" nějakým DSP, ale opravdu netuším co je vstup a co výstup (a ta kniha je placená) takže tady vyloženě jen hádám.
Šachové algoritmy zase musí nějak vyhodnocovat "kvalitu" jednotlivých větví, musí je mezi sebou nějak porovnávat a vyhodnotit který tah bude ten nejlepší.
Dále se musí kontrolovat, zda touto větví už někdo nešel, jinak by vlákno počítalo práci, kterou již udělal někdo jiný. (k takovým případům musí dojít, protože je omezený počet všech možných rozmístění šachovnice)
Já netvrdím, že se nedá (chvilkově) využít velké množství procesorů, ale aby běželo 10M CPU v kuse celý den/několik dní/měsíc nad jedním algoritmem?
Moc rád bych si napsal nějaký algoritmus, který by to dokázal využít, ale nyní mám problém využít naplno paralelně svou grafickou kartu na PC.
Což samozřejmě neříká nic o tom že takový algoritmus neexistuje, spíš o tom, že jsem lama programátor, ale každý z nás se učí věci jiným způsobem.
Třeba mne navedete na nějakou zajímavou implementaci, či algoritmus, kterou bych si mohl zkusit napsat.
Re: Re: Re: Re: Re: Paralelizace a využití množství procesorů
Jan Turoň,2017-01-20 13:21:56
Zajímavý případ je třeba vyhledávač Googlu: když člověk do našeptávače napíše sebevětší blbost, Google mu napoví, na co se asi tak chce zeptat, ještě než to stačí dopsat. Algoritmus bude nejspíš průchod vyhledávacím stromem s časovou složitostí logaritmickou, a přestože množství dat je fantastické a výpočetní síla musí být značná, zjevně k tomu není třeba futuristický superpočítač a ani značné zvětšení množství dat se nijak dramaticky neprojeví na potřebě většího výkonu.
Opačný extrém je prolamování hesla hrubou silou: tam je ale časová složitost exponenciální a ani dramatické zesílení výpočetního výkonu příliš nepomůže. (Prolomení MD5 na nějakém silném clusteru bude nejspíš otázka sekund, ale malé zvýšení délky kódu - řekněme z 32 base64 znaků na 36 - dramaticky zvyšuje požadavky na výpočetní výkon.) Tedy ani toto není vhodná úloha pro superpočítač.
Pokud si chcete vyzkoušet nějakou aplikaci pro superpočítače, v domácích podmínkách je schůdné pořídit si cca 20 mikropočítačů (za celkovou cenu jednoho lepšího herního PC) a vyzkoušet na něm Apache Hadoop a nějakou úlohu pro big data (s časovou složitostí lineární - narozdíl od našeptávače Googlu big data pracuje nad neorganizovanými daty). Inspiraci (vč. spektakulárních obrázků) můžete najít tady http://cubieboard.org/2013/08/01/hadoophigh-availability-distributed-object-oriented-platform-on-cubieboard/ a pokud hledáte mikropočítač s nejlepším poměrem cena/výkon, nejlépe se mi jeví Odroid XU4 http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825
Napadá mě, že by Číňané s tím svým strojem mohli ve velmi krátké době dotěžit zbývající bitcoiny, ty ale asi nebudou mít cenu spotřebovaného výpočetního výkonu.
Re: Re: Re: Re: Re: Re: Paralelizace a využití množství procesorů
Fanda Sin,2017-01-20 16:00:31
Případ googlu je spíše něco pro lexikální analýzu, to se přiznám moc neznám a nevím jak to přesně funguje.
Pravděpodobně se ale s každým dalším napsaným písmenkem bude snižovat složitost. (asi to bude i O=log N, jak píšete)
Čekal bych tedy nějaký typ stromu a každou "větev" pak lze procházet samostatně. (per vlákno)
MD5 se již nyní "hádá" pomocí rainbow tables.
Všeobecně na testování x možností stejným algoritmem se dá velice dobře paralelizovat, to už se tomu blíží více.
Oba příklady ze života jsou dobré, ale ani tady nepůjde udělat vše paralelně. (to hádání hesel v podstatě ano, ta lexikální analýza bude asi trošku problém)
Vzhledem k tomu, že mám doma celkem výkonnou grafickou kartu, tak paralelní programování budu testovat tam.
Neměl bych následně využití pro několik ARM pc a aby mi na to doma sedal prach, to by byla škoda :)
Děkuji za dobrou diskusi!
Terminátor vs. Skynet
Jan Turoň,2017-01-19 11:13:32
Částečně je to tak. Skynet, mám za to, byla počítačová síť: výpočty distribuované mezi mnoho nezávislých strojů. Tato architektura je využívaná např. pro projekt SETI a směle konkuruje superpočítačům. Skynetem dneška je BOINC - také se k němu můžete připojit na https://boinc.berkeley.edu/
Superpočítače mají jednotnou architekturu, jeden OS, a přestože bývají škálovatelné, jsou hardwarově mnohem více provázány.
Terminátor byl Skynetem stvořen jako tlustý klient - tj. se schopností autonomně se rozhodovat a řešit problémy bez otravování Skynetového serveru při každém uprdnutí. Na podobném principu fungují třeba marsovská vozítka - signál letí na Mars 15 minut a vozítko tedy nemůže reagovat stylem "Houstone, nakláním se na stranu, vypadá to, že spadnu, co mám dělat?" - No a této autonomii se dnes nevhodně populárně říká "umělá inteligence" (AI). Nemá to s inteligencí nic společného, je to automatizovaný proces vyžadující hodně FLOPs - no a tohle potřebuje ten terminátor k tomu, aby mohl říkat "astalavista, bejby".
Možná ale přecejen je inteligence masivně nadimenzovaný paralelismus. Dnes nevíme, za 15 let nejspíš budeme vědět. Každopádně říkat DNES, že nějaké zařízení je "chytré" nebo "inteligentní" je přinejmenším patetický marketingový blábol.
Re: Terminátor vs. Skynet
Roman Madala,2017-01-19 12:20:07
Na druhú stranu, od väčšiny ľudí sa tak ako od vozítka na Marse, nevyžaduje viac ako autonómne riešenie problémov pri pracovných úlohách. Tak kde je ukrytá tá inteligencia?
Re: Re: Terminátor vs. Skynet
Jiří Novák,2017-01-21 16:27:31
Jasně, spousta lidí v práci řeší úlohy typu "nakrm opici a na nic nešahej". Ale to ještě neznamená, že nejsou inteligentní. Skorát systém jejich inteligence nedovede využít, degraduje pracovníky na dobytek.
Inteligence se imho projevuje především v neočekávaných situacích.
Terminator?
David Coun,2017-01-19 08:21:11
Terminátor byl, pokud se nepletu, vlastně android - kovová kostra obalena živou tkání. To, co asi autor článku myslí, je Skynet - superpepočítač, kterému USA předají kontrolu nad svým obranným systémem.
Re: Terminator?
Alexandr Kostka,2017-01-20 20:22:32
A k tomu to směřuje též.Stačí si vzpomenout na "slavného" chatbota Microsoftu. Po pár hodinách svobodné existence došel k názoru, že lidi jsou fuj a začal na ně být také fuj. Mít pod kontrolou ozbrojené drony, tak už tu ty terminátory máme. Takto jen MS odvolal projekt a nechal zformátovat disk.
Diskuze je otevřená pouze 7dní od zvěřejnění příspěvku nebo na povolení redakce