HTCondor меняет NUM_CPUS в зависимости от простоя?

Я хотел бы изменить количество ЦП в зависимости от того, кто работает на машине или нет. Не хотите ВЫПОЛНЯТЬ задания, как определено в руководстве. Просто сделайте что-то вроде:

// condor_config file
if (KeyboardIdle < 10)
    NUM_CPUS = 2
else
    NUM_CPUS = 8
endif

Приведенная выше команда завершается с ошибкой: (KeyboardIdle < 10) is not a valid if condition because complex conditionals are not supported.

В любом случае я могу реализовать это или NUM_CPUS фиксированная переменная?


Согласно ответу Грега, самая нижняя часть моего condor_config выглядит следующим образом

NUM_CPUS = 16
START = (SlotID < 8) || (KeyboardIdle > 10)

Что теоретически позволяет запускать только 8 заданий, но при запуске condor_status myMachine я получаю:

C:\>condor_status myMachine
Name                       OpSys      Arch   State     Activity LoadAv Mem   ActvtyTime

[email protected]  WINDOWS    X86_64 Claimed   Busy      1.210 8186  0+00:00:02
[email protected]  WINDOWS    X86_64 Claimed   Busy      0.500 8186  0+00:00:03
[email protected]  WINDOWS    X86_64 Claimed   Busy      2.220 8186  0+00:00:01
[email protected]  WINDOWS    X86_64 Claimed   Busy      1.500 8186  0+00:00:02
[email protected]  WINDOWS    X86_64 Claimed   Busy      0.600 8186  0+00:00:02
[email protected]  WINDOWS    X86_64 Claimed   Busy      0.380 8186  0+00:00:02
[email protected]  WINDOWS    X86_64 Claimed   Busy      1.940 8186  0+00:00:03
[email protected]  WINDOWS    X86_64 Claimed   Busy      0.880 8186  0+00:00:02
[email protected]  WINDOWS    X86_64 Claimed   Busy      1.560 8186  0+00:00:02
[email protected] WINDOWS    X86_64 Claimed   Busy      0.310 8186  0+00:00:02
[email protected] WINDOWS    X86_64 Claimed   Busy      2.180 8186  0+00:00:02
[email protected] WINDOWS    X86_64 Claimed   Busy      1.580 8186  0+00:00:02
[email protected] WINDOWS    X86_64 Claimed   Busy      0.950 8186  0+00:00:02
[email protected] WINDOWS    X86_64 Claimed   Busy      1.890 8186  0+00:00:02
[email protected] WINDOWS    X86_64 Claimed   Busy      0.490 8186  0+00:00:02
[email protected] WINDOWS    X86_64 Claimed   Busy      1.600 8186  0+00:00:01

               Total Owner Claimed Unclaimed Matched Preempting Backfill  Drain

X86_64/WINDOWS    16     0      16         0       0          0        0      0

         Total    16     0      16         0       0          0        0      0

Есть идеи?


person Frankie    schedule 07.03.2019    source источник


Ответы (1)


NUM_CPUS исправлен в HTCondor. Обычно такая политика реализуется путем изменения выражения START, чтобы было различное количество слотов, чье выражение START оценивается как ложное и, следовательно, не может запускать задания.

Предполагая, что эта машина имеет статические слоты (по умолчанию), выражение START может выглядеть примерно так:

START = (SlotID < 3) || (KeyboardIdle > 10)

то есть start всегда истинно для слотов 1 и 2 и истинно для остальных слотов, если клавиатура простаивает.

Чтобы быть раздражающе педантичным, это только контролирует, запускаются ли задания на этой машине в соответствии с использованием клавиатуры. Только с приведенной выше конфигурацией полностью бездействующая машина позволит заполнить себя заданиями, и эти задания будут продолжать выполняться бесконечно, когда пользователь с клавиатуры вернется. Если вы хотите вытеснить эти задания, вы также можете использовать выражение вытеснения, например

PREEMPT = (SlotID > 3) && (KeyboardIdle < 10)
person Greg    schedule 11.03.2019
comment
Великолепно! Спасибо. - person Frankie; 11.03.2019
comment
к сожалению, похоже, не работает ... обновил мой вопрос. - person Frankie; 12.03.2019
comment
Значит, либо KeyboardIdle обновляется некорректно, либо я забыл рассказать вам о выражении PREEMPT. - person Greg; 15.03.2019
comment
Ваш последний комментарий поставил меня на правильный путь. condor_kbdd.exe работал как служба и поэтому не перехватывал нажатия клавиш пользователем. Для тех, кто натыкается на эту самую проблему: www- auth.cs.wisc.edu/lists/htcondor-users/2016-March/ — выражение Грега идеально! - person Frankie; 15.03.2019