I'm not a lawyer, but my understanding is that "b" need not be GPL (same for anything else using a command line interface).

Quoting José Román Bilbao Castro <[email protected]>:

This is a bit old thread but I was wondering what would happen with GPL
licenses under the next scenario:

I write a set of standalone binary programs that invoke SLURM APIs so I can
properly manage errors without the need to perform string parsing. Then, my
project would be composed of two building blocks:

a) This bunch of independent programs that mimmick SLURM commands
 like srun, squeue, etc...

b) My GUI that invokes commands from (a) which output structure is known by
me and thus parsing is straigtforward.

In this case, a) must be GPL but what about b)?

Does it make sense?


2014-11-07 22:50 GMT+01:00 <[email protected]>:


Most use a command line interface, which does not force the GPL license
onto the caller.

Quoting José Román Bilbao Castro <[email protected]>:

 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]> 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

О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫
О©╫О©╫О©╫О©╫О©╫О©╫



--
Morris "Moe" Jette
CTO, SchedMD LLC




--


*José Román Bilbao Castro*

Ingeniero Consultor
+34 901009188

*[email protected] <[email protected]>**http://www.idiria.com
<http://www.idiria.com/>* <*http:// <http://%20%20/>www.idiria.com/
<http://www.idiria.com/>*>

--
Idiria Sociedad Limitada - Aviso legal

Este mensaje, su contenido y cualquier fichero transmitido con él está
dirigido únicamente a su destinatario y es confidencial. Por ello, se
informa a quien lo reciba por error ó tenga conocimiento del mismo sin ser
su destinatario, que la información contenida en él es reservada y su uso
no autorizado, por lo que en tal caso le rogamos nos lo comunique por la
misma  vía o por teléfono (+ 34 690207492), así como que se abstenga de
reproducir el mensaje mediante cualquier medio o remitirlo o entregarlo a
otra persona, procediendo a su borrado de manera inmediata.

Idiria Sociedad Limitada se reserva las acciones legales que le
correspondan contra todo tercero que acceda de forma  ilegítima al
contenido de cualquier mensaje externo procedente del mismo.

Para información y consultas visite nuestra web http://www.idiria.com



Idiria Sociedad Limitada - Disclaimer
This message, its content and any file attached thereto is for the intended
recipient only and is confidential. If you have received this e-mail in
error or had access to it, you should note that the information in it is
private and any use thereof is unauthorised. In such an event please notify
us by e-mail or by telephone (+ 34 690207492). Any reproduction of this
e-mail by whatsoever means and any transmission or dissemination thereof to
other persons is prohibited. It should be deleted immediately from your
system.

Idiria Sociedad Limitada reserves the right to take legal action against
any persons unlawfully gaining access to the content of any external
message it has emitted.

For additional information, please visit our website http://www.idiria.com


--
Morris "Moe" Jette
CTO, SchedMD LLC

Reply via email to