def insert_time_manual(cnx, time, code_id, arch, ttable): sql = 'INSERT INTO ' + ttable + ' (code_id, arch, time_actual) VALUES(' + str( code_id) + ',' + str(arch) + ',' + str(time) + ')' #print sql ut.execute_query(cnx, sql, False) cnx.commit()
def predict_compare(args, model, data, verbose): cnx = ut.create_connection(database=args.database, user=args.user, password=args.password, port=args.port) sql = 'SELECT code_id, code_xml from ' + args.ctable rows = ut.execute_query(cnx, sql, True) try: f = open('results.csv', 'w') f.write('predicated, actual, accuracy\n') except Exception as e: print(e) print('cannot create result file!\n') for row in rows: if row[0] == None or row[1] == None: continue try: data.raw_data = [(-1, -1, _fake_intel, row[1])] data.data = [] data.prepare_data(fixed=True, progress=False) timePredict = model(data.data[-1]).item() #print(str(timePredict)) sql = 'SELECT time_actual from ' + args.ttable + ' WHERE code_id = ' + str( row[0]) timeActual = ut.execute_query(cnx, sql, True) if len(timeActual) > 1: #print(', '.join(timeActual)) raise ValueError('code_id is not unique in time table') #print('code_id=%d\n',row[0]) #print(timeActual) if timeActual[0][0] == -1: err = 1 else: err = abs(timePredict - timeActual[0][0]) / timeActual[0][0] f.write( str(timePredict) + ', ' + str(timeActual[0][0]) + ', ' + str(err) + '\n') except Exception as e: print(e) print('exception occurred') print('code_id=' + str(row[0])) f.close() cnx.close()
def test_create_database(self, db_config): create_script = os.environ[ 'ITHEMAL_HOME'] + '/data_export/scripts/create_and_populate_db.sh' schema = os.environ[ 'ITHEMAL_HOME'] + '/data_export/schemas/mysql_schema.sql' proc = subprocess.call([ 'bash', create_script, 'test_data/db_config.cfg', 'testIthemal', schema, 'test_data' ]) #_ = proc.communicate() cnx = ut.create_connection(user=db_config['user'], password=db_config['password'], port=db_config['port'], database='testIthemal') assert cnx != None sql = 'select count(*) from code' rows = ut.execute_query(cnx, sql, True) assert len(rows) == 1 assert len(rows[0]) == 1 assert rows[0][0] == 3287
def test_create_ithemal_database(self): urllib.request.urlretrieve ("http://web.mit.edu/charithm/www/test_costmodel.sql", "test_data/test_costmodel.sql") assert os.path.exists('test_data/test_costmodel.sql') default_file = 'test_data/db_config.cfg' cnx = ut.create_connection_from_config(default_file) assert cnx ut.execute_query(cnx,'drop database if exists test_costmodel',False) cnx_none = ut.create_connection_from_config(default_file,'test_costmodel') assert cnx_none == None ut.execute_query(cnx,'create database if not exists test_costmodel',False) cnx.close() cnx = ut.create_connection_from_config(default_file,'test_costmodel') assert cnx sql = open('test_data/test_costmodel.sql').read() for line in sql.split(';'): print(line) ut.execute_query(cnx,line,False,True) cnx.commit() rows = ut.execute_query(cnx,'select count(*) from code',True) assert rows[0][0] == 100000
def insert_col_values(cnx, cols, values, code_id, arch, ttable): colstr = '' valuestr = '' for j, col in enumerate(cols): if j != len(cols) - 1: colstr += col + ', ' valuestr += str(values[j]) + ', ' else: colstr += col valuestr += str(values[j]) sql = 'INSERT INTO ' + ttable + ' (code_id, arch, ' + colstr + ') VALUES(' + str( code_id) + ',' + str(arch) + ',' + valuestr + ')' #print sql ut.execute_query(cnx, sql, False) cnx.commit()
def insert_col_values(cnx, cols, values, code_id, arch, ttable): for i in range(len(values[0])): colstr = '' valuestr = '' for j, col in enumerate(cols): if j != len(cols) - 1: colstr += col + ', ' valuestr += str(values[j][i]) + ', ' else: colstr += col valuestr += str(values[j][i]) sql = 'INSERT INTO ' + ttable + ' (code_id, arch, kind,' + colstr + ') VALUES(' + str(code_id) + ',' + str(arch) + ',\'actual\',' + valuestr + ')' print(sql) ut.execute_query(cnx, sql, False) cnx.commit()
openoffice.add_programs(['oosplash','soffice.bin','libuno_cppu.so.3','libuno_sal.so.3','libuno_salhelpergcc3.so.3','libvclplug_genlo.so','libmergedlo.so']) linux.add_programs(['echo','gedit','libm.so.6','libc.so.6','libgcc_s.so.1','ld-linux-x86-64.so.2','libpthread.so.0','linux-vdso.so.1','libdl.so.2','libglib-2.0.so.0','libselinux.so.1','libdbus-1.so.3','libclucene-shared.so.1','libz.so.1','libcom_err.so.2','libexpat.so.1','libudev.so.1','libtinfo.so.5','libclucene-core.so.1','libpng12.so.0','libcrypto.so.1.0.0','_glib.so','_gobject.so','_hashlib.x86_64-linux-gnu.so','libgpg-error.so.0']) games.add_programs(['sgt-mines']) gimp.add_programs([]) rhythm.add_programs(['rhythmbox','libmpris.so','libaudioscrobbler.so','libmmkeys.so']) # gimp.add_programs(['sparkle','noise_spread','contrast-stretch','engrave','threshold-alpha','gradient-flare','crop-auto','shift','jigsaw','waves','curve-bend','tile-glass','blur-motion','noise-hsv','lens-flare','semi-flatten','blur-gauss-selective','animation-optimize','colors-exchange','lens-apply','nova','cartoon','border-average','sharpen','channel-mixer','pixelize','red-eye-removal','color-to-alpha','edge-laplace','lens-distortion','nl-filter','warp','blinds','edge-sobel','file-png','max-rgb','colorify','convolution-matrix','emboss','colormap-remap','noise-solid','noise-rgb','polar-coords','iwarp','tile','grid','despeckle','rotate','sample-colorize','tile-seamless','blur-gauss','noise-randomize','blur','noise-spread','map-object','contrast-normalize','noise-slur.so','gradient-map','smooth-palette','contrast-retinex','whirl-pinch','color-enhance','illusion','edge-neon','crop-zealous','lighting','mosaic','apply-canvas','edge','edge-dog','color-cube-analyze','deinterlace','wind','antialias','ripple']) # linux.add_programs(['gedit']) # linux.add_programs(['ld-linux-x86-64.so.2', 'linux-vdso.so.1']) unaffiliated_bbs = 0 unaffiliated_modules = set() sql = 'SELECT distinct(module) FROM code_metadata WHERE code_id IN (SELECT DISTINCT(code_id) FROM time WHERE kind_id=1 AND arch_id=' + str(args.arch) + ')' rows = ut.execute_query(cnx, sql, True) print(('distinct basic blocks found : ' + str(len(rows)))) for row in tqdm(rows): value = str(row[0]) # check for prepopulated found = False bench_f = None program_f = None for bench in allbench: for program in bench.programs:
def execute_sql(commands): # type: (List[str]) -> None cnx = ut.create_connection() for com in commands: ut.execute_query(cnx, com, False) cnx.commit()
def insert_time_value(cnx, code_id, time, arch, ttable): sql = 'INSERT INTO ' + ttable + ' (code_id, arch, kind, time) VALUES(' + str( code_id) + ',' + str(arch) + ',\'actual\',' + str(time) + ')' ut.execute_query(cnx, sql, False) cnx.commit()