1 #ifndef LIBFASTER_FASTSCHEDULER_H 2 #define LIBFASTER_FASTSCHEDULER_H 6 #include <unordered_map> 9 #include "definitions.h" 17 unsigned int numProcs;
18 unsigned long int numTasks;
19 std::vector<fastTask *> taskList;
20 std::vector<double> currentWeights;
21 std::vector<std::string> * funcName;
22 bool _dataMigrationNeeded;
27 std::shared_ptr<std::vector<double>> getNewAllocation();
28 void resetProcessWeights();
30 fastScheduler(
unsigned int numProcs, std::vector<std::string> * funcName);
33 fastTask * enqueueTask(
fddOpType opT,
unsigned long int idSrc,
unsigned long int idRes,
int funcId,
size_t size, std::vector< std::tuple<void*, size_t, int> > & globalTable);
34 fastTask * enqueueTask(
fddOpType opT,
unsigned long int id,
size_t size, std::vector< std::tuple<void*, size_t, int> > & globalTable);
36 void taskProgress(
unsigned long int id,
unsigned long int pid,
size_t time,
procstat & stat);
37 void taskFinished(
unsigned long int id,
size_t time);
39 void setCalibration(std::vector<size_t> time);
41 void printProcstats(
fastTask * task);
43 void printTaskInfo(
size_t task);
45 void updateTaskInfo();
47 bool dataMigrationNeeded();
48 std::vector<std::deque< std::pair<int,long int> >> getDataMigrationInfo();
49 std::vector<size_t> getAllocation(
size_t size);
50 void setAllocation(std::vector<size_t> & alloc,
size_t size);
unsigned int fddOpType
Dataset operation type.