def runPughHall(self): print "Experiment.runPughHall>" ## main objects db = Database() objects = db.getObjects() building = buildings.PughHall() building.tag(objects) #building.check(objects) ## Identify tags and set watch to enabled rooms = objects.getTag('room', ['104', '105']) print rooms db.enablePoints(rooms) ## Schedule object. # t=db.now() # db.scheduleObject(o20, t+1 , 2, 1) # db.scheduleObject(o20, t+4 , 1, 1) # db.scheduleObject(o20, t+7 , 1, 1) # db.scheduleObject(o20, t+6 , 3, 1) # # db.scheduleObject(o21, t+2 , 5, 1) db.close()
def runPughHall(self): print "Experiment.runPughHall>" ## main objects db=Database() objects=db.getObjects() building=buildings.PughHall() building.tag(objects) #building.check(objects) ## Identify tags and set watch to enabled rooms=objects.getTag('room',['104','105']) print rooms db.enablePoints(rooms) ## Schedule object. # t=db.now() # db.scheduleObject(o20, t+1 , 2, 1) # db.scheduleObject(o20, t+4 , 1, 1) # db.scheduleObject(o20, t+7 , 1, 1) # db.scheduleObject(o20, t+6 , 3, 1) # # db.scheduleObject(o21, t+2 , 5, 1) db.close()
def runTest(self): print "Experiment.runTest>" ## main objects db = Database() objects = db.getObjects() building = buildings.Test() building.tag(objects) #building.check(objects) ## Identify tags and set watch to enabled o19 = objects.getTag('point', 19).single() o20 = objects.getTag('point', 20).single() o21 = objects.getTag('point', 21).single() test = [o19, o20, o21] db.enablePoints(test) ## Schedule object. t = db.now() # db.scheduleObject(o19, t+1, 3, 51) # db.scheduleObject(o20, t+1 , 2, 1) # db.scheduleObject(o20, t+4 , 1, 1) # db.scheduleObject(o20, t+7 , 1, 1) # db.scheduleObject(o20, t+6 , 3, 1) # db.scheduleObject(o21, t + 1, 10, 1) db.scheduleObject(o21, t + 3, 5, None) db.close()
def runTest(self): print "Experiment.runTest>" ## main objects db=Database() objects=db.getObjects() building=buildings.Test() building.tag(objects) #building.check(objects) ## Identify tags and set watch to enabled o19=objects.getTag('point',19).single() o20=objects.getTag('point',20).single() o21=objects.getTag('point',21).single() test=[o19,o20,o21] db.enablePoints(test) ## Schedule object. t=db.now() # db.scheduleObject(o19, t+1, 3, 51) # db.scheduleObject(o20, t+1 , 2, 1) # db.scheduleObject(o20, t+4 , 1, 1) # db.scheduleObject(o20, t+7 , 1, 1) # db.scheduleObject(o20, t+6 , 3, 1) # db.scheduleObject(o21, t+1 , 10, 1) db.scheduleObject(o21, t+3 , 5, None) db.close()
def runTest(self): print "Virtual.runTest>" db = Database("baclog", 5432) db.getObjects() av1 = db.instance[(9001, 2, 0)] ## hard coded AV1 print av1 db.enablePoints([av1]) t = db.now() db.scheduleObject(av1, t + 1, 30, 10) db.close()
def runTest(self): print "Virtual.runTest>" db=Database("baclog",5432) db.getObjects() av1=db.instance[(9001,2,0)] ## hard coded AV1 print av1 db.enablePoints([av1]) t=db.now() db.scheduleObject(av1, t+1 , 30, 10) db.close()
def enablePughHall(self): print "Experiment.enablePughHall>" ## main objects db = Database() objects = db.getObjects() building = buildings.PughHall() building.tag(objects) #building.check(objects) ## Identify tags and set watch to enabled rooms = objects.getTag('room', ['104', '105']) print rooms db.enablePoints(rooms) db.close()
def enablePughHall(self): print "Experiment.enablePughHall>" ## main objects db=Database() objects=db.getObjects() building=buildings.PughHall() building.tag(objects) #building.check(objects) ## Identify tags and set watch to enabled rooms=objects.getTag('room',['104','105']) print rooms db.enablePoints(rooms) db.close()
def run(self): print "Tag.run>" ## main objects db=Database(database='mtim',port=5432) ## Series 1 for d in [1,2,3,4]: objects=db.getObjects(where="Devices.deviceID=%s" % d) building=buildings.PughHall() building.tag(objects) building.check(objects) ## Setup Metadata db.writeTags(objects) building.points(objects) db.writePoints(objects) ## Series 2 for d in [5,6,7,8]: objects=db.getObjects(where="Devices.deviceID=%s" % d) building=buildings.PughHall() building.tag(objects) building.check(objects) ## Setup Metadata db.writeTags(objects) ## Join on nn db.execute("DELETE FROM PointObjectMap") db.execute( """ INSERT INTO PointObjectMap (pointID,objectID,name) SELECT Points.pointID,Objects.objectID,Points.value FROM Objects JOIN Tags ON (Objects.objectID=Tags.objectID AND tag='nn') JOIN Points ON (Tags.value=Points.value AND Points.tag='nn') """ ) db.close()
def run(self): print "Tag.run>" ## main objects db = Database(database='mtim', port=5432) ## Series 1 for d in [1, 2, 3, 4]: objects = db.getObjects(where="Devices.deviceID=%s" % d) building = buildings.PughHall() building.tag(objects) building.check(objects) ## Setup Metadata db.writeTags(objects) building.points(objects) db.writePoints(objects) ## Series 2 for d in [5, 6, 7, 8]: objects = db.getObjects(where="Devices.deviceID=%s" % d) building = buildings.PughHall() building.tag(objects) building.check(objects) ## Setup Metadata db.writeTags(objects) ## Join on nn db.execute("DELETE FROM PointObjectMap") db.execute(""" INSERT INTO PointObjectMap (pointID,objectID,name) SELECT Points.pointID,Objects.objectID,Points.value FROM Objects JOIN Tags ON (Objects.objectID=Tags.objectID AND tag='nn') JOIN Points ON (Tags.value=Points.value AND Points.tag='nn') """) db.close()
class Bench: def __init__(self, opts): self.opts = opts self.cfg = self.opts.vals self.runtime = Values() self.runtime.version = version.PARAMARK_VERSION self.runtime.date = version.PARAMARK_DATE self.runtime.uid = os.getuid() self.runtime.pid = os.getpid() self.runtime.user = pwd.getpwuid(os.getuid())[0] self.runtime.hostname = socket.gethostname() self.runtime.platform = " ".join(os.uname()) self.runtime.cmdline = " ".join(sys.argv) self.runtime.mountpoint = get_filesystem_info(self.cfg.wdir) self.runtime.wdir = self.cfg.wdir # May be set later in GXP mode self.runtime.hid = 0 self.runtime.nhosts = 1 self.cfg.hid = self.runtime.hid self.cfg.pid = self.runtime.pid self.loader = BenchLoad(self.cfg) self.threads = [] self.db = None self.gxp = None def load(self): if self.cfg.gxpmode: self.gxp = Values() self.gxp.wp = os.fdopen(3, "wb") self.gxp.rp = os.fdopen(4, "rb") self.gxp.rank = gxp.get_rank() self.gxp.size = gxp.get_size() self.runtime.hid = self.gxp.rank self.runtime.nhosts = self.gxp.size self.cfg.hid = self.runtime.hid self.threadsync = ThreadSync(self.cfg.nthreads) for i in range(0, self.cfg.nthreads): self.threads.append(BenchThread(i, self.threadsync, self.loader, self.gxp)) def run(self): if self.runtime.hid == 0: message("Start benchmarking ...") self.start = timer() for t in self.threads: t.start() for t in self.threads: t.join() self.end = timer() if self.cfg.dryrun and self.runtime.hid == 0: message("Dryrun, nothing was executed.\n") self.runtime.start = "%r" % self.start self.runtime.end = "%r" % self.end def save(self): if self.cfg.dryrun: return if self.cfg.gxpmode: # Gather results self.send_res() if self.gxp.rank == 0: reslist = [] for i in range(0, self.gxp.size): reslist.append(self.recv_res()) else: return if self.cfg.logdir is None: # generate random logdir in cwd self.cfg.logdir = os.path.abspath("./pmlog-%s-%s" % (self.runtime.user, time.strftime("%j-%H-%M-%S"))) # Initial log directory and database if self.cfg.gxpmode: self.cfg.confirm = False self.cfg.logdir = smart_makedirs(self.cfg.logdir, self.cfg.confirm) logdir = os.path.abspath(self.cfg.logdir) if self.cfg.nolog: message("Saving data in memory ...") else: message("Saving data to %s/fsbench.db ..." % logdir) # Save used configuration file if not self.cfg.nolog: verbose("Saving configurations to %s/fsbench.conf ..." % logdir, VERBOSE) self.opts.save_conf("%s/fsbench.conf" % logdir) # Save results if self.cfg.nolog: self.db = Database(":memory:") else: self.db = Database("%s/fsbench.db" % logdir) self.db.insert_runtime(self.runtime) self.db.insert_conf(self.opts.cfgParser) if self.cfg.gxpmode: for res in reslist: for r in res: self.db.insert_rawdata(r) else: for t in self.threads: self.db.insert_rawdata(t.get_res()) self.db.commit() if self.cfg.noreport: self.db.close() def report(self): if self.cfg.dryrun or self.cfg.noreport: return if self.cfg.gxpmode and self.gxp.rank != 0: return message("Generating report ...") import report logdir = self.cfg.logdir if self.cfg.report: logdir = self.cfg.report if self.cfg.textreport: self.report = report.TextReport(logdir, self.db, self.cfg) elif self.cfg.csvreport: self.report = report.CSVReport(logdir, self.db, self.cfg) else: self.report = report.HTMLReport(logdir, self.db, self.cfg) self.report.write() def send_res(self): # Packing string without newlines res = cPickle.dumps([t.get_res() for t in self.threads], 0) self.gxp.wp.write('|'.join(res.split('\n'))) self.gxp.wp.write("\n") self.gxp.wp.flush() def recv_res(self): res = self.gxp.rp.readline().strip('\n') return cPickle.loads('\n'.join(res.split('|'))) def vs(self, msg): sys.stderr.write(msg)