Example #1
0
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()
Example #2
0
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()
Example #3
0
    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
Example #4
0
    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
Example #5
0
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()
Example #6
0
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()
Example #7
0
    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:
Example #8
0
def execute_sql(commands):  # type: (List[str]) -> None
    cnx = ut.create_connection()
    for com in commands:
        ut.execute_query(cnx, com, False)
    cnx.commit()
Example #9
0
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()