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."); } }
public JobBase(SMapWorkRequest sMapWorkRequest) { SMapWorkRequest = sMapWorkRequest ?? throw new ArgumentNullException(nameof(sMapWorkRequest)); _jobId = -1; CancelRequested = false; ResetSubJobsRemainingToBeSent(); }
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); }
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); }
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); }
public IJob CreateJob(SMapWorkRequest sMapWorkRequest) { IJob result; if (sMapWorkRequest.RequiresQuadPrecision()) { result = new JobForMq(sMapWorkRequest); } else { result = new Job(sMapWorkRequest); } return(result); }
//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)}."); }
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(); }
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); }
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)); }
public JobForMq(SMapWorkRequest sMapWorkRequest) : base(sMapWorkRequest) { }