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 >>>>> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ >>>>> О©╫О©╫О©╫О©╫О©╫О©╫ >> >> >
