Hubo un tiempo en la historia de la informática antigua cuando las computadoras tenían solo una CPU. Hoy en día, su computadora aún puede tener solo una CPU física, pero una CPU tiene múltiples núcleos para el procesamiento de datos. Cuando ejecuta un comando, debe agradecer a los valientes administradores de sistemas del pasado por aprovechar al máximo todos esos núcleos. Una forma de rendir homenaje a quienes sufren en máquinas de un solo núcleo es usar GNU Parallel, un analizador de comandos aparentemente mágico que puede realizar tareas en varios archivos simultáneamente.
[ Get the guide to installing applications on Linux. ]
Tabla de Contenidos
Instalar en paralelo
En CentOS, RHEL y Fedora, puede instalar GNU Parallel desde su repositorio de software:
$ sudo dnf install parallel
En CentOS y RHEL, a veces puede encontrar la última versión de EPEL.
Empezar en paralelo por primera vez
Cuando usa GNU Parallel por primera vez, le pide que acepte las citas cuando usa Parallel en investigaciones científicas. La tradición académica requiere que cite el trabajo en el que se basa su artículo. Si usa un programa que usa GNU Parallel para procesar datos de artículos en publicaciones científicas, cite:
Tange, O. (22 de agosto de 2022). GNU paralelo 20220822 (‘Rushdie’). Zenodo.
Esta mención ayuda a financiar un mayor desarrollo, no te costará ni un centavoSi pagas 10.000 euros, deberías ser libre de usar GNU Parallel sin citas.una examinacion sitio web GNU Obtenga más información sobre la financiación de GNU Parallel y avisos de citas.
Para silenciar esta notificación de cita, ejecute parallel --citation
una vez. Lea la notificación y siga las instrucciones para silenciar el recordatorio.
[ Keep your favorite Git commands, aliases, and tips close at hand. Download the Git cheat sheet. ]
Salida de tubería a paralelo
Se supone que ya está familiarizado con los comandos básicos de Linux como find
y ls
, una de las formas más fáciles de comenzar con GNU Parallel es alimentarlo con los resultados de los comandos que ya comprende. Por ejemplo, supongamos que desea mover algunos archivos de registro (ignorando por ahora que podría usar logrotate o herramientas similares en la vida real).
$ sudo find /var/log/ -type f -name "*.log" | \
sudo parallel mv {} ~/log-stash
En este código, las llaves ({}
) reemplazar resultado find
.
aprender sintaxis paralela
Si bien las utilidades de Linux existentes pueden actuar como un conveniente «front-end» para Parallel, también puede simplemente usar parallel
comando para construir el proceso. El concepto es simple, aunque la lógica a veces puede complicarse según la cantidad de tareas que desee ejecutar.Para empezar simple, este es un básico parallel
Ordenar:
$ parallel echo {} ::: hello world
hello
world
Tenga en cuenta que esta directiva está separada por tres puntos y comas (:::
), la izquierda es el comando y la derecha es el parámetro.Si intenta ese comando puede obtener hello world
o world hello
Devoluciones, dependiendo de qué proceso se completó primero.
Suponga que desea convertir algunos archivos multimedia de gran tamaño. En lugar de codificar los archivos uno por uno, puede usar GNU Parallel para iniciar instancias separadas del codificador, cada una dirigida a un códec diferente:
$ parallel ffmpeg ~/Audio/file.flac ~/Audio/file.{} ::: ogg m4a opus
[ Get the IT job interview tips cheat sheet. ]
Usar múltiples variables
Parallel no se limita a uno {}
Cambiando. Puede crear varias entradas y definirlas mediante números de índice que reflejen el orden en que se enumeran. Compare esta salida:
$ parallel echo {1} {2} ::: hello Linux ::: world sysadmin
hello world
hello sysadmin
Linux world
Linux sysadmin
En este ejemplo de código, {1}
representa el primer «trozo» de la entrada (hello
y Linux
) a pesar de que {2}
Indica el segundo «bloque» (world
y sysadmin
). No tienen que aparecer en este orden, ni están limitados a un solo uso:
$ parallel echo {2} {1} {2} ::: hello Linux ::: world sysadmin
world hello world
sysadmin hello sysadmin
world Linux world
sysadmin Linux sysadmin
procesamiento en paralelo
Dicen que con mayor poder viene mayor responsabilidad, pero idealmente con mayor poder viene mayor paralelismo. La computadora que tiene frente a usted es probablemente más poderosa de lo que necesita la mayor parte del tiempo, por lo que también podría aprovechar otros ciclos desperdiciados para acelerar sus comandos diarios. Utilice GNU paralelo.