mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-10-29 19:14:33 +00:00 
			
		
		
		
	posibility to save/load schedules directly from the application parameters
This commit is contained in:
		| @@ -118,7 +118,22 @@ void Application::run(void) | ||||
|     vm().setRunId(getPar().runId); | ||||
|     vm().printContent(); | ||||
|     env().printContent(); | ||||
|     if (getPar().saveSchedule or getPar().scheduleFile.empty()) | ||||
|     { | ||||
|         schedule(); | ||||
|         if (getPar().saveSchedule) | ||||
|         { | ||||
|             std::string filename; | ||||
|  | ||||
|             filename = (getPar().scheduleFile.empty()) ?  | ||||
|                          "hadrons.sched" : getPar().scheduleFile; | ||||
|             saveSchedule(filename); | ||||
|         } | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         loadSchedule(getPar().scheduleFile); | ||||
|     } | ||||
|     printSchedule(); | ||||
|     if (!getPar().graphFile.empty()) | ||||
|     { | ||||
|   | ||||
| @@ -57,6 +57,8 @@ public: | ||||
|                                         VirtualMachine::GeneticPar, genetic, | ||||
|                                         std::string,                runId, | ||||
|                                         std::string,                graphFile, | ||||
|                                         std::string,                scheduleFile, | ||||
|                                         bool,                       saveSchedule, | ||||
|                                         int,                        parallelWriteMaxRetry); | ||||
|         GlobalPar(void): parallelWriteMaxRetry{-1} {} | ||||
|     }; | ||||
|   | ||||
| @@ -35,22 +35,15 @@ using namespace Hadrons; | ||||
| int main(int argc, char *argv[]) | ||||
| { | ||||
|     // parse command line | ||||
|     std::string parameterFileName, scheduleFileName = ""; | ||||
|     std::string parameterFileName; | ||||
|      | ||||
|     if (argc < 2) | ||||
|     { | ||||
|         std::cerr << "usage: " << argv[0] << " <parameter file> [<precomputed schedule>] [Grid options]"; | ||||
|         std::cerr << "usage: " << argv[0] << " <parameter file> [Grid options]"; | ||||
|         std::cerr << std::endl; | ||||
|         std::exit(EXIT_FAILURE); | ||||
|     } | ||||
|     parameterFileName = argv[1]; | ||||
|     if (argc > 2) | ||||
|     { | ||||
|         if (argv[2][0] != '-') | ||||
|         { | ||||
|             scheduleFileName = argv[2]; | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     // initialization | ||||
|     Grid_init(&argc, &argv); | ||||
| @@ -61,10 +54,6 @@ int main(int argc, char *argv[]) | ||||
|         Application application(parameterFileName); | ||||
|          | ||||
|         application.parseParameterFile(parameterFileName); | ||||
|         if (!scheduleFileName.empty()) | ||||
|         { | ||||
|             application.loadSchedule(scheduleFileName); | ||||
|         } | ||||
|         application.run(); | ||||
|     } | ||||
|     catch (const std::exception& e) | ||||
|   | ||||
| @@ -601,11 +601,10 @@ VirtualMachine::Program VirtualMachine::schedule(const GeneticPar &par) | ||||
|     Scheduler scheduler(graph, memPeak, gpar); | ||||
|     gen = 0; | ||||
|     scheduler.initPopulation(); | ||||
|     LOG(Iterative) << "Start: " << sizeString(scheduler.getMinValue())  | ||||
|     LOG(Message) << "Start: " << sizeString(scheduler.getMinValue())  | ||||
|                  << std::endl; | ||||
|     do | ||||
|     { | ||||
|         //LOG(Debug) << "Generation " << gen << ":" << std::endl; | ||||
|         scheduler.nextGeneration(); | ||||
|         if (gen != 0) | ||||
|         { | ||||
| @@ -622,7 +621,7 @@ VirtualMachine::Program VirtualMachine::schedule(const GeneticPar &par) | ||||
|         prevPeak = scheduler.getMinValue(); | ||||
|         if (gen % 10 == 0) | ||||
|         { | ||||
|             LOG(Iterative) << "Generation " << gen << ": " | ||||
|             LOG(Message) << "Generation " << gen << ": " | ||||
|                          << sizeString(scheduler.getMinValue()) << std::endl; | ||||
|         } | ||||
|          | ||||
|   | ||||
		Reference in New Issue
	
	Block a user