GNU Parallel создан для такого рода задач.
seq 100000 | parallel do_experiment
Если в вашем эксперименте используются разные типы значений (например, модели), то вы можете запустить все эксперименты для всех моделей следующим образом:
seq 100000 | parallel do_experiment --iteration {1} --model {2} :::: - ::: model1 model2
По умолчанию будет использоваться 1 процесс на ядро ЦП, и это обеспечит вывод двух параллельных рабочие места не будут смешиваться. Если в вашей лаборатории есть несколько неиспользуемых компьютеров, вы также можете заставить их участвовать в расчетах.
GNU Parallel - это общий распараллеливатель, который упрощает параллельное выполнение заданий на одной и той же машине или на нескольких машинах, к которым у вас есть доступ по ssh. Часто может заменить цикл на
.
Если у вас есть 32 различных задания, которые вы хотите запустить на 4 процессорах, простой способ распараллеливания - запустить 8 заданий на каждом процессоре:
GNU Parallel вместо этого порождает новый процесс, когда один из них завершается, - оставляя процессоры активными. и, таким образом, экономия времени:
Установка
Если 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