Esempio n. 1
0
        /// <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");
        }
Esempio n. 2
0
        /// <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);
        }