1. A method for providing parallel computing of a computing application on a computing device having a plurality of caches, the computing application having a plurality of threads to be executed, the method comprising: executing, in parallel using a set of the plurality of caches, a set of the plurality of threads, the set of caches containing less than all of the plurality of caches, and the set of threads containing a number of the plurality of threads that can be executed using the set of caches; and executing, in parallel using the one or more caches that are not in the set of caches, the threads that are not in the set of threads.