[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Condor-devel] Question on Grid Manager and GAHP
- Date: Wed, 30 Jul 2008 11:44:36 +0100
- From: Stephen McGough <asm@xxxxxxxxxxxx>
- Subject: 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
------------------------------------------------------------------------