Skip to content
Snippets Groups Projects
Commit e08954a8 authored by Moe Jette's avatar Moe Jette
Browse files

Expand example of slurm_step_launch().

parent acc2956f
No related branches found
No related tags found
No related merge requests found
...@@ -100,23 +100,45 @@ SLURM controller. ...@@ -100,23 +100,45 @@ SLURM controller.
.SH "EXAMPLE .SH "EXAMPLE
.LP .LP
/*
.br
* To compile:
.br
* gcc test.c \-o test \-g \-pthread \-lslurm
.br
*
.br
* Or if Slurm is not in your default search paths:
.br
* gcc test.c \-o test \-g \-pthread \-I{$SLURM_DIR}/include
.br
* \-Wl,\-\-rpath={$SLURM_DIR}/lib \-L{$SLURM_DIR}/lib \-lslurm
.br
*/
.br
#include <stdio.h> #include <stdio.h>
.br .br
#include <stdlib.h> #include <stdlib.h>
.br .br
#include <string.h>
.br
#include <slurm/slurm.h> #include <slurm/slurm.h>
.br .br
#include <slurm/slurm_errno.h> #include <slurm/slurm_errno.h>
.LP .LP
static void _task_start(launch_tasks_response_msg_t *msg) static void _task_start(launch_tasks_response_msg_t *msg)
.br .br
printf("task startup completed\\n"); {
.br .br
} printf("Task startup completed\\n");
.br .br
}
.LP
static void _task_finish(task_exit_msg_t *msg) static void _task_finish(task_exit_msg_t *msg)
.br .br
printf("tasks completed\\n"); {
.br
printf("Tasks completed\\n");
.br .br
} }
.LP .LP
...@@ -132,9 +154,13 @@ int main (int argc, char *argv[]) ...@@ -132,9 +154,13 @@ int main (int argc, char *argv[])
.br .br
slurm_job_step_launch_callbacks_t callbacks; slurm_job_step_launch_callbacks_t callbacks;
.br .br
uint32_t job_id, step_id;
.LP .LP
/* Set up step_req here */ slurm_step_ctx_create_params_init(&step_req);
.br
step_req.node_count = 1;
.br
step_req.num_tasks = 1;
.br .br
step_ctx = slurm_step_ctx_create(&step_req); step_ctx = slurm_step_ctx_create(&step_req);
.br .br
...@@ -145,10 +171,22 @@ int main (int argc, char *argv[]) ...@@ -145,10 +171,22 @@ int main (int argc, char *argv[])
exit(1); exit(1);
.br .br
} }
.br
slurm_step_ctx_get(step_ctx, SLURM_STEP_CTX_JOBID,
.br
&job_id);
.br
slurm_step_ctx_get(step_ctx, SLURM_STEP_CTX_STEPID,
.br
&step_id);
.br
printf("Ready to start job %u step %u\n", job_id, step_id);
.LP .LP
slurm_job_step_launch_t_init(&params); slurm_job_step_launch_t_init(&params);
.br .br
/* Set params values here */ params.argc = argc \- 1;
.br
params.argv = argv + 1;
.br .br
callbacks.task_start = _task_start; callbacks.task_start = _task_start;
.br .br
...@@ -163,6 +201,8 @@ int main (int argc, char *argv[]) ...@@ -163,6 +201,8 @@ int main (int argc, char *argv[])
exit(1); exit(1);
.br .br
} }
.br
printf("Sent step launch RPC\\n");
.br .br
if (slurm_step_launch_wait_start(step_ctx) != SLURM_SUCCESS) { if (slurm_step_launch_wait_start(step_ctx) != SLURM_SUCCESS) {
.br .br
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment