Если у вас есть GNU Parallel, вы можете сделать:
parallel python fastq_groom.py {} {}.out ::: files*
Он будет делать правильные вещи, создавая работу для каждого ядра, даже если в именах ваших файлов есть пробел 'или'. Это также гарантирует, что выходные данные из разных заданий не будут смешаны вместе, так что если вы используйте вывод, который вам гарантирован, что вы не получите пол-строки от двух разных заданий.
GNU Parallel - это обычный параллелизатор, который позволяет легко запускать задания параллельно на одной и той же машине или на нескольких машинах, к которым у вас есть доступ по ssh.
Если у вас есть 32 различных задания, которые вы хотите запустить на 4 процессорах, прямой способ распараллеливания - запустить 8 заданий на каждом процессоре:
![Simple scheduling](https://i.stack.imgur.com/uH0Dh.png)
GNU Parallel вместо этого порождает новый процесс после его завершения - поддерживая активные процессоры и, таким образом, экономя время:
![GNU Parallel scheduling](https://i.stack.imgur.com/17FsG.png)
Установка
Если GNU Parallel не упакован для вашего дистрибутива, вы можете выполнить личную установку, которая не требует root-доступа. Это можно сделать за 10 секунд, выполнив следующее:
(wget -O - pi.dk/3 || curl pi.dk/3/ || fetch -o - http://pi.dk/3) | bash
Другие варианты установки см. http://git.savannah.gnu.org/cgit/parallel.git/tree/README
Узнать больше
См. Больше примеров: http://www.gnu.org/software/parallel/man.html
Смотрите вступительные видеоролики: https://www.youtube.com/playlist?list=PL284C9FF2488BC6D1
Пройдите учебник: http://www.gnu.org/software/parallel/parallel_tutorial.html
Подпишитесь на рассылку, чтобы получить поддержку: https://lists.gnu.org/mailman/listinfo/parallel