Ejemplo n.º 1
0
        private SamplePoints <double> GetSamplePoints(SMapWorkRequest sMapWorkRequest)
        {
            if (Coords.TryGetFromSCoords(sMapWorkRequest.SCoords, out Coords coords))
            {
                double[][] xValueSections = BuildValueSections(coords.LeftBot.X, coords.RightTop.X,
                                                               sMapWorkRequest.CanvasSize.Width, SECTION_WIDTH,
                                                               sMapWorkRequest.Area.SectionAnchor.X, sMapWorkRequest.Area.CanvasSize.Width);


                double[][] yValueSections;
                if (!coords.IsUpsideDown)
                {
                    yValueSections = BuildValueSections(coords.RightTop.Y, coords.LeftBot.Y,
                                                        sMapWorkRequest.CanvasSize.Height, SECTION_HEIGHT,
                                                        sMapWorkRequest.Area.SectionAnchor.Y, sMapWorkRequest.Area.CanvasSize.Height);
                }
                else
                {
                    yValueSections = BuildValueSections(coords.LeftBot.Y, coords.RightTop.Y,
                                                        sMapWorkRequest.CanvasSize.Height, SECTION_HEIGHT,
                                                        sMapWorkRequest.Area.SectionAnchor.Y, sMapWorkRequest.Area.CanvasSize.Height);
                }

                return(new SamplePoints <double>(xValueSections, yValueSections));
            }
            else
            {
                throw new ArgumentException("Cannot parse the SCoords into a Coords value.");
            }
        }
Ejemplo n.º 2
0
 public JobBase(SMapWorkRequest sMapWorkRequest)
 {
     SMapWorkRequest = sMapWorkRequest ?? throw new ArgumentNullException(nameof(sMapWorkRequest));
     _jobId          = -1;
     CancelRequested = false;
     ResetSubJobsRemainingToBeSent();
 }
Ejemplo n.º 3
0
        static SMapWorkRequest CreateWorkRequestForApprox(int jobId)
        {
            CanvasSize canvasSize = new CanvasSize(1500, 1000);

            string sx = "-7.77919999999999943236517196964994e-01";
            string ex = "7.50666666666666623738043047827275e-01";

            string  sy     = "8.90133333333333821328163063905458e-02";
            string  ey     = "1.07306666666666713248664185205901e-01";
            SCoords coords = new SCoords(
                new SPoint(sx, sy),
                new SPoint(ex, ey)
                );


            MapSection area = new MapSection(new Point(0, 0), canvasSize.GetWholeUnits(Engine.BLOCK_SIZE));

            int    maxIterations = 2000;
            string connectionId  = "dummy";

            SMapWorkRequest mapWorkRequest = new SMapWorkRequest("FEngRunner", coords, canvasSize, area, maxIterations, connectionId)
            {
                JobId = jobId
            };

            return(mapWorkRequest);
        }
Ejemplo n.º 4
0
        private FJobRequest CreateFJobRequest(int jobId, SMapWorkRequest smwr)
        {
            Coords       coords       = smwr.SCoords.GetCoords();
            RectangleInt area         = smwr.Area.GetRectangleInt();
            SizeInt      samplePoints = smwr.CanvasSize.GetSizeInt();

            FJobRequest fJobRequest = new FJobRequest(jobId, smwr.Name, FJobRequestType.Generate, coords, area, samplePoints, (uint)smwr.MaxIterations);

            return(fJobRequest);
        }
Ejemplo n.º 5
0
        static IJob GetJobRequest(int jobId)
        {
            //SMapWorkRequest sMapRequest = CreateWorkRequest(jobId);
            SMapWorkRequest sMapRequest = CreateWorkRequestForApprox(jobId);

            //IJob result = new JobForMq(sMapRequest);
            IJob result = new Job(sMapRequest);

            return(result);
        }
Ejemplo n.º 6
0
        public IJob CreateJob(SMapWorkRequest sMapWorkRequest)
        {
            IJob result;

            if (sMapWorkRequest.RequiresQuadPrecision())
            {
                result = new JobForMq(sMapWorkRequest);
            }
            else
            {
                result = new Job(sMapWorkRequest);
            }

            return(result);
        }
Ejemplo n.º 7
0
        //public int WorkResultWriteCount = 0;
        //public int WorkResultReWriteCount = 0;


        public Job(SMapWorkRequest sMapWorkRequest) : base(sMapWorkRequest)
        {
            _position    = new KPoint(sMapWorkRequest.Area.SectionAnchor.X, sMapWorkRequest.Area.SectionAnchor.Y);
            SamplePoints = GetSamplePoints(sMapWorkRequest);
            Reset();

            string filename = RepoFilename;

            Debug.WriteLine($"Creating new Repo. Name: {filename}, JobId: {JobId}.");
            _countsRepo = new ValueRecords <KPoint, MapSectionWorkResult>(filename, useHiRezFolder: false);

            //Debug.WriteLine($"Starting to get histogram for {RepoFilename} at {DateTime.Now.ToString(DiagTimeFormat)}.");
            //Dictionary<int, int> h = GetHistogram();
            //Debug.WriteLine($"Histogram complete for {RepoFilename} at {DateTime.Now.ToString(DiagTimeFormat)}.");
        }
Ejemplo n.º 8
0
        public void TestRequiresQuadPrecision()
        {
            string     connectionId  = "dummy";
            int        maxIterations = 100;
            CanvasSize canvasSize    = new CanvasSize(1000, 1000);

            //DPoint leftBot = new DPoint(-0.7764118407199196, 0.13437492059936854);
            //DPoint rightTop = new DPoint(-0.7764117329761986, 0.13437499747905846);

            SPoint leftBot  = new SPoint("-0.7764118407199196", "0.13437492059936854");
            SPoint rightTop = new SPoint("-0.7764118407199300", "0.13437499747905846");

            SCoords    coords = new SCoords(leftBot, rightTop);
            MapSection area   = new MapSection(new Point(0, 0), canvasSize.GetWholeUnits(Engine.BLOCK_SIZE));

            SMapWorkRequest mapWorkRequest        = new SMapWorkRequest("FET2", coords, canvasSize, area, maxIterations, connectionId);
            bool            requiresQuadPrecision = mapWorkRequest.RequiresQuadPrecision();
        }
Ejemplo n.º 9
0
        static SMapWorkRequest CreateWorkRequest(int jobId)
        {
            CanvasSize canvasSize = new CanvasSize(300, 200);
            DPoint     leftBot    = new DPoint(-2, -1);
            DPoint     rightTop   = new DPoint(1, 1);
            SCoords    coords     = new SCoords(new SPoint(leftBot), new SPoint(rightTop));
            MapSection area       = new MapSection(new Point(0, 0), canvasSize.GetWholeUnits(Engine.BLOCK_SIZE));

            int    maxIterations = 100;
            string connectionId  = "dummy";

            SMapWorkRequest mapWorkRequest = new SMapWorkRequest("FEngRunner", coords, canvasSize, area, maxIterations, connectionId)
            {
                JobId = jobId
            };

            return(mapWorkRequest);
        }
Ejemplo n.º 10
0
 public IActionResult Post([FromBody] SMapWorkRequest sMapWorkRequest)
 {
     if (sMapWorkRequest.ConnectionId.ToLower() == "delete")
     {
         bool deleteRepo = sMapWorkRequest.Name == "delJobAndRepo" ? true : false;
         _engine.CancelJob(sMapWorkRequest.JobId, deleteRepo);
     }
     else if (sMapWorkRequest.ConnectionId.ToLower() == "replay")
     {
         _engine.ReplayJob(sMapWorkRequest.JobId, sMapWorkRequest.MaxIterations);
     }
     else
     {
         IJob job   = new JobFactory().CreateJob(sMapWorkRequest);
         int  jobId = _engine.SubmitJob(job);
         sMapWorkRequest.JobId = jobId;
     }
     return(Ok(sMapWorkRequest));
 }
Ejemplo n.º 11
0
 public JobForMq(SMapWorkRequest sMapWorkRequest) : base(sMapWorkRequest)
 {
 }