Может ли нагрузка в узле SGE превышать количество процессоров?

Я выполняю задание в кластере Sun Grid Engine (теперь известном как Oracle Grid Engine). Чтобы увидеть, не замедляется ли моя работа из-за перегрузки узла, я попытался проверить состояние узла:

$ qstat -l hostname=hnode03 -f
queuename                      qtype resv/used/tot. load_avg arch          states
---------------------------------------------------------------------------------
[email protected] BP    0/0/0          103.41   lx24-amd64
---------------------------------------------------------------------------------
[email protected] BP    0/37/40        103.41   lx24-amd64
 977530 0.76963 runJob1 userme       r     09/13/2013 17:53:26     2
---------------------------------------------------------------------------------
[email protected] BP    0/24/32        103.41   lx24-amd64
---------------------------------------------------------------------------------
[email protected] B     0/0/0          103.41   lx24-amd64

и

$ qhost -h hnode03
HOSTNAME                ARCH         NCPU  LOAD  MEMTOT  MEMUSE  SWAPTO  SWAPUS
-------------------------------------------------------------------------------
global                  -               -     -       -       -       -       -
hnode03                 lx24-amd64     64 103.4  504.8G  122.9G   16.0G   58.0M

Теперь load_avg равно 103,41, а NCPU всего 64. Это когда-нибудь должно произойти? Используют ли некоторые задания ЦП, а не назначенные им слоты?

Обновление: в ответ на запросы конфигурации загружаются на http://pastebin.com/hLnJBetS.


person highBandWidth    schedule 16.09.2013    source источник
comment
Можете ли вы показать нам вывод qconf -se hnode03? Кроме того, будут полезны qconf -sq highmem.q и qconf -sq threaded.q, а также qconf -sp {pe} для любых параллельных сред, которые могут быть настроены в threaded.q.   -  person jlp    schedule 19.09.2013
comment
@jlp, я загрузил конфигурации на pastebin.com/hLnJBetS.   -  person highBandWidth    schedule 19.09.2013


Ответы (1)


Да, оно может.

Слоты не являются синонимом ядер (NCPU). Слоты следует рассматривать как «сколько заданий можно запланировать параллельно на узле».

Если вы хотите, чтобы одновременно выполнялось только одно задание, установите количество слотов для ваших машин равным единице.

Что касается коэффициента загрузки, даже если ваша работа использует только один слот, если у вас слишком много потоков или подпроцессов, тогда будут использоваться все ядра, и коэффициент загрузки определенно превысит 1.

person Finch_Powers    schedule 19.09.2013
comment
Спасибо! Согласно qhost, NCPU составляет 64, в то время как qstat говорит, что количество слотов составляет 40 + 32 = 72. Нагрузка выше обоих этих чисел. Может ли быть, что NCPU неправильно настроен или он считает что-то вроде 2-х ядер как один процессор? Есть ли способ узнать количество ядер из командной строки? - person highBandWidth; 19.09.2013
comment
Если вы используете Linux, откройте /proc/cpuinfo и посмотрите на самый высокий индекс процессора. (Индекс, поэтому он начинается с 0. Если он равен 3, то у вас 4 ядра.) - person Finch_Powers; 20.09.2013
comment
То, что сказал @Finch_Powers, но имейте в виду, что многоядерный процессор отличается от процессора с гиперпоточностью. Вы можете заглянуть в свою машину и увидеть только четыре процессора, но если каждый из них представляет собой шестиядерный процессор, у вас действительно будет 24 процессора. Не забудьте принять его ответ как правильный, чтобы он получил признание. - person jlp; 25.09.2013