Apple marketingově vyfoukl Microsoftu multijádro

Apple marketingově vyfoukl Microsoftu multijádro

Okolo Mac OS X Snow Leoparda a jeho Grand Central Dispatch technologii se toho již napsalo mnoho. Trochu do pozadí je však posunut test, který prováděly testovací laboratoře InfoWorldu: crossplatformní rozšiřitelnost a benchmarky pro podporu článku „The generation gap: Windows on multicore."

Tenkrát zde bylo zmíněno, že Microsoft je hezky vepředu v podpoře vícejaderného trendu s Windows Vista a vylepšování a upravování, které provedl v kornelu jej poslali hodně dopředu - a dokonce se i trochu zlepšil - s Windows 7. Také je zde poznamenáno, že Windows XP chybí lepší podpora vícejader a to poškozuje jeho schopnosti rozšiřování. Ve skutečnosti, pokud by nebyl kernel Visty tak zaneprázdněn nadbytečným kódem (vedlejší produkt DRM), byly by Visty o mnoho rychlejší na vícejaderných procesorech než XP.

Tak jak to vypadá v době, budete potřebovat 20 až 30 jader, než efektivně zvítězí Visty/Windows 7 nad hrubou silou Windows XP. A pokud se pozastavujete nad absurditou počtu jader, které je větší než na fotbalovém hřišti, uvědomte si, že Intel již nyní přichází s čipy, které jsou schopny pracovat s osmi souběžnými frontami (4 jádra + hyperthreading).

Je třeba na to upozornit, protože to je další skvělý příklad toho, proč Apple pokračuje v tahu proti Microsoftu na poli marketingu. Jednoduše řečeno, Apple má hezčí jména svých mazlíčků. Tak například: Microsoft vytvořil sofistikovanou blokově orientovanou kontrolu verzí a záloh/obnovy pro Windows Vista a nazývá jej mizerným jménem: Předchozí verze. Apple přišel s horším zálohovacím řešením, které obsahují super „Star Trekovské" uživatelské rozhraní a celý IT průmysl vyzvedává Time Machine (V překladu Stroj času, pokud jste se nad tím nezamysleli).

Podobná věc se děje i s Grand Central Dispatch. Apple zabudoval do jádra paralelismus, který funguje s vícejadernými procesory (něco co Microsoft udělal již před třemi lety ve Vistách, technicky lepším řešením Executive NT) a začal vyvolávat do světa, že se jedná o exkluzivní technologii Maců. Příště až uslyšíte něco o tom, jak je nový Grand Central Dispatch super v Mac OS X Snow Leopardovi, zkuste dělat totéž, co tučňáci v Madagaskaru - Smějte se a mávejte.


Tolik původní článek z Infoworldu Protože zde bylo řečeno spousta věcí se kterými zcela nesouhlasím, rozhodl jsem se jim podívat na zoubek. Asi jádrem celého článku je Grand Central Dispatch, který je podle autora článku ne příliš efektivní a značně pozadu oproti tomu, co má Microsoft. Tak se podívejme co má Microsoft:

Ve Windows 7 existuje něco, čemu se říká User Mode Schedule, který poskytuje nový model pro velmi výkonné aplikace, které mohou kontrolovat spouštění vláken pomocí toho, že dovolí aplikacím pracovat, čekat a vůbec je ovládat pomocí blokování systémových volání. Jinými slovy, aplikace může přepnout uživatelské vlákna kompletně do uživatelského módu bez nutnosti jít přes plánovač kornelu. To prý uvolňuje práci kernelu, který tak nemusí zbytečně blokovat proces. Podle mne se však jedná o předelegování povinností z kernelu na aplikace. Konečným důsledkem nemůže být nic jiného, než že tento přístup bude fungovat jen u některých aplikací. A v principu jsme zpět u kooperativního multitaskingu z Mac OS 9. Nezapomeňte, že základní teze u vícejaderných/víceprocesorových systémů stále platí. Systém může provádět tolik souběžných úloh najednou, kolik má jader/procesorů (a platí to i s hyperthreadingem, ten totiž svým způsobem pouze optimalizuje chod procesoru). Nicméně to jsou jen mé názory a praxe může být jiná. Rád se nechám poučit, proto jsou tu ostatně komentáře.

Šéf vývoje a strategie v Microsoftu Craig Mundie k tomu řekl: „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 windows funkce, která je dotčena tímto přístupem je plánovací model v uživatelském módu. Stávající plánovač ve Windows běží "na příliš vysoké vrstvě". Současně udává, že všechny tyto a další nástroje jsou v nové knihovně Robotics Development Kitu.

Knihovny uvnitř RDK jsou zajímavé nejen proto, že je to základní nástroj pro ovládání robotů, ale take pro použité knihovny. Z nich nejzajímavější a patřící do kontextu tohoto článku je Concurrency and Coordination Runtime (CCR).

Článek Microsoftu ohledně této technologie je hodně plný marketingu, takže se z něj pokusím vytáhnout to nejdůležitější: CRC stejně jako Grand Central Dispatch usnadňuje vytváření vláken. CCR nabízí vysoce výkonné pole vláken (nevím jestli je to správný překlad thread pool). Toto pole umožňuje úžasnou rozšiřitelnost a maximalizuje souběžnost v aplikaci. Knihovna je pochopitelně napsána v objektovém C a podle kódu, její implementace mi přijde trochu víc zběsilá, než jak je tomu u GCD. Ostatně můžete to posoudit sami. Bohužel mé znalosti programování mi sice umožňují alespoň trochu číst kód, nicméně si netroufám něco napsat. Proto bych pro srovnání odkázal články pana Čady na můjmacu.

Závěrem k CCR by řekl, že se jedná o jiný přístup multithreadingu a nemám dostatek znalostí k tomu, abych mohl posoudit zda je lepší či horší. V každém případě se ale domnívám, že implementace je trochu složitější než to co nabídl Apple. Nehledě na to, že implementace je možná pouze pod Windows. Řešení Apple se již ujalo na OpenBSD.

Co se týče Time Machine si myslím, že zde autor také ujel. Poodhlédněme od GUI Time Machine a podívejme se na Previous Versions. Rozbalením kontextové nabídky se zobrazí možnost „Restore previous versions". V dialogovém okně pak vidíte seznam různých verzí souboru/složky kterou chcete obnovit s daty změny. Klepnutím na otevřít si můžete zrevidovat zda se jedná o správnou verzi a po klepnutí na tlačítko Restore, bude obnoven do původního místa. (Dialog ještě upozorňuje na to, že původní verze budou přepsány (je zde však možnosti kopírování). Toť vše. Z hlediska Time Machine to dělá totéž. I když s mizerným GUI.:-)

Ale podívejme se trochu pod kapotu. Previous Versions využívá technologii Shadow copy (Nazývanou také Volume Snapshot Service - VSS), která se poprvé objevila ve Windows 2003 serveru. Ta umožňuje manuální nebo automatickou kopii dat, i v případě, že jsou uzamčena. Ve Windows ji uvidíte jako službu nazývanou Volume Shadow Copy service.
VSS využívá blokového čtení souborového systému. Otisky mají dva hlavní důvody: dovolují vytváření konzistentních záloh disku, zajišťující, že se obsah nebude měnit během vytváření zálohy, čímž obcházejí problémy se zamykáním souborů. Vytvořením kopie disku určené pouze pro čtení jsou pak záložní programy schopné přistupovat ke všem souborům bez omezení. Zdá se vám to jako něco zcela odlišného od toho, co provádí Time Machine? Máte pravdu. Shadow Copy totiž má s Time Machine velmi málo společného a není ani náhodou příbuzný s Time Machine v tom co dělá, jak to dělá a proč existuje. Ostatně Time Machine a Shadow Copy jsem se již věnoval v článku Cesta k Time Machine.

Poslat Apple marketingově vyfoukl Microsoftu multijádro na facebook
Publikováno 22.10.2009
 

Změna barev | Autorská práva | Kontakt | Podpora | RSS kanály
© 2006 Gandalf, Design by Mirek
Creative Commons License