Example #1
0
        private static void arrayPartitionPhase(IndexTransformator transformator, InputParser inputParser, 
            HeftArrayCreator heftArrayCreator, out int serverNO, out int pointNO, out double delta, 
            out int neededTileNumber, out int[] tiles)
        {
            int spaceDimension;
            int histogramResolution;
            int strategyCode;
            int cellMaxValue;
            double deltaCoefficient;
            int slidingWindowSize;
            Array array;
            bool together = inputParser.determineTogetherOrSeparately();
            if (together)
            {
                array = inputParser.parseInputFile(out spaceDimension, out histogramResolution,
                    out serverNO, out pointNO, out delta, out strategyCode, out cellMaxValue,
                    out deltaCoefficient, out slidingWindowSize);
            }
            else
            {
                parseInputSeparately(inputParser, out serverNO, out pointNO, out delta, out spaceDimension,
                    out histogramResolution, out strategyCode, out cellMaxValue, out array,
                    out deltaCoefficient, out slidingWindowSize);
            }
            Console.WriteLine("Point no.: {0}", pointNO);
            Console.WriteLine("Delta: {0}", delta);
            double usedDelta = delta * deltaCoefficient;
            Console.WriteLine("The used delta: {0}", usedDelta);
            Array heftArray = heftArrayCreator.createHeftArray(spaceDimension, histogramResolution, array);

            Divider divider = new Divider(array, heftArray, transformator, spaceDimension, histogramResolution,
                serverNO, delta, usedDelta, strategyCode, slidingWindowSize);
            Coords[] partition;
            neededTileNumber = divider.determineNeededTileNumber(out partition);
            Console.WriteLine("Needed tile number: {0}", neededTileNumber);
            tiles = writeOutTiles(neededTileNumber, spaceDimension, partition);
        }