Jsem byl zvědavý jak donutím jednu binárku využít více jader pokud tak sama nebyla napsaná :/.
Možná jsem to jen četl moc rychle, ale všechny ukázky pouze využívají spouštění více procesů zároveň v cyklu.
Navíc v závěru sami píšou, že bez využití distribuovaného spouštění to de facto odpovídá:
find . -name ‚*.wav‘ | xargs -n1 -P2 oggenc
Delam to rovnou z radky:
for a in img*[0–4]; do do_something $a; done
for a in img*[5–9]; do do_something $a; done
V ramci lenosti nejsou uvozovky okolo $a (protoze to pisu primo na radku a vidim, ze se vsechno jmenuje treba img[0–9][0–9][0–9], takze zrovna nejsou treba) a je to pustene ze dvou ruznych xtermu, protoze to je jednodussi okopirovat a pustit vedle, nez to davat na pozadi.
Yokotashi
chapadla.cz
Je fakt, že doma mám jen jedno PC s vícejádrovým procesorem a v práci na stole také jen jedno vícejádro. V bazarech je však jednojádrových procesorů stále ještě dost.
Také jsem řešil (a vyřešil) využití výkonu všech jader. Jenom mi není jasné, proč je zmiňovaný program tak velký. Ten můj sice není žádný zázrak, ale 20 řádek mi na to stačilo.
Odkazovaný článek obsahuje návod na použití skriptu (ppss), který umožňuje spustit nějaký příkaz vícekrát tak, aby byly obsazeny všechny dostupné procesory. Například tedy spustit několikrát najednou enkódování různých souborů do MP3. Autor zprávičky tak měl použít nadpis „Jak využít všechna jádra procesoru“. Rozhodně je nesmysl, aby jednothreadový proces bylo možno nějak magicky paralelizovat.