Я сделал вычисление с помощью CUDA, и требуется приблизительно 12 минут для завершения целого вычисления. Я использую эту команду в a .sh
файл для запущения программы:
CUDA_VISIBLE_DEVICES=0 ./a1.out | tee -a output.txt &
CUDA_VISIBLE_DEVICES=1 ./a2.out | tee -a output.txt &
CUDA_VISIBLE_DEVICES=2 ./a3.out | tee -a output.txt &
CUDA_VISIBLE_DEVICES=3 ./a4.out | tee -a output.txt &
CUDA_VISIBLE_DEVICES=4 ./a5.out | tee -a output.txt &
CUDA_VISIBLE_DEVICES=5 ./a6.out | tee -a output.txt &
Теперь я хочу показать индикатор выполнения для этого процесса в окне командной строки для пользователя. Есть ли существует какой-либо способ сделать это?
Использовать pv(1)
в режиме строки:
COMMAND | pv --line-mode --size 1000 >> output.txt
или короче
COMMAND | pv -ls 1000 >> output.txt
-s
/--size
определяет номер ожидаемых устройств вывода (байты по умолчанию или строки в режиме строки).
Если Вы хотите получить вывод, и отобразить прогресс нескольких команд, выполняющих параллельно Вас, может сделать так с составным оператором:
{ COMMAND1 & COMMAND2 & COMMAND3; } | pv -ls 1000 >> output.txt
В этом случае необходимо указать количество ожидаемых устройств вывода всех команд всего.
for i in {1..200}; do sleep 0.1; echo "$i"; done | pv -ls 200 > /dev/null