1Slurm(3) User Contributed Perl Documentation Slurm(3)
2
3
4
6 Slurm - Perl API for libslurm
7
9 use Slurm;
10
11 my $slurm = Slurm::new();
12 $nodes = $slurm->load_node();
13 unless($nodes) {
14 die "failed to load node info: " . $slurm->strerror();
15 }
16
18 The Slurm class provides Perl interface of the Slurm API functions in
19 "<slurm/slurm.h>", with some extra frequently used functions exported
20 by libslurm.
21
22 METHODS
23 To use the API, first create a Slurm object:
24
25 $slurm = Slurm::new($conf);
26
27 Then call the desired functions:
28
29 $resp = $slurm->load_jobs();
30
31 In the following "METHODS" section, if a parameter is omitted, it will
32 be listed as "param=val" , where "val" is the default value of the
33 parameter.
34
35 DATA STRUCTURES
36 Typically, C structures are converted to (maybe blessed) Perl hash
37 references, with field names as hash keys. Arrays in C are converted to
38 arrays in Perl. For example, there is a structure "job_info_msg_t":
39
40 typedef struct job_info_msg {
41 time_t last_update; /* time of latest info */
42 uint32_t record_count; /* number of records */
43 job_info_t *job_array; /* the job records */
44 } job_info_msg_t;
45
46 This will be converted to a hash reference with the following
47 structure:
48
49 {
50 last_update => 1285847672,
51 job_array => [ {account => 'test', alloc_node => 'ln0', alloc_sid => 1234, ...},
52 {account => 'debug', alloc_node => 'ln2', alloc_sid => 5678, ...},
53 ...
54 ]
55 }
56
57 Note the missing of the "record_count" field in the hash. It can be
58 derived from the number of elements in array "job_array".
59
60 To pass parameters to the API functions, use the corresponding hash
61 references, for example:
62
63 $rc = $slurm->update_node({node_names => 'node[0-7]', node_state => NODE_STATE_DRAIN});
64
65 Please see "<slurm/slurm.h>" for the definition of the structures.
66
67 CONSTANTS
68 The enumerations and macro definitions are available in the Slurm
69 package. If ':constant' is given when using the Slurm package, the
70 constants will be exported to the calling package.
71
72 Please see Slurm::Constant for the available constants.
73
75 CONSTRUCTOR/DESTRUCTOR
76 $slurm = Slurm::new($conf_file=undef);
77
78 Create a Slurm object. For now the object is just a hash reference with
79 no members.
80
81 · IN $conf_file: the Slurm configuration file. If omitted, the default
82 Slurm configuration file will be used (file specified by environment
83 variable SLURM_CONF or the file slurm.conf under directroy specified
84 in compile time).
85
86 · RET: blessed opaque Slurm object. On error "undef" is returned.
87
88 ERROR INFORMATION FUNCTIONS
89 $errno = $slurm->get_errno();
90
91 Get the error number associated with last operation.
92
93 · RET: error number associated with last operation.
94
95 $str = $slurm->strerror($errno=0)
96
97 Get the string describing the specified error number.
98
99 · IN $errno: error number. If omitted or 0, the error number returned
100 by "$slurm-"get_errno()> will be used.
101
102 · RET: error string.
103
104 ENTITY STATE/REASON/FLAG/TYPE STRING FUNCTIONS
105 $str = $slurm->preempt_mode_string($mode_num);
106
107 Get the string describing the specified preemt mode number.
108
109 · IN $mode_num: preempt mode number.
110
111 · RET: preempt mode string.
112
113 $num = $slurm->preempt_mode_num($mode_str);
114
115 Get the preempt mode number of the specified preempt mode string.
116
117 · IN $mode_str: preempt mode string.
118
119 · RET: preempt mode number.
120
121 $str = $slurm->job_reason_string($num);
122
123 Get the string representation of the specified job state reason number.
124
125 · IN $num: job reason number.
126
127 · RET: job reason string.
128
129 $str = $slurm->job_state_string($num);
130
131 Get the string representation of the specified job state number.
132
133 · IN $num: job state number.
134
135 · RET: job state string.
136
137 $str = $slurm->job_state_string_compact($num);
138
139 Get the compact string representation of the specified job state
140 number.
141
142 · IN $num: job state number.
143
144 · RET: compact job state string.
145
146 $num = $slurm->job_state_num($str);
147
148 Get the job state number of the specified (compact) job state string.
149
150 · IN $str: job state string.
151
152 · RET: job state number.
153
154 $str = $slurm->reservation_flags_string($flags);
155
156 Get the string representation of the specified reservation flags.
157
158 · IN $num: reservation flags number.
159
160 · RET: reservation flags string.
161
162 $str = $slurm->node_state_string($num);
163
164 Get the string representation of the specified node state number.
165
166 · IN $num: node state number.
167
168 · RET: node state string.
169
170 $str = $slurm->node_state_string_compact($num);
171
172 Get the compact string representation of the specified node state
173 number.
174
175 · IN $num: node state number.
176
177 · RET: compact node state string.
178
179 $str = $slurm->private_data_string($num);
180
181 Get the string representation of the specified private data type.
182
183 · IN $num: private data type number.
184
185 · RET: private data type string.
186
187 $str = $slurm->accounting_enforce_string($num);
188
189 Get the string representation of the specified accounting enforce type.
190
191 · IN $num: accounting enforce type number.
192
193 · RET: accounting enforce type string.
194
195 RESOURCE ALLOCATION FUNCTIONS
196 $resp = $slurm->allocate_resources($job_desc);
197
198 Allocate resources for a job request. If the requested resources are
199 not immediately available, the slurmctld will send the
200 job_alloc_resp_msg to the sepecified node and port.
201
202 · IN $job_desc: description of resource allocation request, with
203 structure of "job_desc_msg_t".
204
205 · RET: response to request, with structure of
206 "resource_allocation_response_msg_t". This only represents a job
207 allocation if resources are immediately available. Otherwise it just
208 contains the job id of the enqueued job request. On failure "undef"
209 is returned.
210
211 $resp = $slurm->allocate_resources_blocking($job_desc, $timeout=0,
212 $pending_callbacks=undef);
213
214 Allocate resources for a job request. This call will block until the
215 allocation is granted, or the specified timeout limit is reached.
216
217 · IN $job_desc: description of resource allocation request, with
218 structure of "job_desc_msg_t".
219
220 · IN $timeout: amount of time, in seconds, to wait for a response
221 before giving up. A timeout of zero will wait indefinitely.
222
223 · IN $pending_callbacks: If the allocation cannot be granted
224 immediately, the controller will put the job in the PENDING state.
225 If pending callback is given, it will be called with the job id of
226 the pending job as the sole parameter.
227
228 · RET: allcation response, with structure of
229 "resource_allocation_response_msg_t". On failure "undef" is returned,
230 with errno set.
231
232 $resp = $slurm->allocatiion_lookup($job_id);
233
234 Retrieve info for an existing resource allocation.
235
236 · IN $job_id: job allocation identifier.
237
238 · RET: job allocation info, with structure of
239 "resource_allocation_response_msg_t". On failure "undef" is returned
240 with errno set.
241
242 $str = $slurm->read_hostfile($filename, $n);
243
244 Read a specified Slurm hostfile. The file must contain a list of Slurm
245 NodeNames, one per line.
246
247 · IN $filename: name of Slurm hostlist file to be read.
248
249 · IN $n: number of NodeNames required.
250
251 · RET: a string representing the hostlist. Returns NULL if there are
252 fewer than $n hostnames in the file, or if an error occurs.
253
254 $msg_thr = $slurm->allocation_msg_thr_create($port, $callbacks);
255
256 Startup a message handler talking with the controller dealing with
257 messages from the controller during an allocation.
258
259 · OUT $port: port we are listening for messages on from the controller.
260
261 · IN $callbacks: callbacks for different types of messages, with
262 structure of "slurm_allocation_callbacks_t".
263
264 · RET: opaque object of "allocation_msg_thread_t *", or NULL on
265 failure.
266
267 $slurm->allocation_msg_thr_destroy($msg_thr);
268
269 Shutdown the message handler talking with the controller dealing with
270 messages from the controller during an allocation.
271
272 · IN $msg_thr: opaque object of "allocation_msg_thread_t" pointer.
273
274 $resp = $slurm->submit_batch_job($job_desc_msg);
275
276 Issue RPC to submit a job for later execution.
277
278 · IN $job_desc_msg: description of batch job request, with structure of
279 "job_desc_msg_t".
280
281 · RET: SLURM_SUCCESS on success, otherwise return SLURM_ERROR with
282 errno set.
283
284 $rc = $slurm->job_will_run($job_desc_msg);
285
286 Determine if a job would execute immediately if submitted now.
287
288 · IN $job_desc_msg: description of resource allocation request, with
289 structure of "job_desc_msg_t".
290
291 · RET: SLURM_SUCCESS on success, otherwise return SLURM_ERROR with
292 errno set.
293
294 $resp = $slurm->sbcast_lookup($job_id);
295
296 Retrieve info for an existing resource allocation including a
297 credential needed for sbcast.
298
299 · IN $jobid: job allocation identifier.
300
301 · RET: job allocation information includeing a credential for sbcast,
302 with structure of "job_sbcast_cred_msg_t". On failure "undef" is
303 returned with errno set.
304
305 JOB/STEP SIGNALING FUNCTIONS
306 $rc = $slurm->kill_job($job_id, $signal, $batch_flag=0);
307
308 Send the specified signal to all steps of an existing job.
309
310 · IN $job_id: the job's id.
311
312 · IN $signal: signal number.
313
314 · IN $batch_flag: 1 to signal batch shell only, otherwise 0.
315
316 · RET: SLURM_SUCCESS on success, otherwise return SLURM_ERROR with
317 errno set.
318
319 $rc = $slurm->kill_job_step($job_id, $step_id, $signal);
320
321 Send the specified signal to an existing job step.
322
323 · IN $job_id: the job's id.
324
325 · IN $step_id: the job step's id.
326
327 · IN $signal: signal number.
328
329 · RET: SLURM_SUCCESS on success, otherwise return SLURM_ERROR with
330 errno set.
331
332 $rc = $slurm->signal_job($job_id, $signal);
333
334 Send the specified signal to all steps of an existing job.
335
336 · IN $job_id: the job's id.
337
338 · IN $signal: signal number.
339
340 · RET: SLURM_SUCCESS on success, otherwise return SLURM_ERROR with
341 errno set.
342
343 $rc = $slurm->signal_job_step($job_id, $step_id, $signal);
344
345 Send the specified signal to an existing job step.
346
347 · IN $job_id: the job's id.
348
349 · IN $step_id: the job step's id.
350
351 · IN $signal: signal number.
352
353 · RET: SLURM_SUCCESS on success, otherwise return SLURM_ERROR with
354 errno set.
355
356 JOB/STEP COMPLETION FUNCTIONS
357 $rc = $slurm->complete_job($job_id, $job_rc=0);
358
359 Note the completion of a job and all of its steps.
360
361 · IN $job_id: the job's id.
362
363 · IN $job_rc: the highest exit code of any task of the job.
364
365 · RET: SLURM_SUCCESS on success, otherwise return SLURM_ERROR with
366 errno set.
367
368 $rc = $slurm->terminate_job_step($job_id, $step_id);
369
370 Terminates a job step by sending a REQUEST_TERMINATE_TASKS rpc to all
371 slurmd of a job step, and then calls slurm_complete_job_step() after
372 verifying that all nodes in the job step no longer have running tasks
373 from the job step. (May take over 35 seconds to return.)
374
375 · IN $job_id: the job's id.
376
377 · IN $step_id: the job step's id - use SLURM_BATCH_SCRIPT as the
378 step_id to terminate a job's batch script.
379
380 · RET: SLURM_SUCCESS on success, otherwise return SLURM_ERROR with
381 errno set.
382
383 Slurm TASK SPAWNING FUNCTIONS
384 $ctx = $slurm->step_ctx_create($params);
385
386 Create a job step and its context.
387
388 · IN $params: job step parameters, with structure of
389 "slurm_step_ctx_params_t".
390
391 · RET: the step context. On failure "undef" is returned with errno set.
392
393 $ctx = $slurm->step_ctx_create_no_alloc($params);
394
395 Create a job step and its context without getting an allocation.
396
397 · IN $params: job step parameters, with structure of
398 "slurm_step_ctx_params_t"..
399
400 · IN $step_id: fake job step id.
401
402 · RET: the step context. On failure "undef" is returned with errno set.
403
404 SLURM CONTROL CONFIGURATION READ/PRINT/UPDATE FUNCTIONS
405 ($major, $minor, $micro) = $slurm->api_version();
406
407 Get the Slurm API's version number.
408
409 · RET: a three element list of the major, minor, and micro version
410 number.
411
412 $resp = $slurm->load_ctl_conf($update_time=0);
413
414 Issue RPC to get Slurm control configuration information if changed.
415
416 · IN $update_time: time of current configuration data.
417
418 · RET: Slurm configuration data, with structure of "slurm_ctl_conf_t".
419 On failure "undef" is returned with errno set.
420
421 $slurm->print_ctl_conf($out, $conf);
422
423 Output the contents of Slurm control configuration message as loaded
424 using "load_ctl_conf()".
425
426 · IN $out: file to write to.
427
428 · IN $conf: Slurm control configuration, with structure of
429 "slurm_ctl_conf_t".
430
431 $list = $slurm->ctl_conf_2_key_pairs($conf);
432
433 Put the Slurm configuration data into a List of opaque data type
434 "config_key_pair_t".
435
436 · IN $conf: Slurm control configuration, with structure of
437 "slurm_ctl_conf_t".
438
439 · RET: List of opaque data type "config_key_pair_t".
440
441 $resp = $slurm->load_slurmd_status();
442
443 Issue RPC to get the status of slurmd daemon on this machine.
444
445 · RET: slurmd status info, with structure of "slurmd_status_t". On
446 failure "undef" is returned with errno set.
447
448 $slurm->print_slurmd_status($out, $slurmd_status);
449
450 Output the contents of slurmd status message as loaded using
451 "load_slurmd_status()".
452
453 · IN $out: file to write to.
454
455 · IN $slurmd_status: slurmd status info, with structure of
456 "slurmd_status_t".
457
458 $slurm->print_key_pairs($out, $key_pairs, $title);
459
460 Output the contents of key_pairs which is a list of opaque data type
461 "config_key_pair_t".
462
463 · IN $out: file to write to.
464
465 · IN $key_pairs: List containing key pairs to be printed.
466
467 · IN $title: title of key pair list.
468
469 $rc = $slurm->update_step($step_msg);
470
471 Update the time limit of a job step.
472
473 · IN $step_msg: step update messasge descriptor, with structure of
474 "step_update_request_msg_t".
475
476 · RET: 0 or -1 on error.
477
478 SLURM JOB RESOURCES READ/PRINT FUNCTIONS
479 $num = $slurm->job_cpus_allocated_on_node_id($job_res, $node_id);
480
481 Get the number of cpus allocated to a job on a node by node id.
482
483 · IN $job_res: job resources data, with structure of "job_resources_t".
484
485 · IN $node_id: zero-origin node id in allocation.
486
487 · RET: number of CPUs allocated to job on this node or -1 on error.
488
489 $num = $slurm->job_cpus_allocated_on_node($job_res, $node_name);
490
491 Get the number of cpus allocated to a job on a node by node name.
492
493 · IN $job_res: job resources data, with structure of "job_resources_t".
494
495 · IN $node_name: name of node.
496
497 · RET: number of CPUs allocated to job on this node or -1 on error.
498
499 SLURM JOB CONFIGURATION READ/PRINT/UPDATE FUNCTIONS
500 $time = $slurm->get_end_time($job_id);
501
502 Get the expected end time for a given slurm job.
503
504 · IN $jobid: Slurm job id.
505
506 · RET: scheduled end time for the job. On failure "undef" is returned
507 with errno set.
508
509 $secs = $slurm->get_rem_time($job_id);
510
511 Get the expected time remaining for a given job.
512
513 · IN $jobid: Slurm job id.
514
515 · RET: remaining time in seconds or -1 on error.
516
517 $rc = $slurm->job_node_ready($job_id);
518
519 Report if nodes are ready for job to execute now.
520
521 · IN $job_id: Slurm job id.
522
523 · RET:
524
525 · READY_JOB_FATAL: fatal error
526
527 · READY_JOB_ERROR: ordinary error
528
529 · READY_NODE_STATE: node is ready
530
531 · READY_JOB_STATE: job is ready to execute
532
533 $resp = $slurm->load_job($job_id, $show_flags=0);
534
535 Issue RPC to get job information for one job ID.
536
537 · IN $job_id: ID of job we want information about.
538
539 · IN $show_flags: job filtering options.
540
541 · RET: job information, with structure of "job_info_msg_t". On failure
542 "undef" is returned with errno set.
543
544 $resp = $slurm->load_jobs($update_time=0, $show_flags=0);
545
546 Issue RPC to get all Slurm job information if changed.
547
548 · IN $update_time: time of current job information data.
549
550 · IN $show_flags: job filtering options.
551
552 · RET: job information, with structure of "job_info_msg_t". On failure
553 "undef" is returned with errno set.
554
555 $rc = $slurm->notify_job($job_id, $message);
556
557 Send message to the job's stdout, usable only by user root.
558
559 · IN $job_id: Slurm job id or 0 for all jobs.
560
561 · IN $message: arbitrary message.
562
563 · RET: 0 or -1 on error.
564
565 $job_id = $slurm->pid2jobid($job_pid);
566
567 Issue RPC to get the Slurm job ID of a given process ID on this
568 machine.
569
570 · IN $job_pid: process ID of interest on this machine.
571
572 · RET: corresponding job ID. On failure "undef" is returned.
573
574 $slurm->print_job_info($out, $job_info, $one_liner=0);
575
576 Output information about a specific Slurm job based upon message as
577 loaded using "load_jobs()".
578
579 · IN $out: file to write to.
580
581 · IN $job_info: an individual job information record, with structure of
582 "job_info_t".
583
584 · IN $one_liner: print as a single line if true.
585
586 $slurm->print_job_info_msg($out, $job_info_msg, $one_liner=0);
587
588 Output information about all Slurm jobs based upon message as loaded
589 using "load_jobs()".
590
591 · IN $out: file to write to.
592
593 · IN $job_info_msg: job information message, with structure of
594 "job_info_msg_t".
595
596 · IN $one_liner: print as a single line if true.
597
598 $str = $slurm->sprint_job_info($job_info, $one_liner=0);
599
600 Output information about a specific Slurm job based upon message as
601 loaded using "load_jobs()".
602
603 · IN $job_info: an individual job information record, with structure of
604 "job_info_t".
605
606 · IN $one_liner: print as a single line if true.
607
608 · RET: string containing formatted output.
609
610 $rc = $slurm->update_job($job_info);
611
612 Issue RPC to a job's configuration per request only usable by user root
613 or (for some parameters) the job's owner.
614
615 · IN $job_info: description of job updates, with structure of
616 "job_desc_msg_t".
617
618 · RET: SLURM_SUCCESS on success, otherwise return SLURM_ERROR with
619 errno set.
620
621 SLURM JOB STEP CONFIGURATION READ/PRINT/UPDATE FUNCTIONS
622 $resp = $slurm->get_job_steps($update_time=0, $job_id=NO_VAL,
623 $step_id=NO_VAL, $show_flags=0);
624
625 Issue RPC to get specific slurm job step configuration information if
626 changed since update_time.
627
628 · IN $update_time: time of current configuration data.
629
630 · IN $job_id: get information for specific job id, NO_VAL for all jobs.
631
632 · IN $step_id: get information for specific job step id, NO_VAL for all
633 job steps.
634
635 · IN $show_flags: job step filtering options.
636
637 · RET: job step information, with structure of
638 "job_step_info_response_msg_t". On failure "undef" is returned with
639 errno set.
640
641 $slurm->print_job_step_info_msg($out, $step_info_msg, $one_liner);
642
643 Output information about all Slurm job steps based upon message as
644 loaded using "get_job_steps()".
645
646 · IN $out: file to write to.
647
648 · IN $step_info_msg: job step information message, with structure of
649 "job_step_info_response_msg_t".
650
651 · IN $one_liner: print as a single line if true.
652
653 $slurm->print_job_step_info($out, $step_info, $one_liner);
654
655 Output information about a specific Slurm job step based upon message
656 as loaded using "get_job_steps()".
657
658 · IN $out: file to write to.
659
660 · IN $step_info: job step information, with structure of
661 "job_step_info_t".
662
663 · IN $one_liner: print as a single line if true.
664
665 $str = $slurm->sprint_job_step_info($step_info, $one_liner);
666
667 Output information about a specific Slurm job step based upon message
668 as loaded using "get_job_steps()".
669
670 · IN $step_info: job step information, with structure of
671 "job_step_info_t".
672
673 · IN $one_liner: print as a single line if true.
674
675 · RET: string containing formatted output.
676
677 $layout = $slurm->job_step_layout_get($job_id, $step_id);
678
679 Get the layout structure for a particular job step.
680
681 · IN $job_id: Slurm job ID.
682
683 · IN $step_id: Slurm step ID.
684
685 · RET: layout of the job step, with structure of "slurm_step_layout_t".
686 On failure "undef" is returned with errno set.
687
688 $resp = $slurm->job_step_stat($job_id, $step_id, $nodelist=undef);
689
690 Get status of a current step.
691
692 · IN $job_id : Slurm job ID.
693
694 · IN $step_id: Slurm step ID.
695
696 · IN $nodelist: nodes to check status of step. If omitted, all nodes in
697 step are used.
698
699 · RET: response of step status, with structure of
700 "job_step_stat_response_msg_t". On failure "undef" is returned.
701
702 $resp = $slurm->job_step_get_pids($job_id, $step_id, $nodelist);
703
704 Get the complete list of pids for a given job step.
705
706 · IN $job_id: Slurm job ID.
707
708 · IN $step_id: Slurm step ID.
709
710 · IN $nodelist: nodes to check pids of step. If omitted, all nodes in
711 step are used.
712
713 · RET: response of pids information, with structure of
714 "job_step_pids_response_msg_t". On failure "undef" is returned.
715
716 SLURM NODE CONFIGURATION READ/PRINT/UPDATE FUNCTIONS
717 $resp = $slurm->load_node($update_time=0, $show_flags=0);
718
719 Issue RPC to get all node configuration information if changed.
720
721 · IN $update_time: time of current configuration data.
722
723 · IN $show_flags: node filtering options.
724
725 · RET: response hash reference with structure of "node_info_msg_t". On
726 failure "undef" is returned with errno set.
727
728 $slurm->print_node_info_msg($out, $node_info_msg, $one_liner=0);
729
730 Output information about all Slurm nodes based upon message as loaded
731 using "load_node()".
732
733 · IN $out: FILE handle to write to.
734
735 · IN $node_info_msg: node information message to print, with structure
736 of "node_info_msg_t".
737
738 · IN $one_liner: if true, each node info will be printed as a single
739 line.
740
741 $slurm->print_node_table($out, $node_info, $one_liner=0);
742
743 Output information about a specific Slurm node based upon message as
744 loaded using "load_node()".
745
746 · IN $out: FILE handle to write to.
747
748 · IN $node_info: an individual node information record with structure
749 of "node_info_t".
750
751 · IN $one_liner: whether to print as a single line.
752
753 $str = $slurm->sprint_node_table($node_info, $one_liner=0);
754
755 Output information about a specific Slurm node based upon message as
756 loaded using "load_node".
757
758 · IN $node_info: an individual node information record with structure
759 of "node_info_t".
760
761 · IN $one_liner: whether to print as a single line.
762
763 · RET: string containing formatted output on success, "undef" on
764 failure.
765
766 $rc = $slurm->update_node($node_info);
767
768 Issue RPC to modify a node's configuration per request, only usable by
769 user root.
770
771 · IN $node_info: description of node updates, with structure of
772 "update_node_msg_t".
773
774 · RET: 0 on success, -1 on failure with errno set.
775
776 SLURM SWITCH TOPOLOGY CONFIGURATION READ/PRINT FUNCTIONS
777 $resp = $slurm->load_topo();
778
779 Issue RPC to get all switch topology configuration information.
780
781 · RET: response hash reference with structure of
782 "topo_info_response_msg_t". On failure "undef" is returned with errno
783 set.
784
785 $slurm->print_topo_info_msg($out, $topo_info_msg, $one_liner=0);
786
787 Output information about all switch topology configuration information
788 based upon message as loaded using "load_topo()".
789
790 · IN $out: FILE handle to write to.
791
792 · IN $topo_info_msg: swith topology information message, with structure
793 of "topo_info_response_msg_t".
794
795 · IN $one_liner: print as a single line if not zero.
796
797 $slurm->print_topo_record($out, $topo_info, $one_liner);
798
799 Output information about a specific Slurm topology record based upon
800 message as loaded using "load_topo()".
801
802 · IN $out: FILE handle to write to.
803
804 · IN $topo_info: an individual switch information record, with
805 structure of "topo_info_t".
806
807 · IN $one_liner: print as a single line if not zero.
808
809 SLURM SELECT READ/PRINT/UPDATE FUNCTIONS
810 $rc = $slurm->get_select_nodeinfo($nodeinfo, $data_type, $state,
811 $data);
812
813 Get data from a select node credential.
814
815 · IN $nodeinfo: select node credential to get data from.
816
817 · IN $data_type: type of data to get.
818
819 · TODO: enumerate data type and returned value.
820
821 · IN $state: state of node query.
822
823 · OUT $data: the data got.
824
825 SLURM PARTITION CONFIGURATION READ/PRINT/UPDATE FUNCTIONS
826 $resp = $slurm->load_partitions($update_time=0, $show_flags=0);
827
828 Issue RPC to get all Slurm partition configuration information if
829 changed.
830
831 · IN $update_time: time of current configuration data.
832
833 · IN $show_flags: partitions filtering options.
834
835 · RET: response hash reference with structure of
836 "partition_info_msg_t".
837
838 $slurm->print_partition_info_msg($out, $part_info_msg, $one_liner=0);
839
840 Output information about all Slurm partitions based upon message as
841 loaded using "load_partitions()".
842
843 · IN $out: FILE handle to write to.
844
845 · IN $part_info_msg: partitions information message, with structure of
846 "partition_info_msg_t".
847
848 · IN $one_liner: print as a single line if true.
849
850 $slurm->print_partition_info($out, $part_info, $one_liner=0);
851
852 Output information about a specific Slurm partition based upon message
853 as loaded using "load_partitions()".
854
855 · IN $out: FILE handle to write to.
856
857 · IN $part_info: an individual partition information record, with
858 structure of "partition_info_t".
859
860 · IN $one_liner: print as a single ine if true.
861
862 $str = $slurm->sprint_partition_info($part_info, $one_liner=0);
863
864 Output information about a specific Slurm partition based upon message
865 as loaded using "load_reservations()".
866
867 · IN $part_info: an individual partition information record, with
868 structure of "partition_info_t".
869
870 · IN $one_liner: print as a single line if true.
871
872 · RET: string containing formatted output. On failure "undef" is
873 returned.
874
875 $rc = $slurm->create_partition($part_info);
876
877 Create a new partition, only usable by user root.
878
879 · IN $part_info: description of partition configuration with structure
880 of "update_part_msg_t".
881
882 · RET: 0 on success, -1 on failure with errno set.
883
884 $rc = $slurm->update_partition($part_info);
885
886 Issue RPC to update a partition's configuration per request, only
887 usable by user root.
888
889 · IN $part_info: description of partition updates with structure of
890 "update_part_msg_t".
891
892 · RET: 0 on success, -1 on failure with errno set.
893
894 $rc = $slurm->delete_partition($part_info)
895
896 Issue RPC to delete a partition, only usable by user root.
897
898 · IN $part_info: description of partition to delete, with structure of
899 "delete_part_msg_t".
900
901 · RET: 0 on success, -1 on failure with errno set.
902
903 SLURM RESERVATION CONFIGURATION READ/PRINT/UPDATE FUNCTIONS
904 $name = $slurm->create_reservation($resv_info);
905
906 Create a new reservation, only usable by user root.
907
908 · IN $resv_info: description of reservation, with structure of
909 "resv_desc_msg_t".
910
911 · RET: name of reservation created. On failure "undef" is returned with
912 errno set.
913
914 $rc = $slurm->update_reservation($resv_info);
915
916 Modify an existing reservation, only usable by user root.
917
918 · IN $resv_info: description of reservation, with structure of
919 "resv_desc_msg_t".
920
921 · RET: error code.
922
923 $rc = $slurm->delete_reservation($resv_info);
924
925 Issue RPC to delete a reservation, only usable by user root.
926
927 · IN $resv_info: description of reservation to delete, with structure
928 of "reservation_name_msg_t".
929
930 · RET: error code
931
932 $resp = $slurm->load_reservations($update_time=0);
933
934 Issue RPC to get all Slurm reservation configuration information if
935 changed.
936
937 · IN $update_time: time of current configuration data.
938
939 · RET: response of reservation information, with structure of
940 "reserve_info_msg_t". On failure "undef" is returned with errno set.
941
942 $slurm->print_reservation_info_msg($out, $resv_info_msg, $one_liner=0);
943
944 Output information about all Slurm reservations based upon message as
945 loaded using "load_reservation()".
946
947 · IN $out: FILE handle to write to.
948
949 · IN $resv_info_msg: reservation information message, with structure of
950 "reserve_info_msg_t".
951
952 · IN $one_liner: print as a single line if true.
953
954 $slurm->print_reservation_info($out, $resv_info, $one_liner=0);
955
956 Output information about a specific Slurm reservation based upon
957 message as loaded using "load_reservation()".
958
959 · IN $out: FILE handle to write to.
960
961 · IN $resv_info: an individual reservation information record, with
962 structure of "reserve_info_t".
963
964 · IN $one_liner: print as a single line if true.
965
966 $str = $slurm->sprint_reservation_info($resv_info, $one_liner=0);
967
968 Output information about a specific Slurm reservation based upon
969 message as loaded using "load_reservations()".
970
971 · IN $resv_info: an individual reservation information record, with
972 structure of "reserve_info_t".
973
974 · IN $one_liner: print as a single line if true.
975
976 · RET: string containing formatted output. On failure "undef" is
977 returned.
978
979 SLURM PING/RECONFIGURE/SHUTDOWN FUNCTIONS
980 $rc = $slurm->ping($primary);
981
982 Issue RPC to ping Slurm controller (slurmctld).
983
984 · IN primary: 1 for primary controller, 2 for secondary controller.
985
986 · RET: error code.
987
988 $rc = $slurm->reconfigure()
989
990 Issue RPC to have Slurm controller (slurmctld) reload its configuration
991 file.
992
993 · RET: error code.
994
995 $rc = $slurm->shutdown($options);
996
997 Issue RPC to have Slurm controller (slurmctld) cease operations, both
998 the primary and backup controller are shutdown.
999
1000 · IN $options:
1001
1002 · 0: all slurm daemons are shutdown.
1003
1004 · 1: slurmctld generates a core file.
1005
1006 · 2: only the slurmctld is shutdown (no core file).
1007
1008 · RET: error code.
1009
1010 $rc = $slurm->takeover();
1011
1012 Issue RPC to have Slurm backup controller take over the primary
1013 controller. REQUEST_CONTROL is sent by the backup to the primary
1014 controller to take control.
1015
1016 · RET: error code.
1017
1018 $rc = $slurm->set_debug_level($debug_level)
1019
1020 Issue RPC to set slurm controller debug level.
1021
1022 · IN $debug_level: requested debug level.
1023
1024 · RET: 0 on success, -1 on error with errno set.
1025
1026 $rc = $slurm->set_schedlog_level($schedlog_level);
1027
1028 Issue RPC to set slurm scheduler log level.
1029
1030 · schedlog_level: requested scheduler log level.
1031
1032 · RET: 0 on success, -1 on error with errno set.
1033
1034 SLURM JOB SUSPEND FUNCTIONS
1035 $rc = $slurm->suspend($job_id);
1036
1037 Suspend execution of a job.
1038
1039 · IN $job_id: job on which top perform operation.
1040
1041 · RET: error code.
1042
1043 $rc = $slurm->resume($job_id);
1044
1045 Resume execution of a previously suspended job.
1046
1047 · IN $job_id: job on which to perform operation.
1048
1049 · RET: error code.
1050
1051 $rc = $slurm->requeue($job_id);
1052
1053 Re-queue a batch job, if already running then terminate it first.
1054
1055 · IN $job_id: job on which to perform operation.
1056
1057 · RET: error code.
1058
1059 SLURM JOB CHECKPOINT FUNCTIONS
1060 $rc = $slurm->checkpoint_able($job_id, $step_id, $start_time);
1061
1062 Determine if the specified job step can presently be checkpointed.
1063
1064 · IN $job_id: job on which to perform operation.
1065
1066 · IN $step_id: job step on which to perform operation.
1067
1068 · OUT $start_time: time at which checkpoint request was issued.
1069
1070 · RET: 0 (can be checkpoined) or a slurm error code.
1071
1072 $rc = $slurm->checkpoint_disable($job_id, $step_id);
1073
1074 Disable checkpoint requests for some job step.
1075
1076 · IN $job_id: job on which to perform operation.
1077
1078 · IN $step_id: job step on which to perform operation.
1079
1080 · RET: error code.
1081
1082 $rc = $slurm->checkpoint_enable($job_id, $step_id);
1083
1084 Enable checkpoint requests for some job step.
1085
1086 · IN $job_id: job on which to perform operation.
1087
1088 · IN $step_id: job step on which to perform operation.
1089
1090 · RET: error code.
1091
1092 $rc = $slurm->checkpoint_create($job_id, $step_id, $max_wait,
1093 $image_dir);
1094
1095 Initiate a checkpoint requests for some job step. The job will continue
1096 execution after the checkpoint operation completes.
1097
1098 · IN $job_id: job on which to perform operation.
1099
1100 · IN $step_id: job step on which to perform operation.
1101
1102 · IN $max_wait: maximum wait for operation to complete, in seconds.
1103
1104 · IN $image_dir: directory to store image files.
1105
1106 · RET: error code.
1107
1108 $rc = $slurm->checkpoint_vacate($job_id, $step_id, $max_wait,
1109 $image_dir);
1110
1111 Initiate a checkpoint requests for some job step. The job will
1112 terminate after the checkpoint operation completes.
1113
1114 · IN $job_id: job on which to perform operation.
1115
1116 · IN $step_id: job step on which to perform operation.
1117
1118 · IN $max_wait: maximum wait for operation to complete, in seconds.
1119
1120 · IN $image_dir: directory to store image files.
1121
1122 · RET: error code.
1123
1124 $rc = $slurm->checkpoint_restart($job_id, $step_id, $stick, $image_dir)
1125
1126 Restart execution of a checkpointed job step.
1127
1128 · IN $job_id: job on which to perform operation.
1129
1130 · IN $step_id: job step on which to perform operation.
1131
1132 · IN $stick: if true, stick to nodes previously running on.
1133
1134 · IN $image_dir: directory to find checkpoint image files.
1135
1136 · RET: error code.
1137
1138 $rc = $slurm->checkpoint_complete($job_id, $step_id, $begin_time,
1139 $error_code, $error_msg);
1140
1141 Note the completion of a job step's checkpoint operation.
1142
1143 · IN $job_id: job on which to perform operation.
1144
1145 · IN $step_id: job step on which to perform operation.
1146
1147 · IN $begin_time: time at which checkpoint began.
1148
1149 · IN $error_code: error code, highest value for all complete calls is
1150 preserved.
1151
1152 · IN $error_msg: error message, preserved for highest error_code.
1153
1154 · RET: error code.
1155
1156 checkpoint_task_complete($job_id, $step_id, $task_id, $begin_time,
1157 $error_code, $error_msg);
1158
1159 Note the completion of a task's checkpoint operation.
1160
1161 · IN $job_id: job on which to perform operation.
1162
1163 · IN $step_id: job step on which to perform operation.
1164
1165 · IN $task_id: task which completed the operation.
1166
1167 · IN $begin_time: time at which checkpoint began.
1168
1169 · IN $error_code: error code, highest value for all complete calls is
1170 preserved.
1171
1172 · IN $error_msg: error message, preserved for highest error_code.
1173
1174 · RET: error code.
1175
1176 $rc = $slurm->checkpoint_error($job_id, $step_id, $error_code,
1177 $error_msg);
1178
1179 Gather error information for the last checkpoint operation for some job
1180 step.
1181
1182 · IN $job_id: job on which to perform operation.
1183
1184 · IN $step_id: job step on which to perform operation.
1185
1186 · OUT $error_code: error number associated with the last checkpoint
1187 operation.
1188
1189 · OUT $error_msg: error message associated with the last checkpoint
1190 operation.
1191
1192 · RET: error code.
1193
1194 $rc = $slurm->checkpoint_tasks($job_id, $step_id, $image_dir,
1195 $max_wait, $nodelist);
1196
1197 Send checkoint request to tasks of specified job step.
1198
1199 · IN $job_id: job on which to perform operation.
1200
1201 · IN $step_id: job step on which to perform operation.
1202
1203 · IN $image_dir: location to store checkpoint image files.
1204
1205 · IN $max_wait: seconds to wait for the operation to complete.
1206
1207 · IN $nodelist: nodes to send the request.
1208
1209 · RET: 0 on success, non-zero on failure with errno set.
1210
1211 SLURM TRIGGER FUNCTIONS
1212 $rc = $slurm->set_trigger($trigger_info);
1213
1214 Set an event trigger.
1215
1216 · IN $trigger_info: hash reference of specification of trigger to
1217 create, with structure of "trigger_info_t".
1218
1219 · RET: error code.
1220
1221 $rc = $slurm->clear_trigger($trigger_info);
1222
1223 Clear an existing event trigger.
1224
1225 · IN $trigger_info: hash reference of specification of trigger to
1226 remove, with structure of "trigger_info_t".
1227
1228 · RET: error code.
1229
1230 $resp = $slurm->get_triggers();
1231
1232 Get all event trigger information.
1233
1234 · RET: hash reference with structure of "trigger_info_msg_t". On
1235 failure "undef" is returned with errno set.
1236
1237 JOB/NODE STATE TESTING FUNCTIONS
1238 The following are functions to test job/node state, based on the macros
1239 defined in src/common/slurm_protocol_defs.h. The functions take a
1240 parameter of a hash reference of a job/node, and return a boolean
1241 value. For job, $job->{job_state} is tested. For node,
1242 $node->{node_state} is tested.
1243
1244 $cond = IS_JOB_PENDING($job);
1245
1246 $cond = IS_JOB_RUNNING($job);
1247
1248 $cond = IS_JOB_SUSPENDED($job);
1249
1250 $cond = IS_JOB_COMPLETE($job);
1251
1252 $cond = IS_JOB_CANCELLED($job);
1253
1254 $cond = IS_JOB_FAILED($job);
1255
1256 $cond = IS_JOB_TIMEOUT($job);
1257
1258 $cond = IS_JOB_NODE_FAILED($job);
1259
1260 $cond = IS_JOB_COMPLETING($job);
1261
1262 $cond = IS_JOB_CONFIGURING($job);
1263
1264 $cond = IS_JOB_STARTED($job);
1265
1266 $cond = IS_JOB_FINISHED($job);
1267
1268 $cond = IS_JOB_COMPLETED($job);
1269
1270 $cond = IS_JOB_RESIZING($job);
1271
1272 $cond = IS_NODE_UNKNOWN($node);
1273
1274 $cond = IS_NODE_DOWN($node);
1275
1276 $cond = IS_NODE_IDLE($node);
1277
1278 $cond = IS_NODE_ALLOCATED($node);
1279
1280 $cond = IS_NODE_ERROR($node);
1281
1282 $cond = IS_NODE_MIXED($node);
1283
1284 $cond = IS_NODE_FUTURE($node);
1285
1286 $cond = IS_NODE_DRAIN($node);
1287
1288 $cond = IS_NODE_DRAINING($node);
1289
1290 $cond = IS_NODE_DRAINED($node);
1291
1292 $cond = IS_NODE_COMPLETING($node);
1293
1294 $cond = IS_NODE_NO_RESPOND($node);
1295
1296 $cond = IS_NODE_POWER_SAVE($node);
1297
1298 $cond = IS_NODE_POWER_UP($node);
1299
1300 $cond = IS_NODE_FAIL($node);
1301
1302 $cond = IS_NODE_MAINT($node);
1303
1305 The job/node state testing functions are exported by default.
1306
1307 If ':constant' if specified, all constants are exported.
1308
1310 Slurm::Constant, Slurm::Hostlist, Slurm::Stepctx, Slurm::Bitstr
1311
1312 <slurm/slurm.h> for various hash reference structures.
1313
1314 Home page of Slurm: <http://slurm.schedmd.com>.
1315
1317 This library is created by Hongjia Cao, <hjcao(AT)nudt.edu.cn> and
1318 Danny Auble, <da(AT)llnl.gov>. It is distributed with Slurm.
1319
1321 This library is free software; you can redistribute it and/or modify it
1322 under the same terms as Perl itself, either Perl version 5.8.4 or, at
1323 your option, any later version of Perl 5 you may have available.
1324
1325
1326
1327perl v5.30.1 2020-01-30 Slurm(3)