Proč jsou algoritmy na nic a budoucnost patří analogovým počítačům
Vím, že titulek tohoto článku může znít trochu provokativně, ale je to pravda:
Podívejte se na nejnovější seznam výkonných počítačů Top500. V současné době je nejvýkonnějším superpočítačem Sunway TaihuLight v Národním superpočítačovém centru v čínském Wuxi. Tento gigant dosahuje neuvěřitelného výkonu 93 petaflopů (jeden petaflop se rovná kvadrilionu operací s plovoucí desetinnou čárkou za sekundu), což je opravdu nepochopitelné.
Superpočítače a spotřeba energie
Tak obrovský výpočetní výkon má však svou cenu. V tomto případě vyžaduje 10 649 600 výpočetních jednotek, takzvaných jader, které spotřebují 15 371 megawattů – množství elektřiny, které by mohlo napájet malé město s přibližně 16 000 obyvateli na základě průměrné spotřeby energie rovnající se spotřebě San Francisca.
Odvrátíme-li pozornost od nejvýkonnějších superpočítačů a zaměříme-li se místo toho na ty energeticky nejúspornější, najdeme systém TSUBAME3.0 na Tokijském technologickém institutu na vrcholu seznamu Green500. Poskytuje 14,11 gigaflops/watt při celkové spotřebě energie „pouhých“ 142 kilowattů, které vyžaduje jeho 36288 jader. Z hlediska energetické účinnosti je to asi 2krát lepší než TaihuLight. Ale 142 kilowattů je stále strašně moc elektrické energie.
Ale copak neexistují superpočítače, které ke svému provozu tolik energie nepotřebují? Vskutku existují: Jeho výpočetní výkon se odhaduje na 38 petaflopů, což jsou asi dvě pětiny výkonu TaihuLight. K jeho provozu však stačí asi 20 wattů energie. Watty, ne megawatty! A přesto vykonává úlohy, které – alespoň doposud – žádný stroj nebyl schopen vykonat.
„Copak neexistují superpočítače, které ke svému provozu nepotřebují tolik energie? Vskutku existují:
Co způsobuje tento rozdíl? Především mozek je takříkajíc specializovaný počítač, zatímco systémy jako TaihuLight a TSUBAME3.0 jsou mnohem univerzálnější stroje, schopné řešit nejrůznější problémy.
Stroje jako tyto jsou programovány pomocí algoritmu, takzvaného programu. V podstatě se jedná o posloupnost instrukcí, které každý procesor provádí tak, že je načte z paměťového subsystému, dekóduje instrukce, načte operandy, provede požadovanou operaci, uloží zpět výsledky atd.
Úsporný superpočítač:
Všechny tyto paměťové požadavky vyžadují značné množství energie a značně zpomalují práci. Existence stovek tisíc jednotlivých jader také vyžaduje složitou propojovací strukturu pro výměnu dat mezi jádry podle potřeby, což také zvyšuje čas a výkon potřebný k provedení výpočtu.
Mozog naproti tomu pracuje s úplně jiným přístupem. Na jeho fungování se nepodílí žádný program. Je jednoduše „naprogramován“ propojením svých aktivních součástí, většinou tzv. neuronů.
Mozog nepotřebuje načítat instrukce nebo data z žádné paměti, dekódovat instrukce atd. Neurony získávají vstupní data od jiných neuronů, operují s nimi a vytvářejí výstupní data, která jsou předávána přijímajícím neuronům. Dobře – je to trochu zjednodušené, ale stačí to k tomu, abychom se dostali k následujícím otázkám:
- 1. Jaké jsou možnosti, aby se neurony naučily pracovat s daty? Neexistuje elektronický ekvivalent takové počítačové architektury?
- 2. Opravdu potřebujeme univerzální superpočítače?
- 3. Nemohl by být pro řešení některých problémů lepší specializovaný systém?
Odpověď na první otázku zní: Ano, existuje elektronický ekvivalent takové architektury.
Jmenuje se analogový počítač.
Vstupte do analogových počítačů
„Analogový“ pochází z řeckého slova „analogon“, což znamená „model“. A přesně takový je analogový počítač:
Tzv. přímé analogy – spočívající na stejném základním principu jako zkoumaný problém – tvoří nejjednodušší třídu těchto analogových metod. Klasickým příkladem jsou mýdlové bubliny používané ke generování minimálních povrchů.
„Analogový počítač je model určitého problému, který pak lze použít k řešení právě tohoto problému pomocí jeho simulace.“
Obvykleji využitelná třída obsahuje nepřímé analogie, které vyžadují mapování mezi problémem a výpočetní oblastí. Typicky jsou takové analogie založeny na analogových elektronických obvodech, jako jsou sumátory, integrátory a násobičky. Mohou však být také realizovány pomocí číslicových součástek, v takovém případě se nazývají číslicové diferenciální analyzátory.
Oběma přístupům je společná jedna vlastnost: neexistuje žádný uložený program, který by řídil činnost takového počítače. Místo toho jej programujete změnou propojení mezi mnoha jeho výpočetními prvky – něco jako mozek.
Od analogových k hybridním počítačům
Podívejte se na můj vlastní prototyp analogového počítače, který je příkladem klasického analogově-elektronického počítače. Křížení drátů lze popsat jako program stroje. V tomto případě je nastaven tak, aby simuloval proudění vzduchu kolem takzvaného Joukowského aerodynamického křídla – což není triviální úloha.
Všechny výpočetní prvky stroje pracují zcela paralelně, bez centrální nebo distribuované paměti, ke které by bylo třeba přistupovat a čekat na ni. Počítač se programuje zapojováním a vypojováním propojovacích kabelů. To může být docela užitečné pro jednoho výzkumníka a pro výukové účely, ale pro skutečný analogový počítač pro všeobecné použití by se člověk musel zbavit této ruční záplatovací procedury.
Naštěstí je s dnešní elektronickou technologií možné postavit integrované obvody obsahující nejen základní výpočetní prvky, ale také příčku, kterou lze programovat z připojeného digitálního počítače, čímž se krysí hnízdo drátů zcela odstraní.
Takové analogové počítače dosahují pro určité třídy problémů extrémně vysokého výpočetního výkonu. Mimo jiné jsou nepřekonatelné pro řešení problémů založených na diferenciálních rovnicích a jejich soustavách – což se týká mnoha, ne-li většiny současných nejdůležitějších problémů ve vědě a technice.
Například Glenn E. R. Cowan ve svém článku z roku 2005 popsal analogový počítač VLSI (Very-Large-Scale-Integrated Analog Computer), tj. analogový počítač takříkajíc na čipu. Tento čip poskytoval neuvěřitelných 21 gigaflopsů na watt pro určitou třídu diferenciálních rovnic, což je lepší než dnešní energeticky nejúspornější systém na seznamu Green500.
Analogová budoucnost počítačů
Analogové počítače, které byly převládající formou vysoce výkonných počítačů až do 70. let 20. století, byly z velké části zapomenuty, protože je vystřídaly dnešní digitální počítače s uloženým programem. Nastal však čas to změnit.
„Aplikace zítřka vyžadují silnější výpočetní výkon při mnohem nižší spotřebě energie. Digitální počítače to nemohou poskytnout.“
Zítřejší aplikace vyžadují silnější výpočetní výkon při mnohem nižší úrovni spotřeby energie. To však digitální počítače zkrátka nemohou poskytnout hned po vybalení z krabice. Je tedy nejvyšší čas začít vyvíjet moderní analogové koprocesory, které z tradičních počítačů sejmou zátěž spojenou s řešením složitých diferenciálních rovnic. Výsledkem by byly takzvané hybridní počítače.
Tyto stroje by mohly nabídnout vyšší výpočetní výkon než dnešní superpočítače při srovnatelné spotřebě energie nebo by mohly být použity v oblastech, kde je k dispozici jen nepatrné množství energie, jako jsou implantované řídicí jednotky v medicíně a další vestavěné systémy.
Výzvy do budoucna
Je zřejmé, že analogové počítače jsou velkým příslibem do budoucna. Jedním z hlavních problémů, které bude třeba řešit, je skutečnost, že programování analogových počítačů se zcela liší od všeho, co se dnes studenti učí na univerzitách.
V analogových počítačích neexistují žádné algoritmy, žádné smyčky, nic, jak to znají. Místo toho existuje několik základních, ale výkonných výpočetních prvků, které je třeba chytře propojit, aby bylo možné sestavit elektronickou obdobu nějakého matematicky popsaného problému.
Technologické výzvy, jako jsou výkonná propojení nebo vysoce integrované, ale přesné výpočetní prvky, se ve srovnání s touto vzdělávací výzvou zdají být zanedbatelné. Nakonec bude největší překážkou pro budoucnost analogové výpočetní techniky změna způsobu, jakým lidé přemýšlejí o programování.