Я хотел бы запускать команды параллельно на нескольких процессорах моего компьютера. Я могу сделать это, используя,Параллельный сценарий оболочки без ожидания завершения партии
#!/bin/bash
./hello<params1.txt &
./hello<params2.txt &
wait
./hello<params3.txt &
./hello<params4.txt &
где PARAMS файлы параметры, которые Переходят к исполняемым `привета.
Однако приведенный выше код ожидает и первых двух команд для завершения, прежде чем переходить ко второму. Так как команды, которые я хочу запустить, имеют очень переменную продолжительность выполнения, я хотел бы иметь возможность разрешить любой процесс (на конкретном процессоре) досрочно заканчиваться, чтобы перейти к следующей команде без, ожидая завершения другой команды в партии.
Есть ли способ сделать это?
Если все четыре процесса могут быть безопасно выполнены одновременно. Тогда, возможно, вы должны позволить Linux (путем удаления 'wait') или GNU Parallel (https://www.gnu.org/software/parallel/) позаботиться о планировании –
Невозможно ответить на ваш вопрос, пока вы не объясните, что ограничения. Может ли все 4 работать параллельно? Если 2 заканчивается первым, может ли 3 и 4 работать до 1 окончания? И если да, могут ли они параллельно друг с другом? –