public WorkerThread(StressTest parent, string threadname, int seed) { //set things up for the operation selector if (true) { CumulativeProbabilityOfOperation = new double[(int)Operation.NOFELEMENTS]; //this is the relative likelihoods of choosing those operations CumulativeProbabilityOfOperation[(int)Operation.GAUSSIAN] = 1; CumulativeProbabilityOfOperation[(int)Operation.PADDING] = 1; CumulativeProbabilityOfOperation[(int)Operation.CONVERTTO] = 1; CumulativeProbabilityOfOperation[(int)Operation.REGIONMASK] = 1; //accumulate CumulativeProbabilityOfOperation = CumulativeSum(CumulativeProbabilityOfOperation); //normalize double suminv = 1.0 / CumulativeProbabilityOfOperation.Last(); for (int i = 0; i < CumulativeProbabilityOfOperation.Length; ++i) { CumulativeProbabilityOfOperation[i] *= suminv; } } this.Parent = parent; this.Random = new System.Random(seed); this.Thread = new System.Threading.Thread(() => Entry(this)); this.Thread.Name = threadname; this.Thread.Start(); }
static void Main(string[] args) { //this does not work //System.Environment.SetEnvironmentVariable("OPENCV_OPENCL_DEVICE", ":GPU:0"); System.Console.WriteLine($"todiloo! Emgu GPU is {Emgu.CV.Ocl.Device.Default.Name}"); System.Console.WriteLine($"Current time is {DateTime.UtcNow} UTC"); #if DEBUG System.Console.WriteLine("Buildmode=debug"); #else System.Console.WriteLine("Buildmode=release"); #endif //setup a program object var st = new StressTest(); try { st.Run(); } catch (System.Exception e) { System.Console.WriteLine($"\n\nCaught exception {e}"); } System.Console.WriteLine($"Exiting progam at {DateTime.UtcNow} UTC"); }