Patent #8,510,749: Framework for scheduling multicore processors
Issued: August 13, 2013
What is patent #8,387,065? By IBM Distinguished Engineer Malcolm Ware
Dual core. Quad core. We hear these terms bandied about with regard to how powerful or efficient a computer system is. But no matter the number of cores, or threads (software code streams of execution) that get pushed through those cores, today’s operating systems must stay within restricted frequency ranges to keep the amount of power that’s drawn bounded and less than the limits of the power supply.
The threads running at the same core frequency consume about the same amount power. But keeping all the threads at the same frequency is not terribly energy efficient and restricts differentiating thread performance.
This lack of power and performance tradeoff flexibility was the inspiration for patent #8,387,065. Could we schedule in adjustments to the amount of power used for different workloads?
Today’s operating systems, like our AIX, do schedule threads to take advantage of simultaneous multi-threading (SMT) performance on a core (one thread on one core performs better than four threads on one core), but they still run at the same frequency on the cores, no matter their workload priority. It doesn’t allow for critical high-priority processes from taking advantage of the raw power that could be made available to run on a higher frequency core, or for putting low-priority processes on cores running on lower frequency cores which draw less power.
Making multi-threading more efficient
A system’s software tasks carry out any number of functions; from the mundane, such as memory management, to the intense, like crunching the big data of a government census. The operating system schedules these tasks, bundled as threads, across one or more cores. For example, the IBM Power 7 that Watson used to play Jeopardy! could manage four threads per core (of which it had 2,880).
These multi-thread capabilities are great for analyzing open domain queries that need access to different data sources, but they also indirectly create a cap in power consumption. But as stated above, no one thread will have more, or less, power than another. This slows down a single task, happening on a single core – a task that could benefit from a high frequency core, drawing extra power to get the work done in a more timely manner.
Our team, via this patent, wants operating systems to be able to make these high-to-low performance and power adjustments. Going back to the AIX example, it can already schedule “packs” of threads on cores, but for better scaled throughput – not for power adjustment reasons. The patent details how an OS could pre-determine which threads to “pack” together, such as ones that handle low-priority tasks, to improve efficiency by running at lower frequencies.
The patent would also allow the OS to improve the performance of high-priority threads by shifting power away from low-priority threads. Now that urgent task that needs more performance, and thus power, would finally get it, while those mundane tasks may run slightly slower, but not to the detriment of the system. No more limiting a core’s performance!
Still yet to be tested on a system, the patent could have implications on standard operating systems, such as AIX or Linux, to even cloud computing. A system running in the cloud could adjust for high-priority tasks, calling for the use of multiple data sources, by packing as many threads as possible onto each core. It would get as much power as it needed to make the many threads running in parallel get the work done faster than what is possible today.
IBM led in total U.S. patents for the twenty-first year in a row in 2013. Read more about patents like #8,510,749, here.