コード例 #1
0
def statistics(queue, table, scenario, flags):
    confs = list()
    dms_range = manage.get_dm_range(queue, table, scenario)
    for dm in dms_range:
        if flags[0]:
            queue.execute(
                "SELECT MIN(GFLOPs),AVG(GFLOPs),MAX(GFLOPs),STDDEV_POP(GFLOPs) FROM "
                + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario +
                " AND local = 1)")
        elif flags[1]:
            queue.execute(
                "SELECT MIN(GFLOPs),AVG(GFLOPs),MAX(GFLOPs),STDDEV_POP(GFLOPs) FROM "
                + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario +
                " AND local = 0)")
        else:
            queue.execute(
                "SELECT MIN(GFLOPs),AVG(GFLOPs),MAX(GFLOPs),STDDEV_POP(GFLOPs) FROM "
                + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario +
                ")")
        line = queue.fetchall()
        confs.append([
            dm[0], line[0][0], line[0][2], line[0][1], line[0][3],
            (line[0][2] - line[0][1]) / line[0][3]
        ])
    return confs
コード例 #2
0
ファイル: export.py プロジェクト: isazi/Dedispersion
def tune_no_reuse(queue, table, operator, scenario, flags):
    confs = list()
    if operator.casefold() == "max" or operator.casefold() == "min":
        condition = str()
        if flags[0] == 1:
            condition = "local = 1"
        elif flags[0] == 2:
            condition = "local = 0"
        if flags[1] == 1:
            if flags[0] != 0:
                condition += " AND splitBatches = 1"
            else:
                condition = "splitBatches = 1"
        elif flags[1] == 2:
            if flags[0] != 0:
                condition += " AND splitBatches = 0"
            else:
                condition = "splitBatches = 0"
        dms_range = manage.get_dm_range(queue, table,scenario)
        no_reuse = "(nrThreadsD1 = 1 AND nrItemsD1 = 1)"
        for dm in dms_range:
            if flags[0] == 0 and flags[1] == 0:
                queue.execute("SELECT splitBatches,local,unroll,nrThreadsD0,nrItemsD0,GFLOPs,time,time_err,cov FROM " + table + " WHERE (GFLOPs = (SELECT " + operator + "(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND " + no_reuse + "))) AND (DMs = " + str(dm[0]) + " AND " + scenario + " AND " + no_reuse + ")")
            else:
                queue.execute("SELECT splitBatches,local,unroll,nrThreadsD0,nrItemsD0,GFLOPs,time,time_err,cov FROM " + table + " WHERE (GFLOPs = (SELECT " + operator + "(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND " + no_reuse + " AND (" + condition + ")))) AND (DMs = " + str(dm[0]) + " AND " + scenario + " AND " + no_reuse + " AND (" + condition + "))")
            best = queue.fetchall()
            confs.append([dm[0], best[0][0], best[0][1], best[0][2], best[0][3], best[0][4], best[0][5], best[0][6], best[0][7], best[0][8]])
    return confs
コード例 #3
0
def optimization_space(queue, table, scenario, flags):
    confs = list()
    dms_range = manage.get_dm_range(queue, table, scenario)
    for dm in dms_range:
        if flags[0]:
            queue.execute(
                "SELECT local,nrThreadsD0,nrThreadsD1,nrItemsD0,nrItemsD1,GFLOPs FROM "
                + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario +
                " AND local = 1)")
        elif flags[1]:
            queue.execute(
                "SELECT local,nrThreadsD0,nrThreadsD1,nrItemsD0,nrItemsD1,GFLOPs FROM "
                + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario +
                " AND local = 0)")
        else:
            queue.execute(
                "SELECT local,nrThreadsD0,nrThreadsD1,nrItemsD0,nrItemsD1,GFLOPs FROM "
                + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario +
                ")")
        best = queue.fetchall()
        confs.append([
            best[0][0], best[0][1], best[0][2], best[0][3], best[0][4],
            best[0][5]
        ])
    return confs
コード例 #4
0
def histogram(queue, table, scenario, flags):
    hists = list()
    dms_range = manage.get_dm_range(queue, table, scenario)
    for dm in dms_range:
        if flags[0]:
            queue.execute("SELECT MAX(GFLOPs) FROM " + table +
                          " WHERE (DMs = " + str(dm[0]) + " AND " + scenario +
                          " AND local = 1)")
        elif flags[1]:
            queue.execute("SELECT MAX(GFLOPs) FROM " + table +
                          " WHERE (DMs = " + str(dm[0]) + " AND " + scenario +
                          " AND local = 0)")
        else:
            queue.execute("SELECT MAX(GFLOPs) FROM " + table +
                          " WHERE (DMs = " + str(dm[0]) + " AND " + scenario +
                          ")")
        maximum = int(queue.fetchall()[0][0])
        hist = [0 for i in range(0, maximum + 1)]
        if flags[0]:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " +
                          str(dm[0]) + " AND " + scenario + " AND local = 1)")
        elif flags[1]:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " +
                          str(dm[0]) + " AND " + scenario + "  AND local = 0)")
        else:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " +
                          str(dm[0]) + " AND " + scenario + ")")
        flops = queue.fetchall()
        for flop in flops:
            hist[int(flop[0])] = hist[int(flop[0])] + 1
        hists.append(hist)
    return hists
コード例 #5
0
ファイル: analysis.py プロジェクト: isazi/SNR
def statistics(queue, table, samples):
    confs = list()
    dms_range = manage.get_dm_range(queue, table, samples)
    for dm in dms_range:
        queue.execute("SELECT MIN(GBs),AVG(GBs),MAX(GBs),STDDEV_POP(GBs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND samples = " + samples + ")")
        line = queue.fetchall()
        confs.append([dm[0], line[0][0], line[0][2], line[0][1], line[0][3], (line[0][2] - line[0][1]) / line[0][3]])
    return confs
コード例 #6
0
ファイル: analysis.py プロジェクト: isazi/SNR
def optimization_space(queue, table, samples):
    confs = list()
    dms_range = manage.get_dm_range(queue, table, samples)
    for dm in dms_range:
        queue.execute("SELECT nrThreadsD0,nrThreadsD1,nrItemsD0,nrItemsD1,GBS FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND samples = " + samples + ")")
        best = queue.fetchall()
        confs.append([best[0][0], best[0][1], best[0][2], best[0][3], best[0][4], best[0][5]])
    return confs
コード例 #7
0
ファイル: export.py プロジェクト: isazi/SNR
def tune(queue, table, operator, samples):
    confs = list()
    if operator.casefold() == "max" or operator.casefold() == "min":
        dms_range = manage.get_dm_range(queue, table, samples)
        for dm in dms_range:
            queue.execute("SELECT nrThreadsD0,nrItemsD0,GBs,time,time_err,cov FROM " + table + " WHERE (GBs = (SELECT " + operator + "(GBs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND samples = " + samples + "))) AND (DMs = " + str(dm[0]) + " AND samples = " + samples + ")")
            best = queue.fetchall()
            confs.append([dm[0], samples, best[0][0], best[0][1], best[0][2], best[0][3], best[0][4], best[0][5]])
    return confs
コード例 #8
0
ファイル: export.py プロジェクト: MixKlim/PulsarSearch
def print_time(queue, table):
    confs = list()
    dms_range = manage.get_dm_range(queue, table)
    for dm in dms_range:
        internalConfs = list()
        period_range = manage.get_period_range(queue, table, str(dm[0]))
        for period in period_range:
            queue.execute("SELECT searchTime,inputHandling,dedispersion,transpose,snrD,folding,snrF,outputCopy FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND periods = " + str(period[0]) + ")")
            best = queue.fetchall()
            internalConfs.append([dm[0], period[0], best[0][0], best[0][1], best[0][2], best[0][3], best[0][4], best[0][5], best[0][6], best[0][7]])
        confs.append(internalConfs)
    return confs
コード例 #9
0
ファイル: analysis.py プロジェクト: isazi/Dedispersion
def statistics(queue, table, scenario, flags):
    confs = list()
    dms_range = manage.get_dm_range(queue, table, scenario)
    for dm in dms_range:
        if flags[0]:
            queue.execute("SELECT MIN(GFLOPs),AVG(GFLOPs),MAX(GFLOPs),STDDEV_POP(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND local = 1)")
        elif flags[1]:
            queue.execute("SELECT MIN(GFLOPs),AVG(GFLOPs),MAX(GFLOPs),STDDEV_POP(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND local = 0)")
        else:
            queue.execute("SELECT MIN(GFLOPs),AVG(GFLOPs),MAX(GFLOPs),STDDEV_POP(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND "  + scenario + ")")
        line = queue.fetchall()
        confs.append([dm[0], line[0][0], line[0][2], line[0][1], line[0][3], (line[0][2] - line[0][1]) / line[0][3]])
    return confs
コード例 #10
0
ファイル: analysis.py プロジェクト: isazi/Dedispersion
def optimization_space(queue, table, scenario, flags):
    confs = list()
    dms_range = manage.get_dm_range(queue, table, scenario)
    for dm in dms_range:
        if flags[0]:
            queue.execute("SELECT local,nrThreadsD0,nrThreadsD1,nrItemsD0,nrItemsD1,GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND local = 1)")
        elif flags[1]:
            queue.execute("SELECT local,nrThreadsD0,nrThreadsD1,nrItemsD0,nrItemsD1,GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND local = 0)")
        else:
            queue.execute("SELECT local,nrThreadsD0,nrThreadsD1,nrItemsD0,nrItemsD1,GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + ")")
        best = queue.fetchall()
        confs.append([best[0][0], best[0][1], best[0][2], best[0][3], best[0][4], best[0][5]])
    return confs
コード例 #11
0
ファイル: analysis.py プロジェクト: kernsuite-debian/snr
def statistics(queue, table, samples):
    confs = list()
    dms_range = manage.get_dm_range(queue, table, samples)
    for dm in dms_range:
        queue.execute(
            "SELECT MIN(GBs),AVG(GBs),MAX(GBs),STDDEV_POP(GBs) FROM " + table +
            " WHERE (DMs = " + str(dm[0]) + " AND samples = " + samples + ")")
        line = queue.fetchall()
        confs.append([
            dm[0], line[0][0], line[0][2], line[0][1], line[0][3],
            (line[0][2] - line[0][1]) / line[0][3]
        ])
    return confs
コード例 #12
0
ファイル: export.py プロジェクト: isazi/Folding
def tune(queue, table, operator):
    confs = list()
    if operator.casefold() == "max" or operator.casefold() == "min":
        dms_range = manage.get_dm_range(queue, table)
        for dm in dms_range:
            internal_list = list()
            period_range = manage.get_period_range(queue, table, dm[0])
            for period in period_range:
                queue.execute("SELECT DMsPerBlock,PeriodsPerBlock,BinsPerBlock,DMsPerThread,PeriodsPerThread,BinsPerThread,vector,GFLOPS,time,time_err,cov FROM " + table + " WHERE (GFLOPS = (SELECT " + operator + "(GFLOPS) FROM " + table + " WHERE (nrDMs = " + str(dm[0]) + " AND nrPeriods = " + str(period[0]) + ")) AND (nrDMs = " + str(dm[0]) + " AND nrPeriods = " + str(period[0]) + "))")
                best = queue.fetchall()
                internal_list.append([dm[0], period[0], best[0][0], best[0][1], best[0][2], best[0][3], best[0][4], best[0][5], best[0][6], best[0][7], best[0][8], best[0][9], best[0][10]])
            confs.append(internal_list)
    return confs
コード例 #13
0
ファイル: analysis.py プロジェクト: isazi/SNR
def histogram(queue, table, samples):
    hists = list()
    dms_range = manage.get_dm_range(queue, table, samples)
    for dm in dms_range:
        queue.execute("SELECT MAX(GBs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND samples = " + samples + ")")
        maximum = int(queue.fetchall()[0][0])
        hist = [0 for i in range(0, maximum + 1)]
        queue.execute("SELECT GBs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND samples = " + samples + ")")
        flops = queue.fetchall()
        for flop in flops:
            hist[int(flop[0])] = hist[int(flop[0])] + 1
        hists.append(hist)
    return hists
コード例 #14
0
ファイル: analysis.py プロジェクト: kernsuite-debian/snr
def optimization_space(queue, table, samples):
    confs = list()
    dms_range = manage.get_dm_range(queue, table, samples)
    for dm in dms_range:
        queue.execute(
            "SELECT nrThreadsD0,nrThreadsD1,nrItemsD0,nrItemsD1,GBS FROM " +
            table + " WHERE (DMs = " + str(dm[0]) + " AND samples = " +
            samples + ")")
        best = queue.fetchall()
        confs.append([
            best[0][0], best[0][1], best[0][2], best[0][3], best[0][4],
            best[0][5]
        ])
    return confs
コード例 #15
0
ファイル: analysis.py プロジェクト: isazi/SNR
def single_parameter_space(queue, table, parameter, samples):
    confs = list()
    scenario = "(samples = " + samples + ")"
    dms_range = manage.get_dm_range(queue, table, samples)
    for dm in dms_range:
        internalConf = list()
        queue.execute("SELECT DISTINCT " + parameter + " FROM " + table + " WHERE DMs = " + str(dm[0]) + " AND " + scenario + " ORDER BY " + parameter)
        values = queue.fetchall()
        for value in values:
            queue.execute("SELECT MAX(GBs) FROM " + table + " WHERE " + parameter + " = " + str(value[0]) + " AND DMs = " + str(dm[0]) + " AND " + scenario)
            best = queue.fetchall()
            internalConf.append([value[0], best[0][0]])
        confs.append(internalConf)
    return confs
コード例 #16
0
ファイル: analysis.py プロジェクト: isazi/Dedispersion
def percentiles(queue, table, scenario, flags):
    results = list()
    condition = str()
    if flags[0] == 1:
        condition = "local = 1"
    elif flags[0] == 2:
        condition = "local = 0"
    if flags[1] == 1:
        if flags[0] != 0:
            condition += " AND splitBatches = 1"
        else:
            condition = "splitBatches = 1"
    elif flags[1] == 2:
        if flags[0] != 0:
            condition += " AND splitBatches = 0"
        else:
            condition = "splitBatches = 0"
    dms_range = manage.get_dm_range(queue, table, scenario)
    for dm in dms_range:
        internalResults = list()
        internalResults.append(dm[0])
        if flags[0] == 0 and flags[1] == 0:
            queue.execute("SELECT COUNT(id),MIN(GFLOPs),MAX(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + ")")
        else:
            queue.execute("SELECT COUNT(id),MIN(GFLOPs),MAX(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND " + condition + ")")
        items = queue.fetchall()
        nrItems = items[0][0]
        internalResults.append(int(items[0][1]))
        internalResults.append(int(items[0][2]))
        if flags[0] == 0 and flags[1] == 0:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + ") ORDER BY GFLOPs LIMIT " + str(int(nrItems / 4))  + ",1")
        else:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND " + condition + ") ORDER BY GFLOPs LIMIT " + str(int(nrItems / 4))  + ",1")
        items = queue.fetchall()
        internalResults.append(int(items[0][0]))
        if flags[0] == 0 and flags[1] == 0:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + ") ORDER BY GFLOPs LIMIT " + str((int(nrItems / 4)) * 2)  + ",1")
        else:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND " + condition + ") ORDER BY GFLOPs LIMIT " + str((int(nrItems / 4)) * 2)  + ",1")
        items = queue.fetchall()
        internalResults.append(int(items[0][0]))
        if flags[0] == 0 and flags[1] == 0:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + ") ORDER BY GFLOPs LIMIT " + str((int(nrItems / 4)) * 3)  + ",1")
        else:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND " + condition + ") ORDER BY GFLOPs LIMIT " + str((int(nrItems / 4)) * 3)  + ",1")
        items = queue.fetchall()
        internalResults.append(int(items[0][0]))
        results.append(internalResults)
    return results
コード例 #17
0
ファイル: analysis.py プロジェクト: kernsuite-debian/snr
def histogram(queue, table, samples):
    hists = list()
    dms_range = manage.get_dm_range(queue, table, samples)
    for dm in dms_range:
        queue.execute("SELECT MAX(GBs) FROM " + table + " WHERE (DMs = " +
                      str(dm[0]) + " AND samples = " + samples + ")")
        maximum = int(queue.fetchall()[0][0])
        hist = [0 for i in range(0, maximum + 1)]
        queue.execute("SELECT GBs FROM " + table + " WHERE (DMs = " +
                      str(dm[0]) + " AND samples = " + samples + ")")
        flops = queue.fetchall()
        for flop in flops:
            hist[int(flop[0])] = hist[int(flop[0])] + 1
        hists.append(hist)
    return hists
コード例 #18
0
def tune(queue, table, operator, samples):
    confs = list()
    if operator.casefold() == "max" or operator.casefold() == "min":
        dms_range = manage.get_dm_range(queue, table, samples)
        for dm in dms_range:
            queue.execute(
                "SELECT nrThreadsD0,nrItemsD0,GBs,time,time_err,cov FROM " +
                table + " WHERE (GBs = (SELECT " + operator + "(GBs) FROM " +
                table + " WHERE (DMs = " + str(dm[0]) + " AND samples = " +
                samples + "))) AND (DMs = " + str(dm[0]) + " AND samples = " +
                samples + ")")
            best = queue.fetchall()
            confs.append([
                dm[0], samples, best[0][0], best[0][1], best[0][2], best[0][3],
                best[0][4], best[0][5]
            ])
    return confs
コード例 #19
0
def print_time(queue, table):
    confs = list()
    dms_range = manage.get_dm_range(queue, table)
    for dm in dms_range:
        internalConfs = list()
        period_range = manage.get_period_range(queue, table, str(dm[0]))
        for period in period_range:
            queue.execute(
                "SELECT searchTime,inputHandling,dedispersion,transpose,snrD,folding,snrF,outputCopy FROM "
                + table + " WHERE (DMs = " + str(dm[0]) + " AND periods = " +
                str(period[0]) + ")")
            best = queue.fetchall()
            internalConfs.append([
                dm[0], period[0], best[0][0], best[0][1], best[0][2],
                best[0][3], best[0][4], best[0][5], best[0][6], best[0][7]
            ])
        confs.append(internalConfs)
    return confs
コード例 #20
0
ファイル: analysis.py プロジェクト: kernsuite-debian/snr
def single_parameter_space(queue, table, parameter, samples):
    confs = list()
    scenario = "(samples = " + samples + ")"
    dms_range = manage.get_dm_range(queue, table, samples)
    for dm in dms_range:
        internalConf = list()
        queue.execute("SELECT DISTINCT " + parameter + " FROM " + table +
                      " WHERE DMs = " + str(dm[0]) + " AND " + scenario +
                      " ORDER BY " + parameter)
        values = queue.fetchall()
        for value in values:
            queue.execute("SELECT MAX(GBs) FROM " + table + " WHERE " +
                          parameter + " = " + str(value[0]) + " AND DMs = " +
                          str(dm[0]) + " AND " + scenario)
            best = queue.fetchall()
            internalConf.append([value[0], best[0][0]])
        confs.append(internalConf)
    return confs
コード例 #21
0
def tune_no_reuse(queue, table, operator, scenario, flags):
    confs = list()
    if operator.casefold() == "max" or operator.casefold() == "min":
        condition = str()
        if flags[0] == 1:
            condition = "local = 1"
        elif flags[0] == 2:
            condition = "local = 0"
        if flags[1] == 1:
            if flags[0] != 0:
                condition += " AND splitBatches = 1"
            else:
                condition = "splitBatches = 1"
        elif flags[1] == 2:
            if flags[0] != 0:
                condition += " AND splitBatches = 0"
            else:
                condition = "splitBatches = 0"
        dms_range = manage.get_dm_range(queue, table, scenario)
        no_reuse = "(nrThreadsD1 = 1 AND nrItemsD1 = 1)"
        for dm in dms_range:
            if flags[0] == 0 and flags[1] == 0:
                queue.execute(
                    "SELECT splitBatches,local,unroll,nrThreadsD0,nrItemsD0,GFLOPs,time,time_err,cov FROM "
                    + table + " WHERE (GFLOPs = (SELECT " + operator +
                    "(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) +
                    " AND " + scenario + " AND " + no_reuse +
                    "))) AND (DMs = " + str(dm[0]) + " AND " + scenario +
                    " AND " + no_reuse + ")")
            else:
                queue.execute(
                    "SELECT splitBatches,local,unroll,nrThreadsD0,nrItemsD0,GFLOPs,time,time_err,cov FROM "
                    + table + " WHERE (GFLOPs = (SELECT " + operator +
                    "(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) +
                    " AND " + scenario + " AND " + no_reuse + " AND (" +
                    condition + ")))) AND (DMs = " + str(dm[0]) + " AND " +
                    scenario + " AND " + no_reuse + " AND (" + condition +
                    "))")
            best = queue.fetchall()
            confs.append([
                dm[0], best[0][0], best[0][1], best[0][2], best[0][3],
                best[0][4], best[0][5], best[0][6], best[0][7], best[0][8]
            ])
    return confs
コード例 #22
0
ファイル: analysis.py プロジェクト: isazi/Dedispersion
def histogram(queue, table, scenario, flags):
    hists = list()
    dms_range = manage.get_dm_range(queue, table, scenario)
    for dm in dms_range:
        if flags[0]:
            queue.execute("SELECT MAX(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND local = 1)")
        elif flags[1]:
            queue.execute("SELECT MAX(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND local = 0)")
        else:
            queue.execute("SELECT MAX(GFLOPs) FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + ")")
        maximum = int(queue.fetchall()[0][0])
        hist = [0 for i in range(0, maximum + 1)]
        if flags[0]:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + " AND local = 1)")
        elif flags[1]:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + "  AND local = 0)")
        else:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " + str(dm[0]) + " AND " + scenario + ")")
        flops = queue.fetchall()
        for flop in flops:
            hist[int(flop[0])] = hist[int(flop[0])] + 1
        hists.append(hist)
    return hists
コード例 #23
0
def percentiles(queue, table, scenario, flags):
    results = list()
    condition = str()
    if flags[0] == 1:
        condition = "local = 1"
    elif flags[0] == 2:
        condition = "local = 0"
    if flags[1] == 1:
        if flags[0] != 0:
            condition += " AND splitBatches = 1"
        else:
            condition = "splitBatches = 1"
    elif flags[1] == 2:
        if flags[0] != 0:
            condition += " AND splitBatches = 0"
        else:
            condition = "splitBatches = 0"
    dms_range = manage.get_dm_range(queue, table, scenario)
    for dm in dms_range:
        internalResults = list()
        internalResults.append(dm[0])
        if flags[0] == 0 and flags[1] == 0:
            queue.execute("SELECT COUNT(id),MIN(GFLOPs),MAX(GFLOPs) FROM " +
                          table + " WHERE (DMs = " + str(dm[0]) + " AND " +
                          scenario + ")")
        else:
            queue.execute("SELECT COUNT(id),MIN(GFLOPs),MAX(GFLOPs) FROM " +
                          table + " WHERE (DMs = " + str(dm[0]) + " AND " +
                          scenario + " AND " + condition + ")")
        items = queue.fetchall()
        nrItems = items[0][0]
        internalResults.append(int(items[0][1]))
        internalResults.append(int(items[0][2]))
        if flags[0] == 0 and flags[1] == 0:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " +
                          str(dm[0]) + " AND " + scenario +
                          ") ORDER BY GFLOPs LIMIT " + str(int(nrItems / 4)) +
                          ",1")
        else:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " +
                          str(dm[0]) + " AND " + scenario + " AND " +
                          condition + ") ORDER BY GFLOPs LIMIT " +
                          str(int(nrItems / 4)) + ",1")
        items = queue.fetchall()
        internalResults.append(int(items[0][0]))
        if flags[0] == 0 and flags[1] == 0:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " +
                          str(dm[0]) + " AND " + scenario +
                          ") ORDER BY GFLOPs LIMIT " +
                          str((int(nrItems / 4)) * 2) + ",1")
        else:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " +
                          str(dm[0]) + " AND " + scenario + " AND " +
                          condition + ") ORDER BY GFLOPs LIMIT " +
                          str((int(nrItems / 4)) * 2) + ",1")
        items = queue.fetchall()
        internalResults.append(int(items[0][0]))
        if flags[0] == 0 and flags[1] == 0:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " +
                          str(dm[0]) + " AND " + scenario +
                          ") ORDER BY GFLOPs LIMIT " +
                          str((int(nrItems / 4)) * 3) + ",1")
        else:
            queue.execute("SELECT GFLOPs FROM " + table + " WHERE (DMs = " +
                          str(dm[0]) + " AND " + scenario + " AND " +
                          condition + ") ORDER BY GFLOPs LIMIT " +
                          str((int(nrItems / 4)) * 3) + ",1")
        items = queue.fetchall()
        internalResults.append(int(items[0][0]))
        results.append(internalResults)
    return results