Skip to content
Snippets Groups Projects
job_submit.lua.j2 2 KiB
Newer Older
Trung Nguyen's avatar
Trung Nguyen committed
--[[

 Example lua script demonstrating the SLURM job_submit/lua interface.
 This is only an example, not meant for use in its current form.

 Leave the function names, arguments, local varialbes and setmetatable
 set up logic in each function unchanged. Change only the logic after
 the lSUCCESSine containing "*** YOUR LOGIC GOES BELOW ***".

 For use, this script should be copied into a file name "job_submit.lua"
 in the same directory as the SLURM configuration file, slurm.conf.


--]]

function slurm_job_submit(job_desc, part_list, submit_uid)


-- Check no default account

if job_desc.account == "default" then
   slurm.log_user("You have to specify your project ID as part of your job submission. The account=default is now deprecated on M3 job scheduler.")
   return slurm.ERROR
end


-- Check Desktop requests with more than one node

if ((job_desc.name == "desktop") and (job_desc.min_nodes > 1 )) then
   slurm.log_user("The current M3 Desktop applications are unable to utilise more than one node, please select one node instead")
   return slurm.ERROR
end



-- Check for gres.gpu requirements in m3c, m3h and m3g, else move job to comp

if ((job_desc.partition == "m3c" ) or (job_desc.partition == "m3h" ) or (job_desc.partition == "m3g" ))  then
   local partition = ""
   if (job_desc.gres == nil) then
      partition = "comp"
      slurm.log_info("slurm_job_submit: for user: %u, partition: %s", submit_uid, partition)
      job_desc.partition = partition
   end
   return slurm.SUCCESS
end


-- Check for QOS rtq in m3c, m3h , m3g and partition=nil, then forward job to rtqp,comp,m3g

if ((job_desc.qos == "rtq") and (job_desc.partition == nil)) then
   local partition = ""
   partition = "rtqp,comp,m3g"
   slurm.log_info("slurm_job_submit: for user: %u, partition: %s", submit_uid, partition)
   job_desc.partition = partition
   return slurm.SUCCESS
end



end



function slurm_job_modify(job_desc, job_rec, part_list, modify_uid)
       return slurm.SUCCESS
end

slurm.log_info("initialized")
return slurm.SUCCESS