Получение запущенных заданий в кластере LSF с использованием python и PlatformLSF
Я пытаюсь написать простой диспетчер задач на python, который будет использоваться для запуска большого количества заданий в кластере LSF. Я застрял, пытаясь определить (в скрипте Python) количество запущенных заданий для данного пользователя. В командной строке это будет исходить из команды bjobs
,
IBM делает доступной оболочку Python для LSF C API. Работая с одним из их примеров и некоторой документацией из копии C API, которую я нашел в Интернете, я смог собрать следующий скрипт.
from pythonlsf import lsf
lsf.lsb_init("test")
userArr = lsf.new_stringArray(1)
lsf.stringArray_setitem(userArr, 0, 'my_username')
intp_num_users = lsf.new_intp()
lsf.intp_assign(intp_num_users, 1)
user_info = lsf.lsb_userinfo(userArr,intp_num_users)
Переменная user_info
имеет атрибуты 'numPEND'
, 'numRESERVE'
, 'numRUN'
, а также 'numStartJobs'
, но все они равны 0. Они остаются нулевыми, даже когда bjobs
сообщает о текущей работе.
Может кто-нибудь сказать, что я могу делать неправильно в приведенном выше фрагменте кода? Я прочитал и документацию по C и python несколько раз, но не могу найти ошибку.