/// <exception cref="System.IO.IOException"/> public static void Main(string[] args) { TeraScheduler problem = new TeraScheduler("block-loc.txt", "nodes"); foreach (TeraScheduler.Host host in problem.hosts) { System.Console.Out.WriteLine(host); } Log.Info("starting solve"); problem.Solve(); IList <TeraScheduler.Split> leftOvers = new AList <TeraScheduler.Split>(); for (int i = 0; i < problem.splits.Length; ++i) { if (problem.splits[i].isAssigned) { System.Console.Out.WriteLine("sched: " + problem.splits[i]); } else { leftOvers.AddItem(problem.splits[i]); } } foreach (TeraScheduler.Split cur in leftOvers) { System.Console.Out.WriteLine("left: " + cur); } System.Console.Out.WriteLine("left over: " + leftOvers.Count); Log.Info("done"); }
/// <exception cref="System.IO.IOException"/> public override IList <InputSplit> GetSplits(JobContext job) { if (job == lastContext) { return(lastResult); } long t1; long t2; long t3; t1 = Runtime.CurrentTimeMillis(); lastContext = job; lastResult = base.GetSplits(job); t2 = Runtime.CurrentTimeMillis(); System.Console.Out.WriteLine("Spent " + (t2 - t1) + "ms computing base-splits."); if (job.GetConfiguration().GetBoolean(TeraScheduler.Use, true)) { TeraScheduler scheduler = new TeraScheduler(Sharpen.Collections.ToArray(lastResult , new FileSplit[0]), job.GetConfiguration()); lastResult = scheduler.GetNewFileSplits(); t3 = Runtime.CurrentTimeMillis(); System.Console.Out.WriteLine("Spent " + (t3 - t2) + "ms computing TeraScheduler splits." ); } return(lastResult); }