Я пишу крошечный script, который вызывает "PNGOUT", используя несколько сотен файлов PNG. Я просто сделал это:
find $BASEDIR -iname "*png" -exec pngout {} \;
И затем я посмотрел на свой монитор процессора и заметил, что используется только одно из ядро, что довольно грустно.
В этот день и возраст двухъядерного, четырехъядерного, окто-и гекса (?) ядра рабочего стола, как я просто распараллеливаю эту задачу с помощью Bash? (это не первый раз, когда у меня была такая потребность, потому что довольно много этих utils однопоточно... Я уже имел дело с mp3-кодами).
Будет ли запущено все pngout в фоновом режиме? Как бы тогда выглядела команда поиска? (Я не слишком уверен, как смешивать find и символ "&" )
Если у меня есть три сотни снимков, это означало бы обмен между тремя сотнями процессов, что в любом случае не кажется большим!?
Или мне нужно скопировать мои три сотни файлов или так в "nb dirs", где "nb dirs" будет числом ядер, а затем запускать одновременно "nb find"? (что было бы достаточно близко)
Но как бы я это сделал?