public void SetUp() { _workers = GivenWorkers(); _maxScheduledSizePerWorker = GivenMaxScheduledSizePerWorker(); _maxUnmeasuredTasksPerWorker = GivenMaxUnmeasuredTasksPerWorker(); _balancer = GivenBalancer(); Given(); When(); }
public void AddTaskLoad( ParallelProcessingLoadBalancer.WorkerState worker, ParallelProcessingLoadBalancer.TaskState task) { if (task.Measured) { worker.MeasuredTasksScheduled++; worker.ScheduledSize += task.Size; } else { worker.UnmeasuredTasksScheduled++; } }
public void RemoveTaskLoad( ParallelProcessingLoadBalancer.WorkerState workerState, ParallelProcessingLoadBalancer.TaskState taskState) { if (taskState.Measured) { workerState.MeasuredTasksScheduled --; workerState.ScheduledSize -= taskState.Size; } else { workerState.UnmeasuredTasksScheduled--; } }
public void negative_max_unmeasured_tasks_throws_argument_exception() { var b = new ParallelProcessingLoadBalancer(2, 10, -2); }
public void negative_max_scheduled_size_throws_argument_exception() { var b = new ParallelProcessingLoadBalancer(2, -1, 1); }
public void negative_workers_throws_argument_exception() { var b = new ParallelProcessingLoadBalancer(-1, 10, 1); }
public void can_be_created() { var b = new ParallelProcessingLoadBalancer(2, 10, 1); }
public long EstimateWorkerLoad(ParallelProcessingLoadBalancer.WorkerState workerState) { return workerState.UnmeasuredTasksScheduled*10 + workerState.ScheduledSize; }
public bool MayScheduleOn(ParallelProcessingLoadBalancer.WorkerState leastLoadedWorkerState) { return leastLoadedWorkerState.UnmeasuredTasksScheduled < _maxUnmeasuredTasksPerWorker && leastLoadedWorkerState.ScheduledSize < _maxScheduledSizePerWorker; }