Just a general caution to the thread as people were discussing how to use a 
programmatic API to launch a job. I don’t know of any 3rd party software that 
directly links against slurm - we all use fork/exec or system calls to srun to 
avoid the licensing issue.


> On Nov 7, 2014, at 1:47 PM, José Román Bilbao Castro <[email protected]> 
> wrote:
> 
> Hi Ralph,
> 
> 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] 
> <mailto:[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] 
>>> <mailto:[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 <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 
>>> usingslurm_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 
>>> usingslurm_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] 
>>> <mailto:[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 
>>>> <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 
>>>> <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] 
>>>>> <mailto:[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] 
>>>>> <mailto:[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] <mailto:[email protected]>
>>>>> 
>>>>> --О©╫
>>>>> Vsevolod Nikonorov, JSC NIKIET
>>>>> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ 
>>>>> О©╫О©╫О©╫О©╫О©╫О©╫
>> 
>> 
> 

Reply via email to