def unit_test(): for i in range(0, 20): job = Job(nmaps=64, lmap=140, lmapapprox=60, nreds=1, lred=15, submit=i*150) job.approxAlgoMapVal = options.approx # Approximate 50% of the maps if random.random() < 0.5: job.priority = Job.Priority.VERY_HIGH jobId = simulator.addJob(job) for jobID in simulator.jobsQueue: myjob = simulator.jobs[jobID] print myjob.jobId, myjob.priority, myjob.submit sys.exit(0)
def read(self, inFile): #lineno=0 with open(inFile, "r") as f: for line in f: line = line.replace('\n', '') line = line.strip() if not line.startswith('#') and len(line) > 0: # Job(nmaps=64, lmap=140, lmapapprox=60, nreds=1, lred=15, submit=i*150, approx) splits = line.split() nmaps0 = int(splits[0]) lmap0 = int(splits[1]) lmapapprox0 = int(splits[2]) nreds0 = int(splits[3]) lred0 = int(splits[4]) #lredapprox0 = int(splits[4]) # TODO cheng submit0 = int(splits[5]) approx0 = float(splits[6]) # Create job job = Job(nmaps=nmaps0, lmap=lmap0, lmapapprox=lmapapprox0, nreds=nreds0, lred=lred0, submit=submit0) job.approxAlgoMapVal = approx0 self.jobQueue.append(job) #lineno+=1 #return lineno return self.jobQueue
job.priority=getProbBySchedule(weights, job.nreds) else: job.priority=getProbabilisticSJF(job.nreds, options.sjf) simulator.addJob(job) ''' manager.initManager(options.infile) if options.sjf > 0.0: manager.applySJFPriority(options.sjf) manager.copyToSimulator(simulator); ''' else: # Submit jobs for i in range(0, options.jobs): # Create the job job = Job(nmaps=64, lmap=140, lmapapprox=60, nreds=1, lred=15, submit=0) job.approxAlgoMapVal = options.approx # Approximate X% of the maps job.approxDropMapVal = options.drop # Drop X% of the maps job.gauss = options.gauss # +/-% # Probabilistic shortest job first policy job.priority = getProbabilisticSJF(job.nreds, options.sjf) jobId = simulator.addJob(job) # Start running simulator simulator.run() # Summary print 'Nodes: %d' % len(simulator.nodes) print 'Energy: %.1fWh' % (simulator.getEnergy()) print 'Perf: %.1fs %d jobs' % (simulator.getPerformance(), len(simulator.jobs)) print 'Quality: %.1f%%' % (simulator.getQuality())