コード例 #1
0
def make_ilp(computation,
             system,
             startmachine,
             M=10,
             runtime=None,
             commtime=None,
             **kwargs):
    machines = system.machines
    network = system.comm

    #Jobs = map(name, computation.jobs)
    Jobs = computation.jobs
    Agents = machines
    PP = computation.precedence()
    P = defaultdict(lambda: 0)
    for a, b in PP:
        P[name(a), name(b)] = PP[a, b]
    B = B_machine_ability(computation, system, startmachine)
    # runtimes  =  compute_runtimes(computation, system, **kwargs)
    # commtimes = compute_commtimes(computation, system, **kwargs)
    runtime = runtime or make_runtime_fn(computation, system, **kwargs)
    commtime = commtime or make_commtime_fn(computation, system, **kwargs)
    D = FunctionDict(runtime)
    C = FunctionDict(commtime)
    R = defaultdict(lambda: 0)
    prob, X, S, Cmax = schedule(Jobs, Agents, D, C, R, B, P, M)

    prob.solver = pulp.LpSolverDefault
    prob.solver.maxSeconds = M

    return prob, X, S, Cmax  #, runtimes, commtimes
コード例 #2
0
ファイル: theano_to_milp.py プロジェクト: mrocklin/ape
def make_ilp(computation, system, startmachine, M=10,
             runtime=None, commtime=None, **kwargs):
    machines = system.machines
    network = system.comm

    #Jobs = map(name, computation.jobs)
    Jobs = computation.jobs
    Agents = machines
    PP = computation.precedence()
    P = defaultdict(lambda:0)
    for a,b in PP:
        P[name(a), name(b)] = PP[a,b]
    B = B_machine_ability(computation, system, startmachine)
    # runtimes  =  compute_runtimes(computation, system, **kwargs)
    # commtimes = compute_commtimes(computation, system, **kwargs)
    runtime  = runtime  or make_runtime_fn(computation, system, **kwargs)
    commtime = commtime or make_commtime_fn(computation, system, **kwargs)
    D = FunctionDict(runtime)
    C = FunctionDict(commtime)
    R = defaultdict(lambda:0)
    prob, X, S, Cmax = schedule(Jobs, Agents, D, C, R, B, P, M)

    prob.solver = pulp.LpSolverDefault
    prob.solver.maxSeconds = M

    return prob, X, S, Cmax#, runtimes, commtimes
コード例 #3
0
ファイル: test2.py プロジェクト: cc13ny/ape
python test.py # in a third terminal
"""

from theano_to_milp import go_schedule as tompkins_schedule
#from heft import theano_heft_schedule as heft_schedule
from heft import schedule as heft_schedule
from timings import make_runtime_fn, make_commtime_fn, make_commtime_fn_tompkins

#from mul_sum_computation import make_computation
from add_sum_computation import make_computation
from three_node_system import system, A

computation = make_computation(2, (10, 10))

runtime = make_runtime_fn(computation, system)
commtime = make_commtime_fn(computation, system)

sched_heft = heft_schedule(computation.jobs,
                           system.machines,
                           computation.start_jobs,
                           computation.end_jobs,
                           runtime,
                           commtime,
                           cache=False)

commtime_tompkins = make_commtime_fn_tompkins(computation, system)
sched_milp = tompkins_schedule(computation,
                               system,
                               A,
                               M=1,
                               runtime=runtime,
コード例 #4
0
ファイル: test2.py プロジェクト: mrocklin/ape
ipcontroller --profile=mpi # in one terminal
mpiexec --np 3 ipengine --profile=mpi # in another terminal
python test.py # in a third terminal
"""

from theano_to_milp import go_schedule as tompkins_schedule
#from heft import theano_heft_schedule as heft_schedule
from heft import schedule as heft_schedule
from timings import make_runtime_fn, make_commtime_fn, make_commtime_fn_tompkins

#from mul_sum_computation import make_computation
from add_sum_computation import make_computation
from three_node_system import system, A

computation = make_computation(2, (10, 10))

runtime = make_runtime_fn(computation, system)
commtime = make_commtime_fn(computation, system)

sched_heft = heft_schedule(computation.jobs, system.machines,
                computation.start_jobs, computation.end_jobs,
                runtime, commtime, cache=False)

commtime_tompkins = make_commtime_fn_tompkins(computation, system)
sched_milp = tompkins_schedule(computation, system, A, M=1,
        runtime=runtime, commtime=commtime_tompkins)


print "Tompkins\n", sched_milp
print "\nHEFT\n", [(x.worker, x.task_list) for x in sched_heft]