100 likes | 231 Views
Some ideas for the future. Francesco.Giacomini@cnaf.infn.it WP1 Meeting Milano, 11 th September 2001. Overview. Complex jobs Dependency on Condor Use of existing frameworks. Complex Jobs: Definition. A complex job is a set of jobs with dependencies among them.
E N D
Some ideas for the future Francesco.Giacomini@cnaf.infn.it WP1 Meeting Milano, 11th September 2001
Overview • Complex jobs • Dependency on Condor • Use of existing frameworks
Complex Jobs: Definition A complex job is a set of jobs with dependencies among them. • Dependencies are temporal and are given, for example, by I/O requirements. • subjob B needs as input the output of subjob A • The definition is very vague and generic.
Complex Jobs:(initial) Assumptions • Dependencies are not cyclical • Otherwise subjobs have to execute concurrently (co-allocation problem) • The definition is not recursive • A subjob cannot be a complex job • Otherwise the semantics of a dependency is more complicated
Complex Jobs: Example A B F • The complex job can be represented as a Direct Acyclical Graph (DAG) C D E
Complex Jobs: Simple Solution • Represent a DAG with a nested ClassAd (?) • “Linearise” the DAG • for the example: A C D B E F • use a “topological sort” algorithm • the solution is not unique • For each subjob send it to the Resource Broker independently • Data representing a dependency is saved in a “temporary” and “anonymous” file
Complex Jobs: Other Issues • Job identifiers • Interaction with LB • What to do in case a subjob fails • Various types of dependencies
Dependency on Condor • In my opinion we should get rid as soon as possible of our dependency on those parts of Condor which will not likely become Open Source (TM) • Starting with Condor-G • job submission is not particularly difficult directly on top of Globus • job monitoring should be done based on info in the LB
Implementing ComputingElement • Implemented the ComputingElement interface directly on top of Globus, so that one can do: ComputingElement ce(“pcfg.cnaf.infn.it”); Job job; job.set_attribute(“executable”, “/bin/sleep”); job.set_attribute(“arguments”, “10”); ce.submit(job); ce.cancel(job);
Using Existing Frameworks • We should evaluate and possibly adopt existing (OO) application frameworks, instead or reinventing the wheel • there was a comment on this from one of the D1.2 reviewers • One possibility is the Adaptive Communication Environment (ACE) (www.cs.wustl.edu/~schmidt/ACE.html)