1 #ifndef WRENCH_BATCHJOB_H
2 #define WRENCH_BATCHJOB_H
4 #include "wrench/workflow/job/StandardJob.h"
19 BatchJob(std::shared_ptr<WorkflowJob> job,
unsigned long job_id,
unsigned long time_in_minutes,
unsigned long number_nodes,
20 unsigned long cores_per_node, std::string username,
double ending_time_stamp,
double arrival_time_stamp);
23 unsigned long getJobID();
24 unsigned long getRequestedTime();
25 void setRequestedTime(
unsigned long time);
26 unsigned long getRequestedCoresPerNode();
27 std::string getUsername();
28 double getMemoryRequirement();
29 double getBeginTimestamp();
30 void setBeginTimestamp(
double time_stamp);
31 double getEndingTimestamp();
32 double getArrivalTimestamp();
33 unsigned long getRequestedNumNodes();
34 std::shared_ptr<WorkflowJob> getWorkflowJob();
35 void setEndingTimestamp(
double time_stamp);
36 std::map<std::string, std::tuple<unsigned long, double>> getResourcesAllocated();
37 void setAllocatedResources(std::map<std::string, std::tuple<unsigned long, double>> resources);
43 void setAllocatedNodeIndices(std::vector<int> indices) {
44 this->allocated_node_indices = indices;
51 std::vector<int> getAllocatedNodeIndices() {
52 return this->allocated_node_indices;
57 friend class CONSERVATIVEBFBatchScheduler;
58 friend class CONSERVATIVEBFBatchSchedulerCoreLevel;
60 u_int32_t conservative_bf_start_date;
61 u_int32_t conservative_bf_expected_end_date;
64 unsigned long requested_num_nodes;
65 unsigned long requested_time;
66 std::shared_ptr<WorkflowJob> job;
67 unsigned long requested_cores_per_node;
69 double begin_time_stamp;
70 double ending_time_stamp;
71 double arrival_time_stamp;
72 std::map<std::string, std::tuple<unsigned long, double>> resources_allocated;
74 std::vector<int> allocated_node_indices;
79 std::string csv_metadata;
81 std::string csv_allocated_processors;
93 #endif //WRENCH_BATCHJOB_H