From 9b02a5c9ea842dcea58dc85fbfd79ac0b25efca4 Mon Sep 17 00:00:00 2001 From: ALEXks Date: Mon, 3 Mar 2025 13:36:20 +0300 Subject: [PATCH] improved planner --- src/files/Supervisor.h | 11 +++++++++-- src/files/version.h | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/files/Supervisor.h b/src/files/Supervisor.h index 6fbc31cf..df95e2ee 100644 --- a/src/files/Supervisor.h +++ b/src/files/Supervisor.h @@ -114,6 +114,7 @@ public: changeState(); } + vector taskList; map, std::greater> sortedByKernelNeeds; size_t activeTasks = 0; size_t totalProcessTasks = 0; @@ -126,6 +127,7 @@ public: sortedByKernelNeeds[task->getKernels()].push(task); if (maxNeededKernels < task->getKernels()) maxNeededKernels = task->getKernels(); + taskList.push_back(task); } } @@ -155,7 +157,7 @@ public: vector toDel; size_t done = 0; - size_t step = ceil(totalProcessTasks * 0.01); // step == 1% + size_t step = ceil(totalProcessTasks * 0.02); // step == 2% const double total = totalProcessTasks; auto timer_start = Utils::getAbsoluteTime(); @@ -206,7 +208,8 @@ public: printf(" done task with %d kernels and id %ld\n", task->getKernels(), task->getId()); #endif buf += to_string(task->getId()) + " " + string(task->printState().getCharArray()) + " " + to_string(task->getTotalTime()) + "\n"; - task->copyResults(pathRes); + //copy after end of while + //task->copyResults(pathRes); } } @@ -235,6 +238,9 @@ public: } } + for (auto& task : taskList) + task->copyResults(pathRes); + changeState(); String outFile(pathRes + "/" + getStatePrefix() + "Info.txt"); @@ -250,6 +256,7 @@ public: FILE *f = fopen("progress", "w"); if (f) { fprintf(f, "%lld", persentDone); + fflush(f); fclose(f); } } diff --git a/src/files/version.h b/src/files/version.h index 9a037142..9d607966 100644 --- a/src/files/version.h +++ b/src/files/version.h @@ -1 +1 @@ -10 \ No newline at end of file +11 \ No newline at end of file