mirror of
				https://github.com/paboyle/Grid.git
				synced 2025-11-04 05:54:32 +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();
 | 
			
		||||
    schedule();
 | 
			
		||||
    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()) 
 | 
			
		||||
                   << std::endl;
 | 
			
		||||
    LOG(Message) << "Start: " << sizeString(scheduler.getMinValue()) 
 | 
			
		||||
                 << std::endl;
 | 
			
		||||
    do
 | 
			
		||||
    {
 | 
			
		||||
        //LOG(Debug) << "Generation " << gen << ":" << std::endl;
 | 
			
		||||
        scheduler.nextGeneration();
 | 
			
		||||
        if (gen != 0)
 | 
			
		||||
        {
 | 
			
		||||
@@ -622,8 +621,8 @@ VirtualMachine::Program VirtualMachine::schedule(const GeneticPar &par)
 | 
			
		||||
        prevPeak = scheduler.getMinValue();
 | 
			
		||||
        if (gen % 10 == 0)
 | 
			
		||||
        {
 | 
			
		||||
            LOG(Iterative) << "Generation " << gen << ": "
 | 
			
		||||
                           << sizeString(scheduler.getMinValue()) << std::endl;
 | 
			
		||||
            LOG(Message) << "Generation " << gen << ": "
 | 
			
		||||
                         << sizeString(scheduler.getMinValue()) << std::endl;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        gen++;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user