HTCondor Project List Archives



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Condor-devel] Question on Grid Manager and GAHP



Dear Matt, All,

Thanks for the reply. The following is, from my understanding of the code, an interpretation of what I need to do to write a JSDL/BES GAHP-like-instance into Condor. I'd appreciate people's comments as to the correctness of this approach.

The first thing to say is that I'm not planning on implementing a GAHP client - service combination. The intention is to write a service which appears to Condor as a standard GAHP client though uses the BES interface to submit the jobs through to a remote DRM.

The steps:
In the Init() method of gridmanager.C add in a new JobType for JSDL:

char* name
A human readable name for the GAHP instance
[JSDL]

void (*InitFunc)()
Any code that needs running for setup
jsdlInitFunc() - I'm guessing that this will do nothing.

void (*ReconfigFunc)
Poke the GAHP client to re-configure itself
jsdlReconfigFunc() - I'm guessing that this will do nothing.

bool (*AdMatchFunc)(const ClassAd*)
Take a ClassAd and return true if you can handle it
jsdlAdMatchFunc(const ClassAd) - This seems fairly consistent across other implementations and I shall do the same here for JSDL.

BaseJob *(*CreateFunc)(ClassAd*)
Accept a new job and submit it through GAHP
This is where things get a little more interesting. From what I can figure out for each Job submitted through this function we need to create an object (inheriting from BaseJob) which we pass back. I'm going to create a JSDLJob which inherits from BaseJob and implements the appropriate methods. Now the question is:

Does Condor expect a pull or a push model on BaseJob? Ie is it OK for JSDLJob to run as invoked code such that whenever the object is interrogated it communicates with the remote resource and then responds to Condor. Or should a daemon be run either in JSDLJob to poke the remote service at a regular interval and store this information for when Condor asks for it later?

Many thanks in advance,

steve..


Matthew Farrellee wrote:
Stephen McGough wrote:
Dear All,

Apologies if this question has been answered somewhere else - if so could some kind person point me in the right direction.

I'm evaluating the process of adding a new GAHP (or potentially replacing GAHP) in order to submit jobs through a JSDL / BES submission process from within Condor.

From what I understand GAHP has a client side written into the Grid Manager which communicates with the GAHP server. I've been looking at the Condor source code (V 7.0.3) though at present I'm a little lost as to where in the code it selects which of the GAHP client instances to use (GT2, GT4, UNICORE, INFN etc..).

If someone could point me to the appropriate files that would be greatly appreciated,

steve..

Take a look at src/condor_gridmanager/gridmanager.C::Init()

Then ...::doContactSchedd() looking for the variable jobTypes

Best,


matt

--
------------------------------------------------------------------------
Dr A. Stephen McGough                       http://www.doc.ic.ac.uk/~asm
------------------------------------------------------------------------
Technical Coordinator, London e-Science Centre, Imperial College London,
Department of Computing, 180 Queen's Gate, London SW7 2BZ, UK
tel: +44 (0)207-594-8409                        fax: +44 (0)207-581-8024
------------------------------------------------------------------------