[saga-core-wg] SAGA Job scheduling features
Jérémie Chevalier
jeremie.chevalier at cetic.be
Wed Aug 6 01:47:17 CDT 2008
Dear Andre,
Thank you very much for your answers.
Indeed that is what I was looking for. Your answers are very helpful to me.
Thanks again !
Regards,
Jeremie.
Andre Merzky a écrit :
> Hi,
>
> Quoting [J?r?mie Chevalier] (Aug 05 2008):
>
>> Hello,
>>
>> I'm Jeremie, R&D Engineer at the CETIC research center (Belgium).
>> In the future, it is likely that I will develop SAGA adaptors (Job
>> management) for some Grid middlewares.
>>
>> I have a couple of questions regarding the Job Management
>> implementation of SAGA:
>> * Does it support the launch of several jobs in one single operation,
>> like the drmaa_run_bulk_jobs() of the DRMAA API ?
>>
>
> Yes, but the mechanism for that needs some explaining, so
> please bear with me if the answer is not short...
>
> First, there is no direct (i.e. explicit) API call for bulk
> job submission. However, SAGA hase some notion of bulk job
> submission, and in fact of bulk operations, which is
> expressed as follows:
>
> saga::job::service js;
> saga::job::description jd; // needs to be filled
> saga::task_container tc;
>
> // create 100 jobs, and add them to the task container.
> // Note that the jobs are not running, but in New state
> for ( int i = 0; i < 100; i ++ )
> {
> saga::job::job j = js.create_job (jd);
> tc.add_task (j);
> }
>
> // run all tasks and jobs in the task container
> // this is the point where the adaptor can perform bulk
> // optimization.
> tc.run ();
>
> The same mechanism is also available for any other async
> operation,
>
> saga::job::file f (url);
> saga::task_container tc;
>
> // create 100 copy tasks, and add them to the task container.
> // Note that the tasks are not running, but in New state
> for ( int i = 0; i < 100; i ++ )
> {
> saga::task t = f.copy <saga::task::Async> (target[i]);
> tc.add_task (t);
> }
>
> // run all tasks and jobs in the task container
> // this is the point where the adaptor can perform bulk
> // optimization.
> tc.run ();
>
>
> If run is performed on a task container, the saga engine is
> parsing all tasks in the task container (remember that job
> inherits from the task class, thus is a task, too). If
> multiple tasks are found which can be handled by the same
> adaptor, then a bulk method in that adaptor is invoked,
> which can perform all of them at once.
>
> This mechanism was implemented quite a while ago, and has
> been shown to work, but I am not sure about its status at
> the moment - Hartmut may be more up to date. Anyway, we
> should be able to revive it, if that is what you need.
>
> On adaptor level, it would just require the implementation
> of another set of operations, which get a set of
> instructions to perform, instead of a single instruction.
>
>
>
>> * Is there any class in the SAGA specification that permits the
>> retrieval of the return code of the job launched ?
>>
>
> Yes, that works as follows:
>
>
> saga::job::service js;
> saga::job::description jd; // needs to be filled
> saga::job::job j = js.create_job (jd);
>
> j.run ();
> j.wait (); // job is in final state now
>
> saga::job::state state = job.get_state ();
>
> if ( saga::job::Failed == state )
> {
> std::string exitcode = job.get_attribute (saga::job::attributes::exitcode);
>
> std::cout << "Job failed with exitcode:"
> << exitcode
> << std::endl;
>
> exit (atoi (exitcode));
> }
>
>
> Hope that is what you where looking for.
>
>
>
>> I have to admit that I haven't read the whole SAGA API specifications
>> yet, but I wanted to get and idea about the two points mentioned above.
>>
>
> It is a long and tedious read, we know. But I am afraid
> that you need to read most of it if you want to implement an
> adaptor, e.g. Section 1 to 3, and the job part of section 4.
>
> Cheers, Andre.
>
>
>> Thanks for your help.
>> Best regards,
>> Jeremie.
>>
--
*Jérémie Chevalier*, /R&D Engineer/
CETIC
Software and Service Technologies department
SOA Team
Phone (Office): +32 (0)71 490 731
Rue des frères Wright 29/3
6041 Charleroi
Spécialisé dans les Technologies de l'Information et de la
Communication, le *CETIC* se positionne en tant que Centre d'Excellence
en soutien technologique des entreprises.
Plus d'informations sur le site www.cetic.be <http://www.cetic.be>
Specialised in Information and Communication Technologies, *CETIC* is
positioned as a centre of excellence in technological support for business.
More information on www.cetic.be <http://www.cetic.be>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/saga-core-wg/attachments/20080806/beed45c8/attachment.html
More information about the saga-core-wg
mailing list