def runThread(numTrain, numTest, agent, maxJobs, results, finished): exp = None try: # pretrain exp = SimpleSimulation(numDevices=numDevices, maxJobs=maxJobs, agentClass=agent, tasks=[HARD], systemStateClass=extendedSystemState, jobInterval=1) exp.setBatterySize(1e-1) exp.setFpgaIdleSleep(1e-3) exp.simulateEpisodes(int(numTrain)) except: traceback.print_exc(file=sys.stdout) if exp is not None: print("Error in experiment:", maxJobs, exp.time) exp.sharedAgent.setProductionMode() for i in range(int(numTest)): exp.simulateEpisode(int(numTrain) + i) results.put([ "Agent %s" % exp.sharedAgent.__name__, maxJobs, exp.numFinishedJobs ]) # results.put(["", jobInterval, np.average([dev.numJobs for dev in exp.devices]) / exp.getCompletedJobs()]) finished.put(True)
def runThread(jobInterval, results, finished): try: exp = SimpleSimulation(jobInterval=jobInterval) # exp.simulateTime(10) # pretrain exp.simulateEpisodes(100) except: traceback.print_exc(file=sys.stdout) print("Error in experiment:", jobInterval, exp.time) exp.sharedAgent.setProductionMode() exp.simulateEpisode() results.put(["", jobInterval, exp.numFinishedJobs]) # results.put(["", jobInterval, np.average([dev.numJobs for dev in exp.devices]) / exp.getCompletedJobs()]) finished.put(True)
def runThread(agent, maxJobs, results, finished): try: # pretrain exp = SimpleSimulation(maxJobs=maxJobs, agentClass=agent) exp.simulateEpisodes(100) except: traceback.print_exc(file=sys.stdout) print("Error in experiment:", maxJobs, exp.time) exp.sharedAgent.setProductionMode() exp.simulateEpisode() results.put( ["Agent %s" % exp.sharedAgent.__name__, maxJobs, exp.numFinishedJobs]) # results.put(["", jobInterval, np.average([dev.numJobs for dev in exp.devices]) / exp.getCompletedJobs()]) finished.put(True)