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 06:22 | Pozvánky

V úterý 28. listopadu se v Brně koná již 4. přednáškový večer Ruby Stories. Těšit se můžete na témata jako TDD, hybridní mobilní aplikace či programování v Elixiru. Více informací na Facebooku nebo se rovnou registruj na Eventbrite. Na místě bude zdarma drink a lehké občerstvení, tak dorazte.

ondrej-zadnik | Komentářů: 0
dnes 06:11 | Pozvánky

V úterý 28. 11. 2017 bude další Prague Containers Meetup. DC/OS a Mesos vás provede Mesosphere's Developer Advocate Matt Jarvis.

little-drunk-jesus | Komentářů: 0
včera 14:44 | Komunita

Mozilla.cz informuje, že Firefox bude možná upozorňovat na úniky vašich hesel. V Mozille prototypují upozorňování na únik informací o vašem účtu, pokud se na seznamu Have I been pwned? objeví služba, ke které máte ve Firefoxu uložené přihlašovací údaje. Informace se objevila v pravidelném newsletteru o vývoji Firefoxu.

Ladislav Hagara | Komentářů: 5
včera 00:22 | Bezpečnostní upozornění

Společnost ZONER informuje o bezpečnostním incidentu, při kterém došlo ke zcizení a zveřejnění části přihlašovacích údajů zákazníků k elektronické poště a webhostingu CZECHIA.COM.

Ladislav Hagara | Komentářů: 0
22.11. 23:44 | Nová verze

Byla vydána nová stabilní verze 1.13 (1.13.1008.32) webového prohlížeče Vivaldi (Wikipedie). Z novinek vývojáři zdůrazňují možnost zobrazení otevřených i uzavřených listů pomocí ikonky Okno na postranní liště a vylepšené stahování (YouTube). Nejnovější Vivaldi je postaveno na Chromiu 62.0.3202.97.

Ladislav Hagara | Komentářů: 9
22.11. 20:55 | Nová verze

Byla vydána verze 2017.3 dnes již průběžně aktualizované linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux. Aktualizovat systém lze pomocí příkazů "apt update; apt dist-upgrade; reboot". Z novinek lze zmínit 4 nové nástroje: InSpy, CherryTree, Sublist3r a OSRFramework.

Ladislav Hagara | Komentářů: 1
22.11. 01:55 | Bezpečnostní upozornění

Společnost Uber potvrdila bezpečnostní incident a únik dat v roce 2016. Unikly údaje o 57 milionech cestujících (jména, emailové adresy a čísla mobilních telefonů) a 600 tisících řidičích (navíc čísla řidičských průkazů).

Ladislav Hagara | Komentářů: 1
21.11. 23:44 | Humor

Co vypíše příkaz man půl hodiny po půlnoci? Text "gimme gimme gimme". Jedná se o virtuální velikonoční vajíčko připomínající skupinu ABBA a její hit Gimme! Gimme! Gimme! (A Man After Midnight). Problém nastane, pokud gimme gimme gimme nabourá automatizované testování softwaru. To se pak příkaz man musí opravit [Bug 1515352] [reddit].

Ladislav Hagara | Komentářů: 10
21.11. 18:11 | Zajímavý článek

Mozilla.cz informuje, že Firefox na Fedoře podporuje Client Side Decorations. Firefox na Linuxu se vykresluje včetně standardního záhlaví okna, které je v případě webového prohlížeče většinou nadbytečné a ubírá drahocenné vertikální místo na obrazovce. Verze distribuovaná uživatelům Fedory však nyní obsahuje experimentální podporu pro takzvané Client Side Decorations, které umožňují vykreslování „oušek“ panelů do záhlaví okna.

Ladislav Hagara | Komentářů: 12
21.11. 05:00 | Bezpečnostní upozornění

Maxim Goryachy a Mark Ermolov ze společnosti Positive Technologies budou mít v prosinci na konferenci Black Hat Europe 2017 přednášku s názvem "Jak se nabourat do vypnutého počítače, a nebo jak v Intel Management Engine spustit vlastní nepodepsaný kód". O nalezeném bezpečnostním problému informovali společnost Intel. Ta bezpečnostní problém INTEL-SA-00086 v Intel Management Engine (ME), Intel Server Platform Services (SPS) a Intel

… více »
Ladislav Hagara | Komentářů: 47
Jak se vás potenciálně dotkne trend odstraňování analogového audio konektoru typu 3,5mm jack z „chytrých telefonů“?
 (9%)
 (1%)
 (1%)
 (1%)
 (75%)
 (14%)
Celkem 756 hlasů
 Komentářů: 37, poslední 21.11. 15:21
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Vložit další komentář
    14.7.2014 14:00 pepa
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Diky, zas jsem se neco priucil... :)
    15.7.2014 12:00 panika
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    super clanek, taky dekuju
    16.7.2014 09:19 omg
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    hlavne se nauc priklady u --res prepinace.
    David Watzke avatar 16.7.2014 09:49 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    To je dobrá připomínka - jde o užitečný přepínač, který jsem v článku nezmínil. Ukládá standardní a chybový výstup každého spouštěného příkazu. Osobně preferuju přístup, že si to uložím sám (dává mi to větší flexibilitu při volbě názvu výstupních souborů), ale určitě se to někdy může hodit.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    14.7.2014 22:44 jama
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Skoda ze ten grep nenalezne vyskyty vyrazu pokud jsou zrovna na nejake hranici bloku.

    Rychly ale nepresny :).
    14.7.2014 22:53 chrono
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Ak sa grep používa na jednotlivé riadky (a normálny grep nič iné ani nevie), tak žiadny problém nie je (pretože, ako to už bolo napísané v článku, parallel dá do bloku vždy celý riadok).
    15.7.2014 00:20 ebik | skóre: 2
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    coz ma zase jine nevyhody - musi ten konec radku naijit, coz je operace, ktera trva zhruba tolik, jak jsou radky dlouhe (pokud je to napsano chytre)
    Nuphar avatar 14.7.2014 23:00 Nuphar | skóre: 17
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Dost dobrý. Sice to asi budu trávit docela dlouho a budu si to muset ještě minimálně jednou přečíst, ale je to hodně dobré. :-) Díky.
    Per aspera, Asparagus et Aspergillus ad a/Astra!
    15.7.2014 09:04 pet
    Rozbalit Rozbalit vše PŘEKLEP
    parallel --sshlogin node01.lan --trc /tmp/{/.}.wav oggdec {} -o /tmp/{/.}.wav ::: *.ogg

    Dodám, že {./} je nahrazeno za název ...
    Takže {./} nebo {/.}?
    David Watzke avatar 15.7.2014 09:44 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: PŘEKLEP
    Je to {/.} - díky za upozornění, opravil jsem to v článku.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    16.7.2014 09:32 Olga
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    16.7.2014 12:45 ebik | skóre: 2
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Super. Přesně tohle jsem si chtěl napsat, akorát jsem byl vždycky línej to v tu chvíli řešit.
    19.7.2014 12:28 v.podzimek | skóre: 17
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Pěkné, s xargs už jsem se kolikrát dost natrápil, abych dosáhl svého. Bude se nám to hodit pro spoustění pylintu na zdrojácích Anacondy.
    25.7.2014 09:36 Trubicoid2
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Jde nejak udelat ta funkce bez bashe, treba v dash? Tedy mam skript o vice radcich, co chci spustit na kazdy soubor
    David Watzke avatar 25.7.2014 09:38 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    To nevím. Osobně bych vytvořil skript (ideálně takový, který je schopný zpracovat více vstupních argumentů najednou, aby se nemusel spouštět tolikrát).
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    29.7.2014 11:27 ebik | skóre: 2
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Vyexportovat funkce pro bash lze. Využívá to toho, že bash exportuje funkce jako obyčejné proměnné. Jen to nemá tak pěknou syntaxi:
    #!/bin/dash
    
    Pozdrav="() {
      echo ahoj;
    }"
    export Pozdrav
    bash -c Pozdrav
    
    Je otázka ale jaký shell použije ten příkaz parallel. (Dá se pak asi z parallel spustit "bash -c Funkce" ale to už začíná být dost přes ruku.
    29.7.2014 10:04 nl + grep
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Dobrý článek, díky.

    Trochu mě "tahá za oči" ten příklad s nl | grep. Já vím že vymyslet krátké příklady které dělají aspoň trochu něco smysluplného je problém, ale tohle podle mého názoru není použitelné:

    Neměřil jsem to na reálných datech, ale podle mého názoru pokud už ten nl musí fakt ten soubor sekvenčně načíst, hledat \n a přidávat tam čísla řádků (= má data v cache procesoru), je už výrazně rychlejší na ta data rovnou pustit stavový automat pro ten hledaný regulární výraz. Řekl bych, že posíláním do roury a odtam do jiných procesů (a tedy přehazováním dat do cache jiných procesorů) se ztratí daleko víc času.

    Tohle je přesně ten případ, kdy devět žen neodnosí jedno dítě za měsíc a 60 kopáčů nevykope metr hlubokou jámu za minutu.

    -Yenya, http://www.fi.muni.cz/~kas/blog/
    30.7.2014 00:04 Marek
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Taky mě to napadlo, ale je to popsané v článku: hodí se to až když je ten regulární výraz kurva-složitej (nebo rychlej disk nebo pomalej (i ne-vícevláknovej) procesor (nebo kombinace předešlých)).

    První program dokončí svoji práci celkem rychle a pošle výstup druhému programu (grep), pak okamžitě může dál pokračovat v práci a předat druhý výstup další instanci grepu. Kdežto konvenční způsob by byl synchronní grep v jednom vláknu.

    Marek
    30.7.2014 13:31 nl + grep
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Složitý regulární výraz je tak jediná možnost, ovšem dost málo pravděpodobná. Délka vstupu bude omezená (vzhledem k tomu, že se bavíme o číslování řádků a tedy o RE, který ma matchovat jen v rámci řádku). Samozřejmě lze vymyslet patologický případ využívající například vnořené backreference nebo něco podobného, co by neumožnilo převést ten regulární výraz do konečného automatu. No ale článek samotný mluví dokonce jen o hledání substringu, což dost jistě odpovídá tomu co píšu - paralelizace je zde kontraproduktivní.

    Rychlý disk neudělá žádný rozdíl (resp. s pomalým není už vůbec žádný důvod paralelizovat).

    Pomalý procesor taky neudělá žádný rozdíl. V obou těchto případech nejde o rychlost ale o to, že je daleko dražší (ale fakt hodně!) zbavovat se dat, které už mám v cachi procesoru a posílat je jinému procesoru k tomu, aby s nimi něco udělal. To bychom leda museli uvažovat o procesoru bez cache :-) nebo o řádcích vstupu, které se nevejdou ani do sekundární cache procesoru (dnes řádově megabajty).

    Právěže není vůbec pravda, že by první program (nl) dokončil svou práci výrazně rychleji než třeba grep tak, aby vůbec mělo cenu uvažovat o tom tu práci rozdělit mezi víc procesů. Fakt si to zkuste.

    Ostatně tohoto triku "když už mám data v cache CPU, udělám s nimi co nejvíc výpočtů naráz" se využívá fakt hodně dlouho. Vizte třeba funkci copy_and_csum() v kernelu Linuxu tak 15 let zpátky - bylo daleko rychlejší zkopírovat síťový packet na místo určení a u toho zároveň počítat/kontrolovat kontrolní součet, než tyto věci dělat odděleně.

    -Yenya, http://www.fi.muni.cz/~kas/blog/
    30.7.2014 14:33 nl + grep
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Schválně si zkuste:
    cd /var/tmp
    wget http://ftp.linux.cz/pub/FILES.byname    # textovy soubor cca 1.1 GB
    for i in `seq 1 20` ; do time sh -c 'grep -n jezek FILES.byname >/dev/null'; done
    for i in `seq 1 20` ; do time sh -c 'nl FILES.byname | grep jezek >/dev/null'; done
    
    U mě první varianta běží cca 1.9 s reálného času (okolo 1.1 user, 0.8 system), druhá varianta 6.6 s reálného času (7.0 user, 1.5 system). Beru vždy nejrychlejší čas z těch 20 pokusů.

    Nicméně zdá se, že samotný výpočet nad daty z cache taky není úplně zadarmo - když spustím ten první případ bez -n (bez počítání čísel řádků), tak je to ještě o dalších 0.2 s rychlejší.

    -Yenya
    David Watzke avatar 30.7.2014 13:54 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Souhlasím, že tenhle příklad se mi moc nepovedl, ale aspoň jsem se snažil vysvětlit, proč se to nehodí vždy (i když jsi mě mnohem rozsáhleji a přesněji doplnil a za to děkuju). Napadá tě lepší příklad?

    Podle mě by bylo dobrý, kdyby parallel podporoval paralelní čtení z jednoho souboru - že by každý proces četl od jiného offsetu nějakou danou velikost, ale to by šlo samozřejmě jen tehdy, kdyby se nemusely hlídat konce řádků a práce by se rozdělovala dle fixní velikosti.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    30.7.2014 14:42 Yenya
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Nojo, když to není o podpoře v parallel, ale v těch spouštěných programech, které typicky čtou soubor dokud to jde (do konce souboru).

    Napadlo mě, že to by asi parallel musel LD_PRELOADovat něco, co by při pokusu o čtení určitého souboru nad nějakou mez vracelo konec souboru. Jakože by každému potomkovi otevřel ten stejný soubor, zavolal lseek() na patřičný offset, a pak by ten deskriptor předal třeba jako std. vstup, a přes LD_PRELOAD by zamezil čtení za tu část souboru, která patří tomu konkrétnímu potomkovi.

    No ale problém čísel řádků to neřeší.

    Lepší příklad mě nenapadá.

    -Yenya
    David Watzke avatar 30.7.2014 14:53 David Watzke | skóre: 74 | blog: Blog... | Praha
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Já jsem to myslel trochu jinak. Ty soubory ke zpracování bys zadal jako argumenty přímo tomu parallel a volaným programům by se pak chunky předávaly třeba na vstup nebo přes pojmenovanou rouru, atd.
    “Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
    31.7.2014 08:57 ebik | skóre: 2
    Rozbalit Rozbalit vše Re: Paralelizace běžných činností v konzoli pomocí GNU Parallel
    Jo, jenže předání chunku přes rouru znamená v jednom programu (parallel) ten chunk načíst, pak* zapsat do roury, která zkopíruje data do adresního prostoru druhého programu (včetně kopírování přes nějaké kernel buffery mezi). To potom ten parallel klidně může číst vstup sekvenčně a schovávat si data někde v paměti.

    *) trochu jsem to zjednodušil. Na linuxu myslím lze pomocí speciálních volání poslat data ze souboru do roury přímo, bez načítání do programu. Pořád tam je ale roura navíc, takže ze souborových cachí jdou data do bufferu roury a pak teprve do programu.

    Založit nové vláknoNahoru

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

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