ARC SDK
Data Structures | Public Member Functions
Arc::Submitter Class Reference

Class for submitting jobs. More...

#include <arc/compute/Submitter.h>

Public Member Functions

 Submitter (const UserConfig &uc)
 Create a Submitter object. More...
 
void addConsumer (EntityConsumer< Job > &addConsumer_consumer)
 Add a Job consumer. More...
 
void removeConsumer (EntityConsumer< Job > &removeConsumer_consumer)
 Remove a previous added consumer object. More...
 
SubmissionStatus Submit (const Endpoint &endpoint, const JobDescription &desc)
 Submit job to endpoint. More...
 
SubmissionStatus Submit (const Endpoint &endpoint, const JobDescription &desc, Job &job)
 Submit job to endpoint. More...
 
SubmissionStatus Submit (const Endpoint &endpoint, const std::list< JobDescription > &descs)
 Submit jobs to endpoint. More...
 
SubmissionStatus Submit (const Endpoint &endpoint, const std::list< JobDescription > &descs, std::list< Job > &jobs)
 Submit jobs to endpoint. More...
 
SubmissionStatus Submit (const std::list< Endpoint > &endpoint, const std::list< JobDescription > &descs)
 Submit jobs to any endpoints. More...
 
SubmissionStatus Submit (const std::list< Endpoint > &endpoint, const std::list< JobDescription > &descs, std::list< Job > &jobs)
 Submit jobs to any endpoints. More...
 
SubmissionStatus Submit (const ExecutionTarget &et, const JobDescription &desc)
 Submit job to ExecutionTarget (computing service) More...
 
SubmissionStatus Submit (const ExecutionTarget &et, const JobDescription &desc, Job &job)
 Submit job to ExecutionTarget (computing service) More...
 
SubmissionStatus Submit (const ExecutionTarget &et, const std::list< JobDescription > &descs)
 Submit jobs to ExecutionTarget (computing service) More...
 
SubmissionStatus Submit (const ExecutionTarget &et, const std::list< JobDescription > &descs, std::list< Job > &jobs)
 Submit jobs to ExecutionTarget (computing service) More...
 
SubmissionStatus BrokeredSubmit (const std::list< std::string > &endpoints, const std::list< JobDescription > &descs, const std::list< std::string > &requestedSubmissionInterfaces=std::list< std::string >())
 Submit jobs to matching and ranked computing services. More...
 
SubmissionStatus BrokeredSubmit (const std::list< std::string > &endpoints, const std::list< JobDescription > &descs, std::list< Job > &jobs, const std::list< std::string > &requestedSubmissionInterfaces=std::list< std::string >())
 Submit jobs to matching and ranked computing services. More...
 
SubmissionStatus BrokeredSubmit (const std::list< Endpoint > &endpoints, const std::list< JobDescription > &descs, const std::list< std::string > &requestedSubmissionInterfaces=std::list< std::string >())
 Submit jobs to matching and ranked computing services. More...
 
SubmissionStatus BrokeredSubmit (const std::list< Endpoint > &endpoints, const std::list< JobDescription > &descs, std::list< Job > &jobs, const std::list< std::string > &requestedSubmissionInterfaces=std::list< std::string >())
 Submit jobs to matching and ranked computing services. More...
 
const std::list< const
JobDescription * > & 
GetDescriptionsNotSubmitted () const
 Get job descriptions not submitted. More...
 
void ClearNotSubmittedDescriptions ()
 Clear list of not submitted job descriptions. More...
 
const EndpointStatusMapGetEndpointQueryingStatuses () const
 Get status map for queried endpoints. More...
 
void ClearEndpointQueryingStatuses ()
 Clear endpoint status querying map. More...
 
const std::map< Endpoint,
EndpointSubmissionStatus > & 
GetEndpointSubmissionStatuses () const
 Get submission status map. More...
 
void ClearEndpointSubmissionStatuses ()
 Clear submission status map. More...
 
void ClearAllStatuses ()
 Clear all status maps. More...
 
void ClearAll ()
 Clear all. More...
 

Detailed Description

Class for submitting jobs.

As the name indicates this class is used for submitting jobs. It has a number of different submit methods which can be used directly for different job submission purposes. The class it self can be considered as a frontend to the SubmitterPlugin class, an abstract class which is extended by specialised plugins providing the actual coupling to a particular type of computing service. As a frontend, this class also takes care of loading the specialised plugins and choosing the right plugin for a given computing service, however that can also be done manually with the SubmitterPluginLoader class. In order to use the Submitter class a reference to a UserConfig object must be provided, it should exist throughout the lifetime of the created Submitter object, and the UserConfig object should contain configuration details such as the path to user credentials.

Generally there are two types of submit methods. One which doesn't accept a reference to a Job or list of Job objects, and one which does. This is because the Submitter class is able to pass submitted Job objects to consumer objects. Registering a consumer object is done using the addConsumer method passing a reference to an EntityConsumer<Job> object. An example of such a consumer is the JobSupervisor class. Multiple consumers can be registered for the same Submitter object. Every submit method will then pass submitted Job objects to the registered consumer objects. A registered consumer can be removed using the removeConsumer method.

For submitting a Grid job one should use one of the BrokeredSubmit methods. They accept a list of job descriptions and a list of information system endpoints for which computing services are discovered and matched to the job descriptions. Jobs are then submitted to the matching services in the order ranked by the algorithm specified in the UserConfig object.

Another way of submitting a job is by using the Submit methods. These methods accepts submission endpoints or ExecutionTarget objects. Using these methods will not do any client side checks whether the computing service resources pointed to by the submission endpoint (or ExecutionTarget) really matches the specified job description(s).

Common for both ways of submitting jobs is that they both return a SubmissionStatus object indicating the outcome of the submission attemp(s). If the returned status object indicates failures, further examination can be carried out by using the GetDescriptionsNotSubmitted, GetEndpointQueryingStatuses and/or GetEndpointSubmissionStatuses methods. Note that on each invocation of any of the submit methods the state from a previous submission attemp will be cleared, thus the just mentioned methods should be used just after an attempted submission fails.

An example of submitting a Grid job using C++ is shown below:

#include <arc/Logger.h>
#include <arc/UserConfig.h>
#include <arc/compute/Endpoint.h>
#include <arc/compute/Job.h>
#include <arc/compute/JobDescription.h>
#include <arc/compute/Submitter.h>
#include <arc/compute/JobInformationStorageXML.h>
int main() {
// Set up logging to stderr with level VERBOSE (a lot of output will be shown)
Arc::LogStream logcerr(std::cerr);
logcerr.setFormat(Arc::ShortFormat);
Arc::Logger logger(Arc::Logger::getRootLogger(), "jobsubmit");
// UserConfig contains information on credentials and default services to use.
// This form of the constructor is necessary to initialise the local job list.
Arc::UserConfig usercfg("", "");
// Simple job description which outputs hostname to stdout
std::string jobdesc("&(executable=/bin/hostname)(stdout=stdout)");
// Parse job description
std::list<Arc::JobDescription> jobdescs;
if (!Arc::JobDescription::Parse(jobdesc, jobdescs)) {
logger.msg(Arc::ERROR, "Invalid job description");
return 1;
}
// Use top-level NorduGrid information index to find resources
Arc::Endpoint index("ldap://index1.nordugrid.org:2135/Mds-Vo-name=NorduGrid,o=grid",
"org.nordugrid.ldapegiis");
std::list<Arc::Endpoint> services(1, index);
// Do the submission
std::list<Arc::Job> jobs;
Arc::Submitter submitter(usercfg);
if (submitter.BrokeredSubmit(services, jobdescs, jobs) != Arc::SubmissionStatus::NONE) {
logger.msg(Arc::ERROR, "Failed to submit job");
return 1;
}
// Write information on submitted job to local job list (~/.arc/jobs.xml)
if (!jobList.Write(jobs)) {
logger.msg(Arc::WARNING, "Failed to write to local job list %s", usercfg.JobListFile());
}
// Job submitted ok
std::cout << "Job submitted with job id " << jobs.front().JobID << std::endl;
return 0;
}

This code can be compiled with

g++ -o submit -I/usr/include/libxml2 `pkg-config --cflags glibmm-2.4` -l arccompute submit.cpp

Same example using Python shown below:

1 import arc
2 import sys
3 
4 # Set up logging to stderr with level VERBOSE (a lot of output will be shown)
5 logstdout = arc.LogStream(sys.stdout)
6 logstdout.setFormat(arc.ShortFormat)
7 arc.Logger_getRootLogger().addDestination(logstdout)
8 arc.Logger_getRootLogger().setThreshold(arc.VERBOSE)
9 logger = arc.Logger(arc.Logger_getRootLogger(), "jobsubmit")
10 
11 # UserConfig contains information on credentials and default services to use.
12 # This form of the constructor is necessary to initialise the local job list.
13 usercfg = arc.UserConfig("", "")
14 
15 # Simple job description which outputs hostname to stdout
16 jobdescstring = "&(executable=/bin/hostname)(stdout=stdout)"
17 
18 # Parse job description
19 jobdescs = arc.JobDescriptionList()
20 if not arc.JobDescription_Parse(jobdescstring, jobdescs):
21  logger.msg(arc.ERROR, "Invalid job description")
22  sys.exit(1);
23 
24 # Use top-level NorduGrid information index to find resources
25 index = arc.Endpoint("ldap://index1.nordugrid.org:2135/Mds-Vo-name=NorduGrid,o=grid",
26  arc.Endpoint.REGISTRY,
27  "org.nordugrid.ldapegiis")
28 services = arc.EndpointList(1, index)
29 
30 # Do the submission
31 jobs = arc.JobList()
32 submitter = arc.Submitter(usercfg)
33 if submitter.BrokeredSubmit(services, jobdescs, jobs) != arc.SubmissionStatus.NONE:
34  logger.msg(arc.ERROR, "Failed to submit job")
35  sys.exit(1)
36 
37 # Write information on submitted job to local job list (~/.arc/jobs.xml)
38 jobList = arc.JobInformationStorageXML(usercfg.JobListFile())
39 if not jobList.Write(jobs):
40  logger.msg(arc.WARNING, "Failed to write to local job list %s", usercfg.JobListFile())
41 
42 # Job submitted ok
43 print "Job submitted with job id %s" % jobs.front().JobID

And same example using Java:

import nordugrid.arc.Logger;
import nordugrid.arc.LogStream_ostream;
import nordugrid.arc.UserConfig;
import nordugrid.arc.Endpoint;
import nordugrid.arc.EndpointList;
import nordugrid.arc.Job;
import nordugrid.arc.JobList;
import nordugrid.arc.JobDescription;
import nordugrid.arc.JobDescriptionList;
import nordugrid.arc.Submitter;
import nordugrid.arc.JobInformationStorageXML;
public class BasicJobSubmission
{
public static void main(String argv[])
{
// Set up logging to stderr with level VERBOSE (a lot of output will be shown)
LogStream_ostream logstdout = new LogStream_ostream(nordugrid.arc.arc.getStdout());
logstdout.setFormat(nordugrid.arc.LogFormat.ShortFormat);
Logger.getRootLogger().addDestination(logstdout);
Logger.getRootLogger().setThreshold(nordugrid.arc.LogLevel.VERBOSE);
Logger logger = new Logger(Logger.getRootLogger(), "jobsubmit");
// UserConfig contains information on credentials and default services to use.
// This form of the constructor is necessary to initialise the local job list.
UserConfig usercfg = new UserConfig("", "");
// Simple job description which outputs hostname to stdout
String jobdesc = "&(executable=/bin/hostname)(stdout=stdout)";
// Parse job description
JobDescriptionList jobdescs = new JobDescriptionList();
if (!JobDescription.Parse(jobdesc, jobdescs).toBool()) {
logger.msg(nordugrid.arc.LogLevel.ERROR, "Invalid job description");
System.exit(1);
}
// Use top-level NorduGrid information index to find resources
Endpoint index = new Endpoint("ldap://index1.nordugrid.org:2135/Mds-Vo-name=NorduGrid,o=grid",
Endpoint.CapabilityEnum.REGISTRY,
"org.nordugrid.ldapegiis");
EndpointList services = new EndpointList();
services.add(index);
// Do the submission
JobList jobs = new JobList();
Submitter submitter = new Submitter(usercfg);
if (!submitter.BrokeredSubmit(services, jobdescs, jobs).equals(nordugrid.arc.SubmissionStatus.SubmissionStatusType.NONE)) {
logger.msg(nordugrid.arc.LogLevel.ERROR, "Failed to submit job");
System.exit(1);
}
// Write information on submitted job to local job list (~/.arc/jobs.xml)
JobInformationStorageXML jobList = new JobInformationStorageXML(usercfg.JobListFile());
if (!jobList.Write(jobs)) {
logger.msg(nordugrid.arc.LogLevel.WARNING, "Failed to write to local job list " + usercfg.JobListFile());
}
// Job submitted ok
System.out.println("Job submitted with job id " + jobs.begin().next().getJobID());
return;
}
}
Since
Added in 2.0.0

Constructor & Destructor Documentation

Arc::Submitter::Submitter ( const UserConfig uc)
inline

Create a Submitter object.

Stores a reference to the passed UserConfig object which will be used for obtaining among others location of user credentials.

Note
The UserConfig object must exist throughout the life time of the created Submitter object.

Member Function Documentation

void Arc::Submitter::addConsumer ( EntityConsumer< Job > &  addConsumer_consumer)
inline

Add a Job consumer.

Add a consumer object which will be called every time a job is submitted.

Example use of consumer concept:

Parameters
[in]addConsumer_consumerconsumer object receiving newly submitted jobs.
See Also
removeConsumer
SubmissionStatus Arc::Submitter::BrokeredSubmit ( const std::list< std::string > &  endpoints,
const std::list< JobDescription > &  descs,
const std::list< std::string > &  requestedSubmissionInterfaces = std::list< std::string >() 
)

Submit jobs to matching and ranked computing services.

The passed job descriptions will be submitted to any of the matching computing services in ranked order, which have been discovered using the provided information endpoints.

First all previously set statuses will be cleared by invoking the ClearAll method. Then resource discovery is invoked using the ComputingServiceRetriever class to query the provided information endpoints, then for each JobDescription object the discovered computing services is matched against the job description, then matching computing services is ranked according to the broker algorithm (specified in the UserConfig object of the Submitter). Then if any requested submission interfaces has been specified in the optional parameter 'requestedSubmissionInterfaces', then computing services which doesn't have a matching submission interface will be ignored. Lastly the job description is tried submitted to the computing services in the ranked order, and upon the first successful submission a corresponding Job object is propagated to the registered consumers, and then the next job description is processed. If a job description cannot be submitted a pointer to it will be added to an internal list, which afterwards can be obtained using the GetDescriptionsNotSubmitted method. If any problems was encountered during submission, more details can be obtained from the returned SubmissionStatus object, or by using the GetDescriptionsNotSubmitted, GetEndpointQueryingStatuses and GetEndpointSubmissionStatuses.

Parameters
[in]endpointsthe information endpoints which will be used to initiate resource discovery.
[in]descsthe JobDescription objects describing the jobs to be submitted.
[in]requestedSubmissionInterfacesan optional list of submission interfaces to use for submission.
Returns
A SubmissionStatus object is returned indicating the status of the submissions.
See Also
addConsumer
GetDescriptionsNotSubmitted
GetEndpointQueryingStatuses
GetEndpointSubmissionStatuses
Since
Added in 3.0.0
SubmissionStatus Arc::Submitter::BrokeredSubmit ( const std::list< std::string > &  endpoints,
const std::list< JobDescription > &  descs,
std::list< Job > &  jobs,
const std::list< std::string > &  requestedSubmissionInterfaces = std::list< std::string >() 
)

Submit jobs to matching and ranked computing services.

Identical to BrokeredSubmit except that submitted jobs are added to the referenced list of Job objects.

Parameters
[in]endpointsthe information endpoints which will be used to initiate resource discovery.
[in]descsthe JobDescription objects describing the jobs to be submitted.
[in]jobsreference to a list of Job obects for which to add submitted jobs.
[in]requestedSubmissionInterfacesan optional list of submission interfaces to use for submission.
Returns
A SubmissionStatus object is returned indicating the status of the submissions.
See Also
addConsumer
GetDescriptionsNotSubmitted
GetEndpointQueryingStatuses
GetEndpointSubmissionStatuses
Since
Added in 3.0.0
SubmissionStatus Arc::Submitter::BrokeredSubmit ( const std::list< Endpoint > &  endpoints,
const std::list< JobDescription > &  descs,
const std::list< std::string > &  requestedSubmissionInterfaces = std::list< std::string >() 
)

Submit jobs to matching and ranked computing services.

Identical to BrokeredSubmit except that the endpoints are not strings but Endpoint objects, which can be used to provide detailed information about endpoints making resource discovery more performant.

Parameters
[in]endpointsthe information endpoints which will be used to initiate resource discovery.
[in]descsthe JobDescription objects describing the jobs to be submitted.
[in]requestedSubmissionInterfacesan optional list of submission interfaces to use for submission.
Returns
A SubmissionStatus object is returned indicating the status of the submissions.
See Also
addConsumer
GetDescriptionsNotSubmitted
GetEndpointQueryingStatuses
GetEndpointSubmissionStatuses
Since
Added in 3.0.0
SubmissionStatus Arc::Submitter::BrokeredSubmit ( const std::list< Endpoint > &  endpoints,
const std::list< JobDescription > &  descs,
std::list< Job > &  jobs,
const std::list< std::string > &  requestedSubmissionInterfaces = std::list< std::string >() 
)

Submit jobs to matching and ranked computing services.

Identical to BrokeredSubmit except that submitted jobs are added to the referenced list of Job objects and that the endpoints are not strings but Endpoint objects, which can be used to provide detailed information about endpoints making resource discovery more performant.

Parameters
[in]endpointsthe information endpoints which will be used to initiate resource discovery.
[in]descsthe JobDescription objects describing the jobs to be submitted.
[in]jobsreference to a list of Job obects for which to add submitted jobs.
[in]requestedSubmissionInterfacesan optional list of submission interfaces to use for submission.
Returns
A SubmissionStatus object is returned indicating the status of the submissions.
See Also
addConsumer
GetDescriptionsNotSubmitted
GetEndpointQueryingStatuses
GetEndpointSubmissionStatuses
Since
Added in 3.0.0
void Arc::Submitter::ClearAll ( )
inline

Clear all.

Convenience method which calls ClearNotSubmittedDescriptions and ClearEndpointQueryingStatuses and ClearEndpointSubmissionStatuses.

Since
Added in 3.0.0
void Arc::Submitter::ClearAllStatuses ( )
inline

Clear all status maps.

Convenience method which calls ClearEndpointQueryingStatuses and ClearEndpointSubmissionStatuses.

Since
Added in 3.0.0
void Arc::Submitter::ClearEndpointQueryingStatuses ( )
inline

Clear endpoint status querying map.

Since
Added in 3.0.0
void Arc::Submitter::ClearEndpointSubmissionStatuses ( )
inline

Clear submission status map.

Since
Added in 3.0.0
void Arc::Submitter::ClearNotSubmittedDescriptions ( )
inline

Clear list of not submitted job descriptions.

const std::list<const JobDescription*>& Arc::Submitter::GetDescriptionsNotSubmitted ( ) const
inline

Get job descriptions not submitted.

Returns
A reference to the list of the not submitted job descriptions is returned.
const EndpointStatusMap& Arc::Submitter::GetEndpointQueryingStatuses ( ) const
inline

Get status map for queried endpoints.

The returned map contains EndpointQueryingStatus objects of all the information endpoints which were queried during resource discovery.

Returns
A reference to the status map of queried endpoints.
Since
Added in 3.0.0
const std::map<Endpoint, EndpointSubmissionStatus>& Arc::Submitter::GetEndpointSubmissionStatuses ( ) const
inline

Get submission status map.

The returned map contains EndpointSubmissionStatus objects for all the submission endpoints which were tried for job submission.

Returns
A reference to the submission status map.
Since
Added in 3.0.0
void Arc::Submitter::removeConsumer ( EntityConsumer< Job > &  removeConsumer_consumer)

Remove a previous added consumer object.

Parameters
[in]removeConsumer_consumerconsumer object which should be removed.
See Also
addConsumer
SubmissionStatus Arc::Submitter::Submit ( const Endpoint endpoint,
const JobDescription desc 
)
inline

Submit job to endpoint.

Submit a job described by the passed JobDescription object to the specified submission endpoint of a computing service. The method will load the specialised submitter plugin which corresponds to the specified interface name. If no such plugin is found submission is unsuccessful. If however the the interface name is unspecified (empty), then all available submitter plugins will be tried. If submission is successful, the submitted job will be added to the registered consumer object. If unsuccessful, more details can be obtained from the returned SubmissionStatus object, or by using the GetDescriptionsNotSubmitted, GetEndpointQueryingStatuses and GetEndpointSubmissionStatuses.

Parameters
[in]endpointthe endpoint to which job should be submitted.
[in]descthe JobDescription object describing the job to be submitted.
Returns
A SubmissionStatus object is returned indicating the status of submission.
See Also
addConsumer
GetDescriptionsNotSubmitted
GetEndpointQueryingStatuses
GetEndpointSubmissionStatuses
Since
Added in 3.0.0
SubmissionStatus Arc::Submitter::Submit ( const Endpoint endpoint,
const JobDescription desc,
Job job 
)

Submit job to endpoint.

Identical to Submit(const Endpoint&, const JobDescription&), with the addition that the Job object passed as reference will also be filled with job information if submission was successful.

Parameters
[out]joba reference to a Job object which will be filled with job details if submission was successful.
See Also
Submit(const Endpoint&, const JobDescription&) for detailed description.
Since
Added in 3.0.0
SubmissionStatus Arc::Submitter::Submit ( const Endpoint endpoint,
const std::list< JobDescription > &  descs 
)

Submit jobs to endpoint.

Identical to Submit(const Endpoint&, const JobDescription&), except that this method submits multiple jobs to same endpoint. Submitted jobs will be added to the registered consumer.

See Also
Submit(const Endpoint&, const JobDescription&)
Since
Added in 3.0.0
SubmissionStatus Arc::Submitter::Submit ( const Endpoint endpoint,
const std::list< JobDescription > &  descs,
std::list< Job > &  jobs 
)

Submit jobs to endpoint.

Identical to Submit(const Endpoint&, const JobDescription&), with the addition that the list of Job objects passed reference will filled with the submitted jobs, and that multiple jobs are submitted to same endpoint.

See Also
Submit(const Endpoint&, const JobDescription&)
Since
Added in 3.0.0
SubmissionStatus Arc::Submitter::Submit ( const std::list< Endpoint > &  endpoint,
const std::list< JobDescription > &  descs 
)

Submit jobs to any endpoints.

Submit multiple jobs to a list of submission endpoints to computing services. For each JobDescription object submission is tried against the list of submission endpoints in order. If submission to a endpoint fails the next in the list is tried - no ranking of endpoints will be done. Also note that a job is only submitted once, and not to multiple computing services. Submitted Job objects is passed to the registered consumer objects.

Returns
A SubmissionStatus object is returned which indicates the outcome of the submission.
See Also
addConsumer
GetDescriptionsNotSubmitted
GetEndpointQueryingStatuses
GetEndpointSubmissionStatuses
Since
Added in 3.0.0
SubmissionStatus Arc::Submitter::Submit ( const std::list< Endpoint > &  endpoint,
const std::list< JobDescription > &  descs,
std::list< Job > &  jobs 
)

Submit jobs to any endpoints.

Identical to Submit(const Endpoint&, const std::list<JobDescription>&, std::list<Job>&) with the addition that submitted jobs are also added to the passed list of Job objects.

See Also
Submit(const Endpoint&, const std::list<JobDescription>&, std::list<Job>&)
Since
Added in 3.0.0
SubmissionStatus Arc::Submitter::Submit ( const ExecutionTarget et,
const JobDescription desc 
)
inline

Submit job to ExecutionTarget (computing service)

Submit a job to a computing service, represented by a ExecutionTarget object. This is useful when resource discovery is carried out manually, not using the BrokeredSubmit methods, but using the ComputingServiceRetriever class. The submitter plugin corresponding to the interface name will be loaded. If that plugin cannot be loaded, submission will be unsuccessful. When loaded the ExecutionTarget and JobDescription object will be passed to the SubmitterPlugin::Submit method of the loaded plugin and the status of that method is returned.

Parameters
[in]etthe ExecutionTarget to which job should be submitted.
[in]descthe JobDescription object describing the job to be submitted.
Returns
A SubmissionStatus object is returned indicating the status of submission.
See Also
addConsumer
GetDescriptionsNotSubmitted
GetEndpointQueryingStatuses
GetEndpointSubmissionStatuses
SubmissionStatus Arc::Submitter::Submit ( const ExecutionTarget et,
const JobDescription desc,
Job job 
)

Submit job to ExecutionTarget (computing service)

Identical to Submit(const ExecutionTarget&, const JobDescription&), with the addition that the Job object passed as reference will also be filled with job information if submission was successful.

Parameters
[in]etthe ExecutionTarget to which job should be submitted.
[in]descthe JobDescription object describing the job to be submitted.
Returns
A SubmissionStatus object is returned indicating the status of submission.
See Also
Submit(const ExecutionTarget&, const JobDescription&)
SubmissionStatus Arc::Submitter::Submit ( const ExecutionTarget et,
const std::list< JobDescription > &  descs 
)

Submit jobs to ExecutionTarget (computing service)

Identical to Submit(const ExecutionTarget&, const JobDescription&), except that this method submits multiple jobs to the same computing service. Submitted jobs will be added to the registered consumer.

Parameters
[in]etthe ExecutionTarget to which job should be submitted.
[in]descthe JobDescription object describing the job to be submitted.
Returns
A SubmissionStatus object is returned indicating the status of submission.
See Also
Submit(const ExecutionTarget&, const JobDescription&)
SubmissionStatus Arc::Submitter::Submit ( const ExecutionTarget et,
const std::list< JobDescription > &  descs,
std::list< Job > &  jobs 
)

Submit jobs to ExecutionTarget (computing service)

Identical to Submit(const ExecutionTarget&, const JobDescription&) with the addition that this method submits multiple jobs to the same computing service, and that submitted jobs are also added to the passed list of Job objects.

Parameters
[in]etthe ExecutionTarget to which job should be submitted.
[in]descthe JobDescription object describing the job to be submitted.
Returns
A SubmissionStatus object is returned indicating the status of submission.
See Also
Submit(const ExecutionTarget&, const JobDescription&)

The documentation for this class was generated from the following file: