I can't answer this any slurm-specific case, but it's definitely possible for a piece of software to be licensed under GPL, and still have a fee associated with it.
See this for more info: > https://www.gnu.org/licenses/gpl-faq.html#DoesTheGPLAllowDownloadFee Lloyd Brown Systems Administrator Fulton Supercomputing Lab Brigham Young University http://marylou.byu.edu On 11/07/2014 02:46 PM, José Román Bilbao Castro 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 >>> >>> 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] <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 >>>> >>>> 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] <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 >>>>> О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫ >>>>> О©╫О©╫О©╫О©╫О©╫О©╫ >>
