Sobre

Programas para criar processos. Muito útil para dividir comandos entre todos os cores do(s) processador(es).

Programas

procmaker

Suponha que você queira converter algumas músicas do formato wav para ogg.

$ ls
track01.wav  track03.wav  track05.wav  track07.wav  track09.wav  track11.wav
track02.wav  track04.wav  track06.wav  track08.wav  track10.wav

Se você executar oggenc -q 4 *.wav, as músicas serão comprimidas uma a uma, usando apenas um core do seu processador, deixando o(s) outro(s) inativo(s). Para resolver esse problema em, por exemplo, um computador dual-core (2 núcleos), use:

$ ./procmaker 2 "oggenc -q 4" *.wav

Os argumentos são:

  1. Número de processos (usualmente o número total de núcleos (cores) do(s) seu(s) processador(es))

  2. Programa a ser executado
  3. Arquivos que o programa aceitará como entrada

Para somente prever o que seria feito, acrescente -n no final:

$ ./procmaker 2 "oggenc -q 4" *.wav -n
process 0: oggenc -q 4 track01.wav track02.wav track03.wav track04.wav track05.wav track06.wav
process 1: oggenc -q 4 track07.wav track08.wav track09.wav track10.wav track11.wav

Note que serão criadas dois processos por causa do argumento '2', e cada uma delas irá para um núcleo diferente, quase que diminuindo pela metade o tempo total de execução.

Enquanto estiver rodando, a saída do programa será estranha, pois cada núcleo jogará informações na tela de músicas diferentes. Isto é normal e não alterará em nada o resultado final.

procmaker-list

Faz a mesma coisa que procmaker, porém a partir de uma lista de comandos. Exemplo:

$ cat comandos_a_executar
program0 arg0
program1 arg0 arg1
program2 arg0 arg1 arg2
program3
$ cat comandos_a_executar | ./procmaker-list 2 -n
process 0: program0 arg0 && program2 arg0 arg1 arg2
process 1: program1 arg0 arg1 && program3

A leitura dos comandos é a partir da entrada padrão. Os argumentos são:

  1. Número de processos (usualmente o número total de núcleos (cores) do(s) seu(s) processador(es))

  2. -n (opcional): se incluído, apenas mostra o que seria feito

Downloads

WikiLinux: ProcMaker (last edited 2008-12-27 16:27:32 by CaduSantos)