1. A method to execute threads in a computer system, the method comprising: segregating, by an operating system, a set of threads into at least a first thread type and a second thread type based on an operating efficiency among the set of threads, wherein: each thread of the first thread type is adapted to extract data from a different memory bank than remaining threads of the first thread type, threads of the second thread type comprise remaining threads of the set of threads and are adapted to primarily extract data from a same memory bank, and forming a plurality of first batches, by the operating system, each first batch comprising primarily threads of the first thread type, wherein each first batch comprises primarily memory requests to different memory banks; executing the plurality of the first batches; in response to a completion of the execution of the first batches, forming a plurality of second batches, by the operating system, each second batch comprising primarily threads of the second thread type, and wherein each second batch comprises primarily memory request to the same memory bank; and wherein primarily comprises more than approximately 50%.