Windows 7 budou podporovat paralelní výpočty

Michal Kvasnička, Sprinx Systems a.s.

Microsoft již dříve vypustil několik útržkovitých informací, které hovoří o tom, jakým způsobem firma přidává podporu paralelního zpracování výpočtů do svých vývojářských nástrojů (zejména Visual Studio). Server ZDnet.com zjistil, že změny, které povedou k lepší podpoře paralelních výpočtů, mají být součástí rovněž nadcházejícího vydání operačního systému z rodiny Windows, známého jako Windows 7. Ačkoli vývojáři Microsoftu, stejně jako betatesteři a vůbec všichni, kdo mají přístup k testovacím verzím Windows 7, se obšírně zaměřují na nové uživatelské prostředí, není to pochopitelně jediná novinka, kterou se nový OS chystá pochlubit. Zástupci společnosti se v neoficiálním rozhovoru nechali slyšet, že za účelem zachování kompatibility aplikací i ovladačů budou hloubkové změny mezi Windows Vista a Windows 7 pouze minimální. Přiznali také, že Win32, jádro systému Windows, není pro asynchronní, souběžně výpočty vhodné. I přesto nebo snad právě proto již Microsoft podniká první kroky k tomu, aby toto omezení bylo u příští generace Windows překonáno - jmenovitě u Windows 7 a jeho serverové alternativy Windows 7 Server (v současné době známé jako Windows Server 2008 R2).

Strategií Microsoftu v dlouhodobém horizontu je najít způsob, jak odstranit z Windows stávající jádro Win32 a při současném zachování nejvyšší možné kompatibility jej nahradit novým kódem - sadou programovacích rozhraní, které jsou lépe přizpůsobené pro provoz paralelně běžících úloh na vícejádrových čipech či multi-procesorových systémech. Na něčem podobném se již pracuje pod kódovým označením RedHawk a MinSafe, což jsou prakticky dvě identické technologie vyvíjené dvěma různými týmy pod záštitou Microsoftu, jejichž účelem je starat se o to, aby byla rovnoměrně vytížena všechna přístomná výpočetní jádra. S nasazením těchto technologií v operačním systému se však počítá teprve od Windows osmé generace a Midori - nové rodiny OS od Microsoftu vyvíjené zcela nezávislé na řadě Windows. Zatím tudíž není známo, jakým způsobem a do jaké míry budou Windows 7 paralelizaci podporovat, ale podle všeho nějakou podporu obsahovat budou. Vnést světlo do této otázky by mohla již koncem října konference Microsoft Professional Developers Conference, kde by představitelé společnosti měli diskutovat o "klíčových architektonických změnách, které umožní systému Windows efektivně provozovat paralelní software". Tolik z popisu uvedeném na oficiálních webových stránkách PDC (https://microsoftpdc.com).

"Win32 nebyl nikdy navržen pro vysoce nezávislé, asynchronní procesy," uvedl Craig Mundie, Chief Research and Strategy Officer, Microsoft. "Paralelismus vyžaduje změny ve všech softwarových vrstvách. To obnáší přeskupení různých úloh do různých vrstev... a tedy hledání rovnováhy mezi rolemi a runtime procesy. A to je to, co potřebujeme zformovat v operačním systému. První kousky tohoto očekávejte v příští generaci Windows." Jako příklad windowsovské funkce, která je dotčena potřebou tohoto druhu "vyvažování", uvedl Mundie plánovací model v uživatelském módu (user-mode scheduling model). Stávající plánovač ve Windows běží "na příliš vysoké vrstvě", vysvětluje. Současně poznamenal, že Microsoft uvedl nový zkušební model jako součást svého Robotics Development Kitu. Tato sada nástrojů obsahuje nově vyvinuté runtime knihovny, které umožňují souběžný, koordinovaný a decentralizovaný běh softwarových služeb - tedy takové knihovny, které jsou optimalizované pro distribuované/mnohojádrové výpočty.

Podle encyklopedie Wikipedia Microsoft podnikl některé základní modifikace plánovače za účelem paralelizace procesů již v operačním systému Vista: "Operační systémy založené na technologii Windows NT používají mnohaúrovňovou zpětnou frontu. Definováno je 32 úrovní priorit, kde priority 0 až 15 jsou normální a priority 16 až 31 jsou ty, které běží v reálném čase a vyžadují přiřazení určitých výsad... Plánovač ve Windows Vista byl modifikován tak, že používá cyklické počítadlo registrů v moderních procesorech, čímž si uchovává přehled o tom, kolik CPU cyklů je přesně vykonáno na jeden thread, namísto používání rutinního časovače přerušení."

Zatímco stroje s několika málo jádry mohou současné verze Windows bez větších obtíží plnohodnotně využívat, jejich návrh není zdaleka vhodný pro stroje obsahující 8, 16, 32 a více jader. Microsoft si nyní může vybrat, zda jít cestou úplné podpory vícejádrových architektur, což by znamenalo nutnost předělání stávajícího jádra Win32 a pravděpodobnou ztrátu kompatibility s některými aplikacemi, nebo provedení takových úprav, které provést lze při současném zachování 100% kompatibility. Od výrobce OS lze téměř s jistotou očekávat, že se rozhodne buď pro druhou variantu, anebo... a to je nejpravděpodobnější... že vytvoří dva různé operační systémy, z nichž každý půjde vlastní cestou. Dost možná, že to je ten důvod, proč má být Midori vyvíjen jako zcela odlišná platforma.

V této době lze zatím bohužel pouze spekulovat. Vydání obou operačních systému (Windows 7 a Midori) je naplánováno na začátek roku 2010. V každém případě si můžeme být jisti tím, že jakkoli je softwarové přizpůsobení se novým technologiím problematické, vždy je to jen otázkou času. Za pár let si nejspíš už ani nedokážeme software bez podpory paralelizace vůbec představit a bude přitom zcela lhostejné, zda používáme platformu Windows, Midori, Linux, MacOS X či cokoli jiného.