Большинство таблиц содержат колонки: время создания, время модификации, признак удаления — creation_time, mod_time, deleted.
tres_table Словарь ресурсов TRES
- creation_time
- deleted
- id Числовой идентификатор — ключ
- type Тип ресурса
- name Имя
Для резервирования первых 999 id под системные нужды в таблицу внесена запись id=1000, type=dynamic_offset, помеченная как удаленная. При обращении из sreport к пользовательским TRES, tres type пишется заглавными буквами:
sreport cluster AccountUtilizationByUser start=2019-04-01 end=2019-05-21 --tres=GRES/gpu
acct_table Таблица учетных групп
- name,description,organization
user_table Таблица пользователей
- name, admin_level
super_assoc_table Таблица ассоциаций пользователь-учетная группа на кластере
- id_assoc — уникальный номер
- deleted — операция acctmgr remove удаляет запись, если она была создана несколько минут назад, иначе помечает, как удаленную.
- user,acct — пара пользователь-учетная группа. У учетной группы поле user пустое, поле acct пустым не бывает.
- parent_acct — родительская учетная группа. Бывает только у учетной группы.
- lft,rgt — загадочные поля.
super_job_table Таблица заданий на кластере super
- job_db_inx — уникальный индекс. Введён, поскольку id_job назначается за пределами DB.
- id_job — числовой id задачи
- account — текстовое имя учетной группы. Используется sacct при формировании списка заданий учетной группы.
- id_assoc — номер ассоциации
- id_user, id_group — системные UID,GID без привязки к assoc_table
- nodelist — список узлов в формате slurm (node[3-5,7]). Есть особое значение ‘None assigned’
- nodes_alloc — число узлов
- node_inx — список узлов в виде их числовых индексов (3-5,108-212)
- work_dir — рабочий каталог. Поле появилось с какой то версии Slurm. До того пустой.
- time_submit, time_start, time_end — времена в формате unix timesatmp.
В SQL функция UNIX_TIMESTAMP(‘2018-09-01 12:00:00’). Обратное преобразование FROM_UNIXTIME(1447430881); - state — числовое значение состояния задачи
Значения state
enum job_states {
JOB_PENDING, /* queued waiting for initiation */
JOB_RUNNING, /* allocated resources and executing */
JOB_SUSPENDED, /* allocated resources, execution suspended */
JOB_COMPLETE, /* completed execution successfully */
JOB_CANCELLED, /* cancelled by user */
JOB_FAILED, /* completed execution unsuccessfully */
JOB_TIMEOUT, /* terminated on reaching time limit */
JOB_NODE_FAIL, /* terminated on node failure */
JOB_PREEMPTED, /* terminated due to preemption */
JOB_BOOT_FAIL, /* terminated due to node boot failure */
JOB_DEADLINE, /* terminated on deadline */
JOB_OOM, /* experienced out of memory error */
JOB_END /* not a real state, last entry in table */
};
super_step_table Таблица параллельных задач (step), сформированных командами srun в рамках одного задания. Один srun — одна задача (step).
- job_db_inx — связь с таблицей job_table
- id_step — номер шага от 0 и далее, -2 — особый случай batch — формируется через sbatch.
- time_start, time_end — индивидуальные времена шагов. job.time_start=min(step.time_start), job.time_end=max(step.time_end).
- task_cnt — количество запущенных srun процессов (каждый из которых может занимать несколько ядер).
Извлечение задач на кластере super по номеру задания
select j.id_job,j.job_name,s.step_name,j.nodelist,s.nodelist,j.nodes_alloc,s.nodes_alloc,s.id_step
from super_job_table as j
join super_step_table as s
on j.job_db_inx=s.job_db_inx
where j.id_job=24747;
Задания на кластере super, не сумевшие стартовать задачу
select j.id_job
from super_job_table as j
left join super_step_table as s
on j.job_db_inx=s.job_db_inx
where s.job_db_inx IS NULL
super_assoc_usage_month/day/hour_table Агрегированные данные по использованию кластера super. Используются при выдаче статистики через sreport. Похоже, что в основном используется таблица super_assoc_usage_day_table
- creation_time
- mod_time
- deleted
- id — фактически это id_assoc — номер ассоциации
- id_tres — код ресурса. Берется из таблицы tres_table
- time_start — время старта задачи, округленное до месяца/дня/часа
- alloc_secs — выделенное время