Portál AbcLinuxu, 30. dubna 2025 17:10

QtJobs - multithreadujeme nemultithreadovatelné

22.8.2010 17:27 | Přečteno: 1027× | Programování | poslední úprava: 22.8.2010 21:03

Naprogramoval jsem program QtJobs, primárně pro článek Grafické programy v Qt 4 – 11 (vláknování s QThreadPool). Slouží k paralelnímu spouštění uživatelsky zadaného příkazu na zadané soubory v tolika vláknech, kolik je ideální pro systém, na kterém program běží (případně si můžete zvolit vlastní počet vláken). Znáte-li program xjobs, tak můj program by se dal považovat za něco podobného s GUI.

Do perexu jsem zkopíroval info z mýho webu, podrobnější řeči o jeho používání a screenshoty najdete ve výše odkazovaném článku.

Teď mi jde o to o programu trochu rozšířit povědomí a zjistit, jestli se někomu hodí. Jak si možná pamatujete, psal jsem minule o tom, že už mě unavují zpátečnické metody optimální pro hardware z pravěku. Tohle je v podstatě pokračování. Rozhodl jsem se se situací trochu pohnout. Původně jsem psal podobný program pro tátu na hromadnou úpravu fotek, protože on zrovna nelibuje příkazovce a chtěl něco extrémně jednoduchýho. Tohle je v podstatě vylepšená a zobecněná verze toho původního programu.

Jak ten tvuj zázrak teda vyzkouším?

Řekl bych, že je to prostý jak bulharská striptérka.

# nejdřív stáhnem aktuální zdrojáky
git clone git://repo.or.cz/qtjobs.git
# potom vygenerujeme binární soubor lokalizace (zatím jen česká, nativní je english)
lrelease qtjobs.pro
# vygenerujeme Makefile a sestavíme #ve 4 vláknech
qmake && make #-j4
# spustíme program
./qtjobs

Na prvním tabu je třeba přidat soubory, na které bude po jednom (souboru) spouštěn daný příkaz dle předpisu. Na druhém tabu je třeba vyplnit předpis příkazu, nastavit spuštění celýho cirkusu. Je tam i podpora profilů, abyste to furt nemuseli vyplňovat dokola. Později můžu třeba dodat nějakej výchozí seznam profilů, aby to člověk mohl hned zkusit. Na třetí tab vás to samo přepne, když stisknete tlačítko "Spustit", které je na tom druhém. Uvidíte tam celkový průběh, seznam běžících příkazů, seznam úspěšně zpracovaných souborů a seznam příkazů, které selhaly. Až to celé doběhne, skočí na vás dialog, že vše proběhlo OK nebo že došlo k chybám. Příkazy lze zastavit (doběhnou ty co již běží a tradá) nebo zabít (mluví za vše: okamžité ukončení procesů).

Když to vyzkoušíte a najdete chybu nebo chyby, řekněte mi prosím o tom. Zrovna tak beru dobrý nápady na nový vlastnosti. Něco už jsem si sám navymejšlel v TODO.

Update: PKGBUILD.

       

Hodnocení: 67 %

        špatnédobré        

Anketa

QtJobs
 (37 %)
 (5 %)
 (58 %)
Celkem 19 hlasů

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

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

22.8.2010 19:02 Mandarinka
Rozbalit Rozbalit vše Re: QtJobs - multithreadujeme nemultithreadovatelné
Odpovědět | Sbalit | Link | Blokovat | Admin
Rejp rejp... úprava vícera fotek mi přijde jako všechno jen ne nemultithreadovatelná věc.
David Watzke avatar 22.8.2010 19:42 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: QtJobs - multithreadujeme nemultithreadovatelné
Ano, zrovna convert se umí roztahovat a to ho taky šlechtí :-)
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
22.8.2010 19:12 Dadam | skóre: 12 | blog: dadamovo
Rozbalit Rozbalit vše Re: QtJobs - multithreadujeme nemultithreadovatelné
Odpovědět | Sbalit | Link | Blokovat | Admin
To nastavení spuštění bych udělal jako radio button. Jinak pěkný.
A i B mají svoje výhody a nevýhody. Vyberte si to, co vám vyhovuje víc, a necpěte A tam, kam patří B.
David Watzke avatar 22.8.2010 19:44 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: QtJobs - multithreadujeme nemultithreadovatelné
Myslíš jako buď autodetekce nebo zadanej počet vláken? To zní logicky.
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon
Limoto avatar 22.8.2010 19:14 Limoto | skóre: 32 | blog: Limotův blog
Rozbalit Rozbalit vše Re: QtJobs - multithreadujeme nemultithreadovatelné
Odpovědět | Sbalit | Link | Blokovat | Admin
Proč to není v AURu?
David Watzke avatar 22.8.2010 19:43 David Watzke | skóre: 74 | blog: Blog... | Praha
Rozbalit Rozbalit vše Re: QtJobs - multithreadujeme nemultithreadovatelné
Protože si to tam ještě nedal :-D
“Being honest may not get you a lot of friends but it’ll always get you the right ones” ―John Lennon

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.