def METHOD_NAME(self, config, log):
    """Create our BalancedScheduler using time data from the last run."""
    # Assign tests to chunks
    nchunks = 8
    totals = [0] * nchunks
    tests = collections.defaultdict(set)
    # first put the difficult ones all in one worker
    clumped = set()
    clumps = config.getini("balanced_clumps")
    for i, clump_word in enumerate(clumps):
        clump_nodes = {nodeid for nodeid in self.times.keys() if clump_word in nodeid}
        i %= nchunks
        tests[i].update(clump_nodes)
        totals[i] += sum(self.times[nodeid] for nodeid in clump_nodes)
        clumped.update(clump_nodes)
    # Then assign the rest in descending order
    rest = [(nodeid, t) for (nodeid, t) in self.times.items() if nodeid not in clumped]
    rest.sort(key=lambda item: item[1], reverse=True)
    for nodeid, t in rest:
        lightest = min(enumerate(totals), key=lambda pair: pair[1])[0]
        tests[lightest].add(nodeid)
        totals[lightest] += t
    test_chunks = {}
    for chunk_id, nodeids in tests.items():
        for nodeid in nodeids:
            test_chunks[nodeid] = chunk_id
    return BalancedScheduler(config, log, clumps, test_chunks)