3 #ifndef __ARC_EXECUTIONTARGET_H__
4 #define __ARC_EXECUTIONTARGET_H__
15 #include <arc/DateTime.h>
16 #include <arc/compute/Endpoint.h>
18 #include <arc/Utils.h>
19 #include <arc/compute/GLUE2Entity.h>
20 #include <arc/compute/JobDescription.h>
21 #include <arc/compute/Software.h>
22 #include <arc/compute/SubmissionStatus.h>
28 class SubmitterPlugin;
60 :
Software(Name), FreeSlots(-1), FreeJobs(-1), FreeUserSeats(-1) {}
62 :
Software(Name, Version), FreeSlots(-1), FreeJobs(-1), FreeUserSeats(-1) {}
64 Software::operator=(sv);
111 : VirtualMachine(
false), CPUClockSpeed(-1), MainMemorySize(-1),
112 ConnectivityIn(
false), ConnectivityOut(
false) {}
114 std::string Platform;
116 std::string CPUVendor;
117 std::string CPUModel;
118 std::string CPUVersion;
137 bool ConnectivityOut;
149 Reservation(
false), BulkSubmission(
false),
150 TotalPhysicalCPUs(-1), TotalLogicalCPUs(-1), TotalSlots(-1),
152 WorkingAreaShared(
true), WorkingAreaTotal(-1), WorkingAreaFree(-1), WorkingAreaLifeTime(-1),
153 CacheTotal(-1), CacheFree(-1) {}
156 std::string ProductName;
157 std::string ProductVersion;
160 int TotalPhysicalCPUs;
161 int TotalLogicalCPUs;
164 std::list<std::string> NetworkInfo;
165 bool WorkingAreaShared;
166 int WorkingAreaTotal;
168 Period WorkingAreaLifeTime;
182 MaxWallTime(-1), MaxTotalWallTime(-1), MinWallTime(-1), DefaultWallTime(-1),
183 MaxCPUTime(-1), MaxTotalCPUTime(-1), MinCPUTime(-1), DefaultCPUTime(-1),
184 MaxTotalJobs(-1), MaxRunningJobs(-1), MaxWaitingJobs(-1),
185 MaxPreLRMSWaitingJobs(-1), MaxUserRunningJobs(-1), MaxSlotsPerJob(-1),
186 MaxStageInStreams(-1), MaxStageOutStreams(-1),
189 TotalJobs(-1), RunningJobs(-1), LocalRunningJobs(-1), WaitingJobs(-1), LocalWaitingJobs(-1),
190 SuspendedJobs(-1), LocalSuspendedJobs(-1), StagingJobs(-1), PreLRMSWaitingJobs(-1),
191 EstimatedAverageWaitingTime(-1), EstimatedWorstWaitingTime(-1),
192 FreeSlots(-1), UsedSlots(-1), RequestedSlots(-1) {}
201 std::string MappingQueue;
214 int MaxPreLRMSWaitingJobs;
215 int MaxUserRunningJobs;
217 int MaxStageInStreams;
218 int MaxStageOutStreams;
219 std::string SchedulingPolicy;
245 URL DefaultStorageService;
249 int LocalRunningJobs;
251 int LocalWaitingJobs;
253 int LocalSuspendedJobs;
255 int PreLRMSWaitingJobs;
256 Period EstimatedAverageWaitingTime;
257 Period EstimatedWorstWaitingTime;
270 std::string ReservationPolicy;
282 TotalJobs(-1), RunningJobs(-1), WaitingJobs(-1),
283 StagingJobs(-1), SuspendedJobs(-1), PreLRMSWaitingJobs(-1) {}
286 std::string URLString;
287 std::string InterfaceName;
288 std::string HealthState;
289 std::string HealthStateInfo;
290 std::string QualityLevel;
291 std::set<std::string> Capability;
292 std::string Technology;
293 std::list<std::string> InterfaceVersion;
294 std::list<std::string> InterfaceExtension;
295 std::list<std::string> SupportedProfile;
296 std::string Implementor;
298 std::string ServingState;
299 std::string IssuerCA;
300 std::list<std::string> TrustedCA;
309 int PreLRMSWaitingJobs;
311 std::list<std::string> JobDescriptions;
323 TotalJobs(-1), RunningJobs(-1), WaitingJobs(-1),
324 StagingJobs(-1), SuspendedJobs(-1), PreLRMSWaitingJobs(-1) {}
328 std::set<std::string> Capability;
329 std::string QualityLevel;
335 int PreLRMSWaitingJobs;
369 std::map<int, ExecutionEnvironmentType> ExecutionEnvironment;
386 std::set<int> ComputingEndpointIDs;
396 std::set<int> ComputingShareIDs;
407 void GetExecutionTargets(T& container)
const;
412 std::map<int, ComputingEndpointType> ComputingEndpoint;
413 std::map<int, ComputingShareType> ComputingShare;
414 std::map<int, ComputingManagerType> ComputingManager;
419 void AddExecutionTarget(T& container,
const ExecutionTarget& et)
const;
449 Benchmarks(new std::map<std::string, double>()),
459 Location(t.Location), AdminDomain(t.AdminDomain), ComputingService(t.ComputingService),
460 ComputingEndpoint(t.ComputingEndpoint), OtherEndpoints(t.OtherEndpoints),
461 ComputingShare(t.ComputingShare), ComputingManager(t.ComputingManager),
462 ExecutionEnvironment(t.ExecutionEnvironment),
463 Benchmarks(t.Benchmarks), ApplicationEnvironments(t.ApplicationEnvironments) {}
475 Location(l), AdminDomain(a), ComputingService(cse),
476 ComputingEndpoint(ce), OtherEndpoints(oe), ComputingShare(csh),
477 ComputingManager(cm), ExecutionEnvironment(ee),
478 Benchmarks(b), ApplicationEnvironments(ae) {}
495 ExecutionEnvironment((*(
ExecutionTarget*)addrptr).ExecutionEnvironment),
497 ApplicationEnvironments((*(
ExecutionTarget*)addrptr).ApplicationEnvironments) {}
501 Location = et.Location; AdminDomain = et.AdminDomain; ComputingService = et.ComputingService;
502 ComputingEndpoint = et.ComputingEndpoint; ComputingEndpoint = et.ComputingEndpoint; ComputingShare = et.ComputingShare;
503 ComputingManager = et.ComputingManager; Benchmarks = et.Benchmarks;
504 ExecutionEnvironment = et.ExecutionEnvironment; ApplicationEnvironments = et.ApplicationEnvironments;
510 SubmissionStatus Submit(
const UserConfig& ucfg,
const JobDescription& jobdesc, Job& job)
const;
535 static void GetExecutionTargets(
const std::list<ComputingServiceType>& csList, std::list<ExecutionTarget>& etList);
537 CountedPointer<LocationAttributes> Location;
538 CountedPointer<AdminDomainAttributes> AdminDomain;
539 CountedPointer<ComputingServiceAttributes> ComputingService;
540 CountedPointer<ComputingEndpointAttributes> ComputingEndpoint;
541 std::list< CountedPointer<ComputingEndpointAttributes> > OtherEndpoints;
542 CountedPointer<ComputingShareAttributes> ComputingShare;
543 CountedPointer<ComputingManagerAttributes> ComputingManager;
544 CountedPointer<ExecutionEnvironmentAttributes> ExecutionEnvironment;
545 CountedPointer< std::map<std::string, double> > Benchmarks;
546 CountedPointer< std::list<ApplicationEnvironment> > ApplicationEnvironments;
549 static Logger logger;
554 #endif // __ARC_EXECUTIONTARGET_H__