Мне нужно знать, как рассчитать начальное виртуальное время выполнения процесса в полностью честном планировщике

возможно, это то, что вам нужно:

kill -9 $(nvidia-smi | awk '$2 == "GPU" && $3 == "PID" {flag = 1} flag && $3 > 0 {print $2, $3}' | awk '$1 == 2 {print $2}')

Для более сложных условий вы можете изменить условия второй команды awk. Например, следующую команду можно использовать для уничтожения всех процессов, использующих GPU -0 до GPU -3 и PID > 1000:

kill -9 $(nvidia-smi | awk '$2 == "GPU" && $3 == "PID" {flag = 1} flag && $3 > 0 {print $2, $3}' | awk '$1 < 4 && $2 > 1000 {print $2}')

Как видите, kill -9 PIDsнужны PID для завершения процессов, а awkиспользуется дважды, чтобы найти допустимые PID для уничтожения.

В частности, первая команда awkвыберет строки после строки «GPU PID Type Process Name», а затем распечатает строки идентификаторов GPU и PID с пробелом между каждым идентификатором GPU и PID. Второй awkнайдет определенные идентификаторы GPU или PID, что в данном случае означает поиск всех процессов, использующих GPU -2, а затем распечатку PID. Наконец, kill -9 PIDsуничтожит процессы в соответствии с этими PID.

0
03.03.2020, 07:11
1 ответ

вы можете использовать зарезервированное слово time, чтобы распечатать статистику синхронизации для конвейера после завершения AS в руководстве по Bash следующим образом:

[время [-p]] [!] команда1 [ | или |& команда2 ]

В настоящее время статистика состоит из прошедшего (настенного -времени )времени, а также пользовательского и системного времени, затраченного на выполнение команды. Опция -p изменяет формат вывода на указанный в posix. Когда оболочка находится в режиме posix (, см. Раздел 6.11 [Режим Bash POSIX], с. 99 ), она не распознает время как зарезервированное слово, если следующий токен начинается с ‘ -’. Для переменной TIMEFORMAT может быть задана строка формата, указывающая, как должна отображаться информация о времени. См. Раздел 5.2 [Переменные Bash], с. 73, для описания доступных форматов. Использование time в качестве зарезервированного слова позволяет синхронизировать встроенные функции оболочки, функции оболочки и конвейеры. Внешняя команда времени не может легко синхронизировать их.

Когда оболочка находится в режиме posix (, см. Раздел 6.11 [Режим Bash POSIX], с. 99 ), за временем может следовать новая строка. В этом случае оболочка отображает общее время пользователя и системы, затраченное оболочкой и ее дочерними элементами. Переменная TIMEFORMAT может использоваться для указания формата информации о времени.

0
28.04.2021, 23:21

Теги

Похожие вопросы