abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 18:22 | Nová verze

    Qtractor (Wikipedie) dospěl do verze 1.0.0. Jedná se o Audio/MIDI vícestopý sekvencer.

    Ladislav Hagara | Komentářů: 0
    dnes 14:33 | Nová verze

    Byl vydán svobodný kancelářský balík OnlyOffice Docs 8.1. Vedle četných oprav přináší několik funkcí včetně podpory editace textu v PDF a vytváření formulářů v PDF.

    Fluttershy, yay! | Komentářů: 11
    dnes 12:33 | Zajímavý článek

    Daniel Stenberg, autor nástroje curl, z databáze SteamDB zjistil, že aktuálně 22 734 her na Steamu používá curl.

    Ladislav Hagara | Komentářů: 4
    včera 19:55 | IT novinky

    Společnost Anthropic vydala Claude 3.5 Sonnet, tj. novou verzi své umělé inteligence Claude (Wikipedie). Videoukázky na YouTube. S Claude 3, stejně jak s GPT-3.5, Llama 3 a Mixtral, si lze pokecat bez přihlašování na DuckDuckGo AI Chat.

    Ladislav Hagara | Komentářů: 0
    včera 16:55 | Nová verze

    Byla vydána nová stabilní verze 6.8 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 126. Přehled novinek i s náhledy v příspěvku na blogu a na YouTube. Vypíchnuta jsou vylepšení v integrovaném poštovním klientu.

    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Zajímavý článek

    Příspěvek Aukce domén – měsíc po spuštění na blogu CZ.NIC shrnuje první měsíc provozu Aukce domén .CZ. Aukcemi prošlo celkem 18 174 domén, z toho na 742 z nich byl učiněn alespoň 1 příhoz. Nejdražší aukcí byla na doménu virtualnisidlo.cz s cenou 95 001 Kč, která však nebyla včas uhrazena. Nejdražší aukcí, která byla vydražena i zaplacena je praguecityline.cz s cenovkou 55 600 Kč.

    Ladislav Hagara | Komentářů: 15
    včera 11:11 | IT novinky

    Před 40 lety, 19. června 1984, Bob Scheifler představil první verzi okenního systému X (X Window System). Vycházela z okenního systému W (W Window System).

    Ladislav Hagara | Komentářů: 44
    včera 11:00 | Nová verze

    Desktopové prostředí MATE bylo vydáno ve verzi 1.28. V gitových repozitářích je sice už od února, ale oznámení vydání se na webu objevilo s několikaměsíčním zpožděním (únorové datum zveřejnění je nepravdivé). Jde o první velké vydání od roku 2021. Uživatelsky nejvýznamnější pokrok je v podpoře Waylandu.

    Fluttershy, yay! | Komentářů: 0
    19.6. 21:44 | Nová verze

    Laboratoře CZ.NIC vydaly novou verzi 4.24.0 aplikace Datovka, tj. svobodné multiplatformní desktopové aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi. Přidány byly nové parametry do rozhraní příkazové řádky „export-msg“, „export-msgs“, „import-msg“ a „import-msgs“, které dovolují číst/zapisovat zprávy z/do databází. Veliký panel nástrojů byl nahrazen více nastavitelnými

    … více »
    Ladislav Hagara | Komentářů: 0
    19.6. 12:11 | Nová verze

    Mapnik (Wikipedie), tj. open source toolkit pro vykreslování map a vývoj mapových aplikací, byl vydán ve verzi 4.0.0. Přehled změn na GitHubu.

    Ladislav Hagara | Komentářů: 1
    Rozcestník

    Grand Central Dispatch

    30.8.2009 14:40 | Přečteno: 1775× | 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: 23 | blog: kýblův blog | Praha
    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 | Plzeň
    Rozbalit Rozbalit vše Re: Grand Central Dispatch
    Apple mozna nic, ale uzivatele ostatnich platforem by z toho mohli mit uzitek ;-)
    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: 24 | 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: 24 | 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.