Пример #1
0
 private static void parseInputSeparately(InputParser inputParser, out int serverNO, out int pointNO, 
     out int spaceDimension, out int histogramResolution, out Array array)
 {
     inputParser.parseInputSizes(out spaceDimension, out histogramResolution, out serverNO);
     Console.WriteLine("Space dim: {0}, resolution: {1}, server no.: {2}", spaceDimension, histogramResolution,
         serverNO);
     int[] lengthsArray = new int[spaceDimension];
     for (int idx = 0; idx < spaceDimension; idx++)
     {
         lengthsArray[idx] = histogramResolution;
     }
     array = Array.CreateInstance(typeof(int), lengthsArray);
     inputParser.parseInputArray(serverNO, histogramResolution, array, out pointNO);
 }
Пример #2
0
 static void Main(string[] args)
 {
     Transformator transformator = new Transformator();
     InputParser inputParser = new InputParser(transformator);
     HeftArrayCreator heftArrayCreator = new HeftArrayCreator(transformator);
     int serverNO;
     int pointNO;
     int spaceDimension;
     int histogramResolution;
     Array array;
     bool together = inputParser.determineTogetherOrSeparately();
     if (together)
     {
         array = inputParser.parseInputFile(out spaceDimension, out histogramResolution,
             out serverNO, out pointNO);
     }
     else
     {
         parseInputSeparately(inputParser, out serverNO, out pointNO, out spaceDimension,
             out histogramResolution, out array);
     }
     double delta = (double)pointNO / (double)serverNO;
     Console.WriteLine("Point no.: {0}", pointNO);
     Console.WriteLine("Delta: {0}", delta);
     Array heftArray = heftArrayCreator.createHeftArray(spaceDimension, histogramResolution, array);
     LoadBalancingMeasure lbMeasure = new LoadBalancingMeasure(serverNO, pointNO, delta);
     BinaryDecomposer binaryDecomposer = new BinaryDecomposer(array, heftArray, transformator, spaceDimension,
         histogramResolution, serverNO, pointNO);
     Coords[] partition = binaryDecomposer.decompose();
     double measureOfLB = lbMeasure.computeMeasure(partition);
     Console.WriteLine("Load balancing measure of the partition: {0}", measureOfLB);
     writeOutTiles(serverNO, spaceDimension, partition);
     writeOutServers(serverNO, partition);
     Console.WriteLine("Press any key to exit!");
     Console.Read();
 }