Я использую gnu -rallel для параллельного запуска нескольких сценариев Python на нескольких компьютерах в моей гигабитной сети.
Обрабатываемые файлы находятся в папке tmpfs (RAM) на моем главном узле. Когда я запускаю параллельный процесс, я вижу, что все ядра в удаленном узле работают, но мой мастер-узел остается бездействующим.
Вот как выглядит моя параллельная линия:
parallel --workdir ./netshare --filter-hosts -S :,192.168.88.222\
'myscript.py {.}.shp output_{.}.shp input.shp' ::: tile_{1..445}.shp
Я попытался изменить порядок IP-адресов 192.168.88.222: с тем же результатом.
Я пытался работать только на локальном главном узле, кроме предупреждения о том, что удаленные узлы недоступны, все 8 локальных потоков начинают работать.
Я думал, что это может быть задержка в сети, но скрипты на python вообще не запускаются! Тогда как на удаленном хосте я вижу четыре запущенных без проблем.
Согласно комментарию Оле, я протестировал проблему с bzip2, вот команда:
parallel -S $SERVER1,: 'cd /path/to/mounted/network/share && cp largefile.avi file{1}.avi && bzip2 -v file{1}.avi && rm file{1}.avi.bz2' ::: {1..100}
Тест работал точно так, как ожидалось. Все ядра всех хостов запустились с помощью cp, а затем bzip. Так что, думаю, проблема в моем скрипте Python.