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 a first set of the plurality of threads on data in a first set of the plurality of caches, the first set of caches containing a first number of the plurality of caches less than all of the plurality of caches, and the first set of threads containing a number of the plurality of threads that can be executed in a first cache of the first set of caches, the first set of threads being executed in parallel on the data in each cache of the first set of caches; and executing, in parallel on data in the one or more caches that are not in the first set of caches, each thread of the plurality of threads that is not in the first set of threads.