1. A method of improving the utilization of a special purpose accelerator in a system incorporating a general purpose processor, said method comprising: periodically monitoring, via a monitoring task executing in kernel space, one or more performance counters of said special purpose accelerator, comparing said one or more performance counters to predetermined thresholds to generate respective Boolean results and storing said results in a shared memory accessible by all processes; determining whether to execute a task on said special purpose accelerator or said general purpose processor as a function of said results read from said shared memory; and wherein for long accelerator queues, assigning said task to either said special purpose accelerator or said general purpose processor in accordance with a random function and the value of said Boolean results, resulting in tasks being assigned to said general purpose processor or special purpose accelerator with a probability ‘p’, wherein the probability p is associated randomization of assigning tasks as employed by the random function.