c.append(l) c.append(t) return c if __name__ == '__main__': from sys import argv from workflow import Workflow from pool import AWS from emo_tool import get_info, evaluate from log import get_details from plot import stat, trans, show wf = Workflow(argv[1]) pool = AWS("aws.info") info = get_info(wf, pool) _, loc, ts = heft2(*info[2:]) c = get_chromosome(loc, ts) makespan, cost = evaluate(c, *info[2:-1], n_tasks=len(loc), n_nodes=len(loc), n_types=len(info[1])) scheme = get_details(c, *info[:-1], n_tasks=len(loc), n_nodes=len(loc), n_types=len(info[1])) scheme = [(n, ) + v for n, v in scheme.iteritems()]
break if len(types) > n_tasks: types = types[:n_tasks] c = array.array("I", []) for l, t in itertools.izip_longest(loc, types, fillvalue=0): c.append(l) c.append(t) return c if __name__ == '__main__': from sys import argv from workflow import Workflow from pool import AWS from emo_tool import get_info, evaluate from log import get_details from plot import stat, trans, show wf = Workflow(argv[1]) pool = AWS("aws.info") info = get_info(wf, pool) _, loc, ts = heft2(*info[2:]) c = get_chromosome(loc, ts) makespan, cost = evaluate(c, *info[2:-1], n_tasks=len(loc), n_nodes=len(loc), n_types=len(info[1])) scheme = get_details(c, *info[:-1], n_tasks=len(loc), n_nodes=len(loc), n_types=len(info[1])) scheme = [(n,)+v for n,v in scheme.iteritems()] print "Makespan: %.0fs\tCost: $%.2f" % (makespan, cost) # stat(scheme) # show(*trans(scheme))
if tuple(i.fitness) not in s: s.add(tuple(i.fitness)) ar.append(i) return ar if __name__ == '__main__': from sys import argv from workflow import Workflow from pool import AWS import hotshot, hotshot.stats wf = Workflow(argv[1]) pool = AWS("aws.info") ar = nsga_2(*get_info(wf, pool)) # prof = hotshot.Profile("emo3.prof") # archive = prof.runcall(nsga_2, *get_info(wf, pool)) # prof.close() # prof.close() # stats = hotshot.stats.load("emo3.prof") # stats.strip_dirs() # stats.sort_stats('time', 'calls') # stats.print_stats() ar.sort(key=lambda x: x.fitness[0]) for i in range(len(ar)): print "[%d]: Makespan: %.0fs\tCost: $%.2f" % (i, ar[i].fitness[0], ar[i].fitness[1])
s = set() ar = [] for i in pop: if tuple(i.fitness.values) not in s: s.add(tuple(i.fitness.values)) ar.append(i) ar.sort(key=lambda x: x.fitness.values[0]) if archive_name: dump(archive_name, ar, task_names, type_names, type_info_price, type_info_ecu, task_base_time, task_preds, comm_speeds, comm_sizes, n_tasks, n_nodes, n_types) return ar if __name__ == '__main__': from sys import argv from workflow import Workflow from pool import AWS import os wf = Workflow(argv[1]) pool = AWS("aws.info") ar = nsga_2(*(get_info(wf, pool)), archive_name="archive/%s.ar" % os.path.split(argv[1])[1][:-4]) for i in range(len(ar)): print "[%d]: Makespan: %.0fs\tCost: $%.2f" % (i, ar[i].fitness.values[0], ar[i].fitness.values[1])