Zelené programování

16. února 2011 /
foto: Ayhan Yildiz

Možná si vzpomenete, jak před dvěma lety pronikla do médií zpráva o emisích oxidu uhličitého, které má na svědomí vyhledávání na Googlu. Publikovaná čísla byla zpočátku natolik nadhodnocená, že se jich chytla i mainstreamová média a vytvořila vděčnou celospolečenskou debatu nad novým tématem (viz článek Ani Google nehrabe zadarmo v 7.G 3/2009). Vlna však rychle opadla a vzala s sebou i povrchní povědomí o čím dál užším vztahu mezi životním prostředím virtuálního a reálného světa.

Máte-li touhu zařadit pojmy jako virtuální svět nebo kyberprostor do oddělení vědeckofantastické literatury, položte si pár otázek. Kudy k vám dorazil váš poslední e-mail? Kde probíhá telefonní hovor? Kam se uloží váš zítřejší status na Facebooku?

I když trávíme ve virtuálním prostoru čím dál víc času, máme o něm pořád neúplnou představu. Běžný uživatel totiž zažívá kyberprostor zevnitř, obvykle skrze obrazovku počítače. Při pokusu o pohled zvenku — z reality — by nám však měl zrak sklouznout na hučící bednu počítače se spotřebou 300 W, nezanedbatelným tepelným výkonem a emisemi CO2. Cesta jednotlivými technologickými vrstvami tvořícími soukolí virtuálního světa začíná zde. Vydáme se jí a zkusíme si důkladně odpovědět na otázku, kterou už naznačila zmíněná mediální kauza.

Jaký zvolit postup?

Počítače (či spíš kalkulátory) se hojně používaly už v sedmnáctém století; byly ovšem mechanické. Pokud chtěl obyčejný uživatel přidat novou funkci (například násobení), musel si koupit nový stroj. Avšak už o tři století později, především v období druhé světové války, se začaly objevovat počítače univerzální — programovatelné. Umožňovaly nahrávání funkcí, aniž by bylo potřeba přepojovat dráty nebo soustružit nová ozubená kolečka. Zrodil se software.

„Přejete si setřídit výsledky sčítání lidu? Můžete si nechat starý počítač, který vám řešil balistické dráhy raket. Tady máte novou sadu děrných štítků; program ale poběží sedm let.“

Tady se dostáváme k prvnímu faktoru, který má vliv na spotřebu počítačů: přístup programátorů.

Vezměme si třeba běžný příklad z praxe: seřazení tisícovky jmen podle abecedy. Průměrný programátor použije jednoduchý a osvědčený způsob (tzv. bublinkové třídění), kterým projde celý seznam a sousední jména prohodí tak, aby „menší“ předcházelo „většímu“. Opakováním tohoto postupu dostane seřazená jména průměrně po jednom milionu operací. Milion (ale i miliardu) operací provede dnešní počítač během mrknutí oka, není proto důvod pro vymýšlení rychlejších postupů.

Ovšem počítač z meziválečného období by tuto jednoduchou úlohu dokončil přibližně v době pádu železné opony. Tehdejší programátoři se proto usilovně zamysleli a vyvinuli sofistikovaný postup (tzv. Quicksort), kterému k vyřešení úkolu postačí pár tisíc operací — tedy pár hodin.

Proč tedy novodobí vývojáři často dávají přednost řádově pomalejším postupům, které zbytečně zatěžují počítač? Prostě: vyplatí se to. Náš průměrný programátor sice donutil počítač, aby prováděl 99,7 % operací zcela bezúčelně — ovšem ušetřil pár desítek minut svého času, ve kterém by musel zavádět metodu vyvinutou jeho předchůdci. Taková práce programátora totiž — na rozdíl od pár milisekund činnosti počítače — stojí peníze.

Obalovací princip

Od minulého století kopíroval vývoj výkonu počítačů exponenciální křivku. S rostoucími požadavky uživatelů rostly i nároky na programátory a s masovým využíváním výpočetní techniky ustoupily původně výzkumné a vojenské cíle do pozadí. Další vývoj začaly diktovat tržní principy; jeden z nich nazvěme třeba obalovací.

Už v sedmdesátých letech nabízel trh mnoho typů počítačů, ovšem jejich software měl jednu vadu — byl nepřenosný. Dnes pokládáme za samozřejmé, že nám tentýž program funguje na počítačích různých výrobců. Když to trochu zjednodušíme, tento zlom nastal až s nástup specifického software, tedy operačního systému. Programátoři tak přestali řešit, pro který konkrétní typ počítače je zrovna výhodné programovat, a namísto toho svázali vývoj s vybraným operačním systémem. Nejdříve jím byl UNIX, později přišel známější Windows. Velkým společnostem, které operační systém vyvíjely, se tímto způsobem podařilo zasunout mezi programátory aplikací a výrobci počítačů svoji technologickou vrstvu — a tu úspěšně prodávat. Aplikace se tedy sice staly závislými na operačním systému, ale oprostily se od vazby na hardware, kterou nová vrstva překryla.

Znáte pohádku o slepičce, která shání vodu pro kohoutka? S novými technologickými vrstvami je to podobné. Uživatel poprosí aplikaci o vytištění dokumentu, aplikace poprosí operační systém, operační systém poprosí ovladač k tiskárně, tiskárna vytiskne dokument. Dříve aplikace poprosila rovnou tiskárnu. Který systém byl rychlejší?

Bez platformy není byznys

Vývoj pokračoval. Windows, UNIX a Mac OS si postupně rozdělily trh. Programátoři však řešili nové dilema: snažit se za cenu výrazně vyšších nákladů udržovat pro každý operační systém zvláštní verzi svého programu, nebo programovat jen pro jeden? A který by to měl být?

Přeskočme nyní firmu Sun, která úspěšně dobývala trh pomocí další zpomalující technologické vrstvy. A přeskočme i konkrétní méně významné technologické vrstvy, které se tu objevily jen proto, aby si ta či ona firma rovněž ukousla část trhu. Nás bude zajímat webový prohlížeč, který stojí téměř na konci tunelu oddělujícího dnešní internetovou virtuální realitu od hardware. Z původně jednoduchého programu na prohlížení dokumentů se stala základní součást webové platformy, která překryla i vrstvu operačních systémů. Programátoři nyní už neřeší, pro který operační systém vyvíjet — napíšou totiž univerzální webovou aplikaci. Co na tom, že je k tomu potřeba mít neustále zapnutý server, vybudovanou výkonnou a spolehlivou síť a že celá aplikace bude několikanásobně náročnější? Uživatel si přece stejně za rok koupí rychlejší počítač a náklady na provoz serveru se rychle vrátí.

Oklikou se tak dostáváme zpět do současnosti ke Google, který se zařadil mezi velké hráče až nedávno. Nevytváří novou (vlastní) technologickou vrstvu — využívá „veřejný“ prostor webu, kde provozuje své aplikace, některé však přístupné jen registrovaným. A v popisu vrstev bychom mohli pokračovat dál až k nejnavštěvovanějšímu webu vůbec — Facebooku. Myslím si však, že stávající trend je už dost zřejmý. Historie ukazuje, že k získání tržního podílu stačí prosadit vlastní technologickou vrstvu — platformu. Ta většinou usnadní práci programátorům, přinese nové možnosti a především obere počítače o značnou část jejich výkonu. Také vám přišlo divné, že je váš počítač rok od roku pomalejší?

A vrtá vám v hlavě, jak se to projeví na spotřebě elektřiny a potažmo emisích CO2? Pokud počítače dokážou řešit úlohy v řádu milisekund, nějaké to zpomalení, které si vysloužíme od pohodlných programátorů a dravých firem, jež zavádějí nové technologické vrstvy, už by nemuselo mít výrazný vliv. Tak to ovšem není. Změříme-li si na moderním notebooku odběr při přehrávání filmu nejprve z harddisku a pak z Youtube, zjistíme, že nás moderní platforma obere o několik wattů. Vytížené počítače mají totiž větší odběr. A pokud se kvůli nám roztočí harddisk v nejbližším datacentru, odkud film stahujeme, a cestou proteče přes desítky síťových zařízení, můžeme mít podobný pocit jako při nákupu rajčat z dovozu.

Když se stahují mračna

Kvůli narůstajícímu počtu internetových aplikací se dostal ke slovu nejnovější trend cloud computing. K uživatelskému počítači přistupuje jako k nevýkonnému (a tedy úspornému) zařízení, na kterém běží internetový prohlížeč. Maximální množství úloh přesouvá na výkonné počítače „někde na internetu“, tedy na vzdálené servery provozovatelů datových služeb. Na jejich rostoucí spotřebu, která z IT koláče ukrajuje už celou čtvrtinu, se před několika měsíci snesla kritika organizace Greenpeace. Ve své zprávě Make IT Green: Cloud computing and its contribution to climate change vyzývala velké hráče jako Microsoft, Facebook a Google ke snižování emisí CO2.

Nutno říct, že snižování spotřeby datových center je podstatně jednodušší než u jednotlivých počítačů. Velcí poskytovatelé dataslužeb totiž servery často „virtualizují“, což znamená, že jich na jeden fyzický počítač umístí hned několik. Navíc je podle potřeby vypínají a zapínají. Výrazné snížení nákladů na energii přináší i společné chlazení.

Pokud se trend cloud computingu zavede, může podle loňské studie firmy Microsoft přinést pro malé organizace až 90% úsporu emisí CO2, pro velké „jen“ asi 50%. A to by byl výborný výsledek.

Zdá se, že právě tudy vede environmentálně příznivá cesta, prospěšná všem zúčastněným. Na hučící počítačovou skříň na zemi nebo na šumící notebooky už nahlížejme jen jako na součásti velkého počítače, jehož jádro je „někde na internetu“. Obrovská část jeho výkonu se sice ztratí v různých technologických vrstvách, ale díky nim alespoň někteří z nás vědí, jak celý systém funguje.

Autor studuje informatiku na brněnské Mendelově univerzitě a pracuje jako správce sítě Hnutí DUHA.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Pravidla pro komentáře: Redakce Sedmé generace si vyhrazuje právo smazat příspěvek, který nemá nic společného s tématem, obsahuje vulgarismy, rasistické a xenofobní vyjadřování či jiné urážky ostatních, obsahuje spam a komerční reklamu nebo je jinak nevhodný. Porušení pravidel může mít pro uživatele za následek dočasné nebo trvalé znemožnění vkládání dalších komentářů.

Upozornění: Publikovat články nebo jejich části, jakož i zveřejňovat fotografie a kresby z časopisu Sedmá generace nebo z jeho internetových stránek je možné pouze se souhlasem redakce.

Sedmá generace 2/2024 vychází v 2. polovině dubna.