parallel processing - GNU paralelo no funciona en absoluto
parallel-processing xargs (3)
Cuando estaba a punto de terminar de escribir esta pregunta, ejecuté parallel --version
versión parallel --version
para informar la versión, solo para encontrar:
ADVERTENCIA: USTED ESTÁ USANDO --tollef. SI LAS COSAS ESTÁN ACTUANDO USO EXTRAÑO --gnu.
No me queda claro por qué esa bandera está configurada de manera predeterminada. No hace falta decir que usar --gnu
funcionó!
Pensé que publicaría esto para ahorrarle a alguien horas de frustración y confusión.
EDITAR: para solucionar esto de forma permanente (al menos en Ubuntu), elimine el indicador --tollef
en /etc/parallel/config
He intentado usar GNU parallel por un tiempo, ¡pero nunca he podido hacerlo funcionar!
Por ejemplo, ejecutando (en un directorio no vacío):
ls | parallel echo # Outputs single new line
ls | parallel echo echo echo # Outputs three new lines.
ls | parallel echo {} # /bin/bash: {}: command not found
ls | parallel echo ''{}'' # /bin/bash: {}: command not found
ls | parallel ''echo {}'' # Outputs: {}
ls | parallel -IMM ''echo MM'' # Outputs: MM
Parece que simplemente está ejecutando cada argumento como un comando, lo que no tiene sentido.
He intentado bash, zsh, tcsh, csh y sh, sin éxito.
Dependiendo de su sistema operativo, debe verificar si realmente está ejecutando la versión de GNU.
$ parallel --version
parallel: invalid option -- ''-''
parallel [OPTIONS] command -- arguments
for each argument, run command with argument, in parallel
parallel [OPTIONS] -- commands
run specified commands in parallel
Si este es el caso, no está ejecutando la versión de GNU. Ubuntu 12.04 es así, y deberá instalar GNU paralelo de forma manual para obtener la funcionalidad que espera.
Tenía problemas paralelos como un comando externo de FREEMAT (MATLAB lookalike); el argumentoFile no se envió al comando correctamente resuelto por:
- Añadiendo --gnu a las opciones
- No se usa la sintaxis de cmdString que implica ["]
Código:
cmdString = ''parallel --gnu command ::: '';
while j<=jLength
cmdString = [cmdString argumentFilePath(j,:) '' ''];
j=j+1;
end
system(cmdString)
Gracias por eso :) También estoy en Ubuntu 12.04.