abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 15:55 | Zajímavý projekt

Evropská kosmická agentura (ESA) s nadací Raspberry Pi vyhlásily další ročník soutěže pro studenty s názvem European Astro Pi Challenge o co nejzajímavější využití počítačů Astro Pi, tj. Raspberry Pi s rozšířením Sense HAT, na Mezinárodní vesmírné stanici (ISS). Pro inspiraci vítězné projekty z 2018/2019.

Ladislav Hagara | Komentářů: 2
dnes 12:00 | IT novinky

Společnost PINE Microsystems oznámila, že vedle miniaturních jednodeskových počítačů ROCKPro64, ROCK64, PINE H64 nebo PINE A64, notebooků Pinebook a Pinebook Pro, tabletu PineTab, chytrého mobilního telefonu PinePhone nebo IP kamery CUBE, vyvíjí také chytré hodinky PineTime. Jejich cena by měla být 25 dolarů.

Ladislav Hagara | Komentářů: 17
dnes 05:55 | Nová verze

Po 10 týdnech vývoje od vydání Linuxu 5.2 oznámil Linus Torvalds vydání Linuxu 5.3 (LKML). Přehled nových vlastností a vylepšení na stránce Linux Kernel Newbies. Nově je například povolen síťový rozsah 0.0.0.0/8. Kódové jméno Linuxu 5.3 zůstává Bobtail Squid.

Ladislav Hagara | Komentářů: 2
dnes 04:44 | Komunita

Mozilla nabídne firmám placenou podporu Firefoxu. Cena by se měla pohybovat okolo 10 dolarů za podporovanou instalaci.

Ladislav Hagara | Komentářů: 17
13.9. 22:00 | Nová verze

Po roce a čtvrt od vydání verze 12.0 byla vydána verze 13.0 zvukového serveru PulseAudio. Přehled novinek v poznámkách k vydání. Zmínit lze například podporu Dolby TrueHD a DTS-HD Master Audia.

Ladislav Hagara | Komentářů: 2
13.9. 16:33 | Zajímavý projekt

Blockchainový projekt Tezos nedávno prošel procesem hard-forku a zrodil se nový projekt Dune Network. Držitelé XTZ tokenů si již bezpečně mohou vyzvednout své DUN tokeny a delegovat je na nějakou z veřejných Dune baker služeb jako je třeba Dune Whale.

Mark Stopka | Komentářů: 9
12.9. 23:33 | Komunita

Na Humble Bundle lze zdarma na Steamu získat Endless Space Collection, tj. počítačové hry Endless Space a Endless Space - Disharmony. Endless Space Collection je oficiálně pro Windows a macOS. Díky Protonu ale také pro Linux. Speciální akce končí v sobotu v 19:00.

Ladislav Hagara | Komentářů: 3
12.9. 20:44 | Bezpečnostní upozornění

Společnost AdaptiveMobile Security zveřejnila informace o možných útocích na SIM kartu. Útočník může pomocí SMS řídit SIM kartu a skrze ní mobilní telefon oběti. Více na stránce Simjacker.

Ladislav Hagara | Komentářů: 15
12.9. 19:44 | Nová verze

Po půl roce vývoje od vydání verze 3.32 bylo vydáno GNOME ve verzi 3.34 s kódovým názvem Thessaloniki. Videoukázka na YouTube. Vydání obsahuje 23 929 změn od přibližně 777 přispěvatelů. Přehled novinek i s náhledy v již přeložených poznámkách k vydání a v novinkách pro vývojáře a správce systémů.

Ladislav Hagara | Komentářů: 15
12.9. 11:22 | Pozvánky

Největší česká linuxácká akce LinuxDays 2019 má hotový program. Těšit se můžete na přednášky, workshopy, stánky a spoustu doprovodného programu. Zároveň s programem byla také spuštěna registrace účastníků, takže se můžete přihlašovat. Vstup je jako obvykle zdarma. Konference LinuxDays se uskuteční 5. a 6. října v pražských Dejvicích na FIT ČVUT.

Petr Krčmář | Komentářů: 7
Kdy jste naposledy viděli počítač s připojeným běžícím CRT monitorem?
 (22%)
 (3%)
 (11%)
 (32%)
 (30%)
 (2%)
Celkem 130 hlasů
 Komentářů: 15, poslední včera 16:45
Rozcestník

Grand Central Dispatch

30.8.2009 14:40 | Přečteno: 1682× | Apple | poslední úprava: 30.8.2009 18:19

V souvislosti s uvedením Snow Leoparda se často mluví o technologii Grand Central Dispatch. Jedná se o relativně komplikovanou záležitost a asi z toho důvodu komentátoři většinou pouze opakují obecný pois ze stránek Apple, nebo co zaslechnli na WWDC. O co tedy vlastně jde? Předně je třeba říct, že se nejedná o nic nového natož pak revolučního. Existuje už několik velmi podobných implementací, pokud např. znáte Intel TBB, Qt Concurrent, Clik++ pak nemusíte v podstatě dále číst.

Microsoft chystá do VS 2010 hezky vypadající implementaci Concurrency Runtime. Doporučují prohlédnout si příklad, oproti normálnímu C++ jsou tam navíc jen lambda výrazy, na kterých to celé stiojí. Jedná se o provedení nějaké operace nad prvky nějaké kolekce a to s takovou mírou paralelity, jakou uzná za vhodné operační systém (resp. nějaký runtime nad ním). A to vše bez použití (sprostého?) slova thread.

Tady je jiný hezký příklad, který při prohledávání stavového prostoru na místech, kde by se algoritmus mohl vydat různými směry tak se rozmnoží a výpočet pokračuje všemi možnými směry současně (něco milovníky NDTM ;-) ). A to aniž by se ve zdrojáku kdekoliv vyskytlo (sprosté?) slovo thread.

Z těch příkladů je patrné, že se jedná o vytvoření programovacího paradigmatu, který:

Konečně zpět k GCD. Je mechanismus, který pro každý proces využívající GCD spravuje thread pool a jednu nebo více front (s prioritami) obsahujících "bloky práce", které je třeba vykonat. GCD na základě dostupných zdrojů a znalosti front z jiných procesů vybírá bloky z front, přiřazuje je threadům z thread poolu a tím je provádí. Když programátor narazí na místo, které bybylo vhodné paralelizovat tak vytvoří několik "bloků práce" a hodí je do fronty případně může nechat vytvářet bloky v reakci na nějakou událost (např. časovač nebo socket). Čas na příklad.

Mějme cyklus
for (i = 0; i < count; i++) {

  //dělej něco s i

}
ve kterém nezáleží na pořadí provádění jednotlivých iterací. Pak ji můžeme paralelizovat takhle:
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);

 

dispatch_apply(count, queue, ^(size_t i) {

   //dělej něco s i

});
dispatch_apply vytvoří count lambda výrazů a každému z nich předa příslušnou hodnotu parametru i (tím se z nich stanou bloky) a hodí je do fronty. Blok je closure, ani nevím, jak se to řekne česky. Skončí až se celá fronta vyprázdní. Blok nemusí být definován přímo v seznamu parametrů, tzn. jako anonymní, deklaruje a definuje se velice podobně jako ukazatel na funkci. Místo hvězdičky se píše stříška. Je to edy syntaktické rozšíření C, C++ a Objective-C. Více k tomu zde. C++0x lambdy vypadají jinak a nejsou closure.

To je celý základ, zbytek je omáčka okolo- lze definovat callback, který se zavolá po dokončení bloku, lze použít semafory k omezení přístupu k limitovaným zdrojům jako např. připojení k databázi, fronty lze pozastavit, určit priority...

Čekali jste něco, co samo pozná, co se kde dá paralelizovat, vyřeší race conditions a deadlocky? Doufám, že ne páč se nic takového nekoná. Čekali jste zajímavou implementaci abstrakce nad thready s plánováním ne na úrovni procesu ale na úrovni celého systému? Pak jste se trefili.

Největším problémem GCD podle mně je, že je ukrutně platformově závislý. V multiplatformních aplikacich se to z toho důvodu asi moc používat nebude.        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Vložit další komentář

Aleš Janda avatar 30.8.2009 14:49 Aleš Janda | skóre: 22 | blog: kýblův blog | Kralupy nad Vltavou
Rozbalit Rozbalit vše Re: Grand Central Dispatch
Díky za pěkný článek. Umí něco takového gcc?
frEon avatar 30.8.2009 17:31 frEon | skóre: 40 | Praha
Rozbalit Rozbalit vše Re: Grand Central Dispatch
Pekny clanek. Jinak closure je myslim cesky uzaver.
Talking about music is like dancing to architecture.
30.8.2009 18:00 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
Rozbalit Rozbalit vše Re: Grand Central Dispatch
Dobrý článek. Sice se v těch paralelizačních knihovnách nevyznám, ale nedávno jsem četl článek o KDEčkovém (i když tam prý žádná závislost na KDE není) ThreadWeaveru a bylo mi to hodně sympatické. Tohle mi připadá podobné A pokud to je na úrovni celého operačního systému, tím líp.

Je to mimochodem i jeden z pěkných případů použití lexikálních uzávěrů. Jako javista tiše závidím :-)
Ještě na tom nejsem tak špatně, abych četl Viewegha.
thingie avatar 30.8.2009 18:02 thingie | skóre: 8
Rozbalit Rozbalit vše Re: Grand Central Dispatch
Paralelizaci. (Ale třeba to fulltextové hledání zvládne nějak ošidit.)
Růžové lži.
30.8.2009 21:06 Yenda | skóre: 8
Rozbalit Rozbalit vše Re: Grand Central Dispatch

MS CR nestoji na lambda výrazech.  CR můžete používat i bez lambda, ale je to opruz -- prakticky stejně smutný případ jsou algoritmy v C++ STL.

Něco podobného umožňuje OMP, kde ten paralelismus vyjádříte pomocí #pragma (v C++) anotací a kompilátor si obstará veškerou "administrativu", jako správu vláken, dělení úlohy mezi vlákna, redukce, atd. Tuším, že úloha z MS dokumentace by vypadala přibližne takhle

array<int, 5> values = { 1, 2, 3, 4, 5 };
#pragma omp parallel for
for(int i = 0; i < 5; i++) {
  values[i] *=  values[i];
}
 

Daniel Kvasnička ml. avatar 1.9.2009 08:24 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
Rozbalit Rozbalit vše Re: Grand Central Dispatch
Největším problémem GCD podle mně je, že je ukrutně platformově závislý.
Jezkovy... to je prave jeho nejvetsi vyhodou. Jak jsi sam psal, v principu to neni nic zas tak prevratneho. V cem to ale prevratne je, je prave ta integrace do systemu a dostupnost pro kazdeho vyvojare a program pouzivajici 10.6. To same OpenCL. Nemusis resit nejaky vyber knihoven, verzi a podobnych kravin. Poridis si 10.6, na web napises, ze ho tvuj SW vyzaduje a tecka. Proc by to mel Apple delat multiplatformni? Co by z toho mel?
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
kotyz avatar 1.9.2009 10:44 kotyz | skóre: 25 | blog: kotyzblog | Radnice
Rozbalit Rozbalit vše Re: Grand Central Dispatch
Apple mozna nic, ale uzivatele ostatnich platforem by z toho mohli mit uzitek ;-)
Mul-ti-pass! | Hrdý člen KERNEL ULTRAS. | Furry/Brony/Otaku | Nemám čas ztrácet čas. | In 'pacman -Syu' we trust!
1.9.2009 16:06 miho | skóre: 22 | blog: Mihovy_sochory | Orlová
Rozbalit Rozbalit vše Re: Grand Central Dispatch

Ano, jistota, že každý uživatel 10.6 má GCD je výhodou. Optimistický odhad Applu je, že do roka bude mít 10.6 40 % uživatelů takže teď bude vytvářet aplikaci závislou na GCD jen dobrodruh. Není to nic proti Apple, naopak je to super výkon, za tři roky přešlo na Vistu jen 23 % uživatelů Windows. Stejně tak je super, že každý uživatel Windows má .net framework hned po instalaci systému. Jak to ale souvisí s větou, na kterou reaguješ?

Tu poslední otázku doufám nemyslíš vážně. Vzhledem k množství multiplatformního softu pro Mac OS je mimořádně hloupá.

Daniel Kvasnička ml. avatar 4.9.2009 09:30 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
Rozbalit Rozbalit vše Re: Grand Central Dispatch
Stejně tak je super, že každý uživatel Windows má .net framework hned po instalaci systému.
To je asi tak super, jako ze kazdy uzivatel Mac OS X ma Cocoa hned po instalaci systemu, nebo to same s Ubuntu a GTK+ ;-)
Jak to ale souvisí s větou, na kterou reaguješ?
Souvisi to s ni tak, ze kdyby GCD mel byt multiplatformni, bylo by mnohem tezsi ho tolik zadratovat do systemu. Vzhledem k rozdilum mezi kernely jednotlivych mainstream OS...
Tu poslední otázku doufám nemyslíš vážně. Vzhledem k množství multiplatformního softu pro Mac OS je mimořádně hloupá.
Tak jeste jednou. Co by Apple mel z toho, kdyby GCD delal multiplatformni? Kudy by se mu vratily investice do takoveho podniku? Ze by multiplatformni aplikace, ktere jsou mj. i pro Mac, mohly pouzivat GCD i jinde nez na Macu? ... :-) Multiplatformni aplikace samozrejme budou moci GCD i OpenCL pouzivat stejne jako aplikace nativni, akorat jen pokud pojedou na Macu. To je pro Apple prave konkurencni vyhoda.
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
5.9.2009 17:32 miho | skóre: 22 | blog: Mihovy_sochory | Orlová
Rozbalit Rozbalit vše Re: Grand Central Dispatch

Využívat můžou ale dělat to nebudou. Pochybuju, že by kvůli jediné platformě začal v těch nejhlubších výpočetních vrstvách aplikace někdo #IFDEFovat.

Daniel Kvasnička ml. avatar 5.9.2009 21:43 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
Rozbalit Rozbalit vše Re: Grand Central Dispatch
No on ten rozdil je (a bude) na nekterych grafikach oproti CPU tak svinsky velky, ze u nekterych specifickych aplikaci se IFDEFovat bude, protoze by byl hrich to nevyuzit. Navic brzy urcite vzniknou wrappery pro dalsi jazyky (pro Javu uz tusim je, pro Obj-C samozrejme uz taktez) a tak to bude mozne vyresit i mene prasackym zpusobem nez prostym vetvenim programu.... proste budes mit rozhrani a nekolik implementaci, z nichz se spravna zvoli podle toho, na cem zrovna bezis...
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."
Daniel Kvasnička ml. avatar 5.9.2009 21:44 Daniel Kvasnička ml. | skóre: 52 | blog: The Joys and Sorrows of Being an IT Freak | Ostrava
Rozbalit Rozbalit vše Re: Grand Central Dispatch
To s tou grafikou bylo mysleno na OpenCL...
FSF: “screw you for not wanting the stuff we produce”, People: “screw you for not producing the stuff we want."

Založit nové vláknoNahoru

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.