Is this one for me, the original poster or for both of us?. Anyway, just
out of curiosity (as I am not familiar with licensing issues), how do
third
party software that uses SLURM does to make you pay so much money in
licenses while not breaking GPL rules?, do they use system calls?. I never
liked systems calls... For example EngineFrame...
Thanks in advance
Enviado desde mi iPad
El 7/11/2014, a las 22:02, Ralph Castain <[email protected]> escribió:
Just be sure you understand that by using slurm.h and linking against
libslurm, your application will become GPL. IANAL, so you should check
with
one, if you care.
On Nov 7, 2014, at 11:14 AM, José Román Bilbao Castro <[email protected]
>
wrote:
Going even further, I have realized you are following an outdated
documentation (12 releases behind from current one which is 14!!).
Here is the current API:
http://slurm.schedmd.com/api.html
Have a look at the "Resource allocation" section, not the job steps one:
- *slurm_init_job_desc_msg*—Initialize the data structure used in
resource allocation requests. You can then just set the fields of
particular interest and let the others use default values.
- *slurm_job_will_run*—Determine if a job would be immediately
initiated
if submitted now.
- *slurm_allocate_resources*—Allocate resources for a job. Response
message must be freed using
*slurm_free_resource_allocation_response_msg*
to
avoid a memory leak.
- *slurm_free_resource_allocation_response_msg*— Frees memory
allocated
by *slurm_allocate_resources*.
- *slurm_allocate_resources_and_run*—Allocate resources for a job and
spawn a job step. Response message must be freed using
*slurm_free_resource_allocation_and_run_response_msg* to avoid a
memory
leak.
- *slurm_free_resource_allocation_and_run_response_msg*— Frees memory
allocated by *slurm_allocate_resources_and_run*.
- *slurm_submit_batch_job*—Submit a script for later execution.
Response
message must be freed using *slurm_free_submit_response_response_msg*
to
avoid a memory leak.
- *slurm_free_submit_response_response_msg*— Frees memory allocated by
*slurm_submit_batch_job*.
- *slurm_confirm_allocation*—Test if a resource allocation has already
been made for a given job id. Response message must be freed using
*slurm_free_resource_allocation_response_msg* to avoid a memory leak.
This can be used to confirm that an allocation is still active or for
error
recovery
The steps one is to manage the steps concept I suppose. I mean, once you
submit a job it follows a series of steps that change its status. I think
this is the concept of step here. Steps should not be created nor modified
by the user but by the scheduler itself. So it is up to the programmer to
submit a job and query steps if needed, but not to modify them...
By the way, I have never programmed using slurm but I think I could be
correct ;). If not, I will be delighted to get responses because I will be
using job submission API in a few days!
Bests
Enviado desde mi iPad
El 7/11/2014, a las 20:02, José Román Bilbao Castro <[email protected]>
escribió:
I have read a bit further. I think this can be a misunderstanding of
documentation. It does not say you cannot submit jobs but that you
should use this API to create and populate new jobs information. There
is a structure that defines a job but it shouldn't be manipulated
directly but through the API. Once the job is defined, you can submit
it using a different API:
http://slurm.schedmd.com/launch_plugins.html
Have a look at the last sentence on the first section. It states to
have a look at the src/plugins/launch/slurm/launch_slurm.c file.
Also, for a broader picture, have a look at this page on the Developers
section:
http://slurm.schedmd.com/documentation.html
Specially on the Design subsection where the process of creating and
submitting a job is further described (it consists of multiple steps
and APIs).
Hope this helps
Enviado desde mi iPad
El 7/11/2014, a las 16:08, Всеволод Никоноров <[email protected]>
escribió:
Hello Walter,
Maybe you could just use "system" function?
#include <cstdlib>
#include <cstdio>
int main (int argc, char** argv)
{
printf ("begin\n");
system ("sleep 1");
printf ("end\n");
}
Place you sbatch call instead my "sleep 1", shouldn't this do what you
want?
06.11.2014, 09:49, "Walter Landry" <[email protected]>:
Hello Everyone,
What is the recommended way for a C++ program to submit a job? О©╫The
API documentation says
О©╫О©╫SLURM job steps involve numerous interactions with the slurmd
О©╫О©╫daemon. The job step creation is only the first step in the
О©╫О©╫process. We don't advise direct user creation of job steps, but
О©╫О©╫include the information here for completeness.
Should I use system("srun")? О©╫DRMAA?
Thank you,
Walter Landry
[email protected]
--О©╫
Vsevolod Nikonorov, JSC NIKIET
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫