/** * Call several times runOne() for training first, then for testing */ void LearnerExperiment::RunAll() { for(int i=0; i < m_trainRuns; ++i) { OneRun(m_trainEpisodes,true); } for(int i=0; i < m_testRuns; ++i) { OneRun(m_testEpisodes,false); } //learner->SendQtable(); }
void PIOS::Run() { struct pios_params params; struct run_arg args; int runno = 0; Stat *st; __u32 T; __u64 C; __u64 O; __u64 S; __u64 N; memset(¶ms, 0, sizeof(params)); params.factor = 2; params.fpp = 1; params.C[0] = /*8 * 1048576; //*/512 * 1024; params.C[1] = /*8 * 1048576; //*/512 * 1024; params.O[0] = 8 * 1048576; params.O[1] = 8 * 1048576; params.S[0] = 8 * 1048576; params.S[1] = 8 * 1048576; params.N[0] = 1; params.N[1] = 128; params.T[0] = 1; params.T[1] = 16; st = new Stat(/*"pios.res"*/stdout); st->Record("Run\tTest\tTstamp\t\tT\tN\tS\tC\t%s" "Aggregate\tLowest\tHighest\tRun_time\n", params.cpuload ? "CPUload\t" : ""); st->Record("-------------------------------------------------------" "----------------------------------------------------\n"); for (T = params.T[0]; T <= params.T[1]; T *= params.factor) { for (C = params.C[0]; C <= params.C[1]; C *= params.factor) { for (S = params.S[0]; S <= params.S[1]; S *= params.factor) { if (S < C) printf("Error: chunksize (%llu) can not be" "smaller than regionsize (%llu)\n", S, C); for (N = params.N[0]; N <= params.N[1]; N *= params.factor) { for (O = params.O[0]; O <= params.O[1]; O *= params.factor) { BUG_ON(O < S || O < C); memset(&args, 0, sizeof(args)); args.runno = runno; args.threadcount = T; args.regioncount = N; args.chunksize = C; args.regionsize = S; args.offset = O; args.st = st; args.fpp = params.fpp; OneRun(&args); runno++; } } } } } st->Record("------------------------------------------------------" "---------------------------------------------------\n"); delete st; }