A computing system 50 includes N computing engines having N cache memories connected by a system bus 12. The computing system includes a global run queue (fig 5 not shown), an FPA global run queue, and N affinity run queues, each associated with one computing engine. When a process first becomes runnable, it is typically attached to one of the global run queues. A scheduler allocates engines to processes and schedules the processes to run on the basis of priority and engine availability. Each time a process becomes runnable, the scheduler estimates the remaining cache context for the process in the cache of the engine. The process is enqueued to the affinity run queue of the engine when the estimated cache context of the process is sufficiently high, and is enqueued onto the global run queue when the cache context is sufficiently low.; The procedure, therefore, increases computing system performance and reduces bus traffic because processes will run on engines having sufficient cache affinity e.g. engines on which the process was previously running, or will run on the best available engine when there is insufficient cache context.