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 20:44 | Zajímavý software

    Byly publikovány zdrojové kódy počítačové hry Unturned. Pro nekomerční účely. V plánu je přelicencování pod MIT. Hra Unturned je postavena nad multiplatformním herním enginem Unity.

    Ladislav Hagara | Komentářů: 0
    dnes 15:55 | IT novinky

    První česká družice navržená a sestavená výhradně studenty se dostala na oběžnou dráhu Země. Družice KOSTKA, kterou vyvinul studentský tým YSpace z Vysokého učení technického v Brně (VUT), dnes odstartovala na palubě rakety Falcon 9 společnosti SpaceX v rámci mise Transporter-17 z kalifornské základny Vandenberg Space Force Base.

    Ladislav Hagara | Komentářů: 0
    dnes 05:00 | IT novinky

    Po nákresech ovladače Steam Controller a puku společnost Valve na svém GitLabu publikovala projekt Inkterface, tj. podrobný návod (PDF, video v mp4) na sestavení předního panelu s e-papírovým displejem pro Steam Machine pro zobrazování systémových informací. Použity jsou součástky od společnosti Adafruit.

    Ladislav Hagara | Komentářů: 0
    dnes 04:00 | Bezpečnostní upozornění

    V jádře Linux byla nalezena a v dubnu letošního roku v upstreamu opravena kritická zranitelnost Bad Epoll aneb CVE-2026-46242. Jedná se o zranitelnost typu "race-condition use-after-free", která běžnému uživateli umožňuje získat práva roota. Na distribucích Linuxu i na Androidu. Dokonce i zevnitř sandboxu prohlížeče Chrome. Chyba byla do Linuxu zavedena v dubnu 2023, tj. Linux 6.4.

    Ladislav Hagara | Komentářů: 0
    včera 23:22 | Nová verze

    Byla vydána nová verze 10.4 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu důležitých bezpečnostních oprav, vylepšení funkcí a oprav chyb. Vyzkoušet lze experimentální podporu postkvantového algoritmu mldsa44-ed25519.

    Ladislav Hagara | Komentářů: 0
    včera 16:33 | Zajímavý projekt

    Open Printer je otevřená kompaktní tiskárna od Open Tools. Brzy by měla být spuštěna kampaň na její podporu na Crowd Supply. Současně by měly být uvolněny zdrojové kódy. Postavena je na Raspberry Pi Zero W a STM32. Používá inkoustové kazety HP 302.

    Ladislav Hagara | Komentářů: 2
    včera 15:11 | Nová verze

    Byla vydána nová verze 3.28.0 FreeRDP, tj. svobodné implementace protokolu RDP (Remote Desktop Protocol). Opraveno bylo 8 zranitelností.

    Ladislav Hagara | Komentářů: 0
    4.7. 23:33 | IT novinky

    Čeští policisté společně se svými tureckými kolegy zadrželi 51 lidí, kteří se podle kriminalistů podíleli na provozu podvodného call centra v Istanbulu. Skupina je spojena s 1173 případy podvodů na českých občanech, při kterých vznikla škoda přes 553 milionů korun.

    Ladislav Hagara | Komentářů: 7
    3.7. 03:55 | Nová verze

    Immich byl vydán v nové verzi 3.0.0. Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.

    Ladislav Hagara | Komentářů: 5
    3.7. 02:55 | IT novinky

    Společnost Juno Computers prodávající počítače s předinstalovaným Linuxem má nově v nabídce linuxový tablet Juno Tab 4 - WiFi. Na výběr je Debian, Ubuntu a Kubuntu. Předobjednat jej lze za 949 liber (26 500 korun).

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (10%)
     (8%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (16%)
     (25%)
    Celkem 2072 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Grand Central Dispatch

    30.8.2009 14:40 | Přečteno: 1974× | 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.