News Column

Patent Issued for Standalone Software Performance Optimizer System for Hybrid Systems

June 19, 2014



By a News Reporter-Staff News Editor at Computer Weekly News -- From Alexandria, Virginia, VerticalNews journalists report that a patent by the inventors Mewhinney, Greg R. (Austin, TX); Flemming, Diane Garza (Pflugerville, TX); Whitworth, David B. (Austin, TX); Maron, William A. (Austin, TX); Srinivas, Mysore Sathyanarayana (Austin, TX), filed on April 22, 2009, was published online on June 3, 2014.

The patent's assignee for patent number 8745622 is International Business Machines Corporation (Armonk, NY).

News editors obtained the following quote from the background information supplied by the inventors: "The present invention relates to a standalone software performance optimizer system for hybrid systems. Hybrid systems are a new and still evolving type of computer system. For the purpose of this invention, a hybrid system refers to a general purpose computer with the characteristic that it houses 2 or more types of Central Processing Unit (CPU), each with different performance characteristics. For example, a hybrid system may contain processors geared for encryption/decryption, processors designed for floating point performance, or multiple general purpose processors with different levels of performance. Further, it is possible that these different types of CPUs may all be usable by a single operating system image. The possibility that an operating system might have access to different types of CPUs optimized for different types of operations presents many challenges to the operating system, some of which are addressed by this invention.

"In the case of a multithreaded application which consists of at least two, and likely many, software threads, it is the operating system's responsibility to dispatch the threads to CPUs in an optimal way. This is a challenge on a hybrid system because conventionally the operating system has no understanding of the individual characteristics of a software thread. Therefore, the operating system lacks the information it needs to know the best type of processor upon which each thread should be dispatched. This invention assists the operating system in classifying threads and making optimal dispatch decisions.

"A known solution to classifying threads would be to employ established performance analysis techniques including static code analysis, runtime profile analysis, and timed statistics analysis. The drawback to these approaches is that these solutions require source code, performance analysis expertise, and time. To speed the adoption of new hybrid hardware configurations and save money, a new solution is needed."

As a supplement to the background information on this patent, VerticalNews correspondents also obtained the inventors' summary information for this patent: "One embodiment of the present invention is a method of optimizing software performance for hybrid systems. An embodiment of the invention may also include providing a hybrid system having a plurality of processors, memory operably connected to the processors, and an operating system including a dispatcher loaded into the memory; reading an application binary into the memory and performing static performance analysis on each of the threads by at least one of the processors; assigning each thread to a CPU class based on the static performance analysis; and storing each thread's CPU class. An embodiment of the invention may also include loading the application into the memory; providing the dispatcher with each thread's CPU class; optimizing thread dispatch by the dispatcher using each thread's CPU class by selecting a processor from the plurality of processors, wherein the selected processor's characteristics are best suited for the dispatched thread's particular requirements; performing runtime performance analysis on running threads by at least one of the processors; assigning each thread to a CPU class based on the runtime performance analysis; comparing each thread's CPU class based on the runtime performance analysis to each thread's CPU class based on the static performance analysis; responsive to determining a thread's CPU class based on the runtime performance analysis does not match the thread's CPU class based on the static performance analysis, providing the thread's CPU class based on the runtime performance analysis to the dispatcher; and reoptimizing thread dispatch by the dispatcher using each thread's CPU class based on the runtime performance analysis by selecting a processor from the plurality of processors, wherein the selected processor's characteristics are best suited for the dispatched thread's particular requirements.

"According to one embodiment of the present invention, a standalone software performance optimizer system for hybrid systems includes a hybrid system having a plurality of processors, memory operably connected to the processors, an operating system including a dispatcher loaded into the memory, an application including a binary and having a plurality of threads read into the memory, and a static performance analysis program loaded into the memory; wherein the static performance analysis program instructs at least one processor to perform static performance analysis on each of the threads; wherein the static performance analysis program instructs at least one processor to assign each thread to a CPU class based on the static performance analysis; and wherein the static performance analysis program instructs at least one processor to store each thread's CPU class. An embodiment of the invention may also include a runtime performance analysis program loaded into the memory; wherein the dispatcher is provided with each thread's CPU class when the application is loaded into the memory; wherein the dispatcher optimizes thread dispatch using each thread's CPU class by selecting a processor from the plurality of processors, wherein the selected processor's characteristics are best suited for the dispatched thread's particular requirements; wherein the runtime performance analysis program instructs at least one processor to perform runtime performance analysis on running threads; wherein the runtime performance analysis program instructs at least one processor to assign each thread to a CPU class based on the runtime performance analysis; wherein the runtime performance analysis program instructs at least one processor to compare each thread's CPU class based on the runtime performance analysis to each thread's CPU class based on the static performance analysis; wherein responsive to determining a thread's CPU class based on the runtime performance analysis does not match the thread's CPU class based on the static performance analysis, the runtime performance analysis program instructs at least one processor to provide the thread's CPU class based on the runtime performance analysis to the dispatcher; and wherein the dispatcher reoptimizes thread dispatch using each thread's CPU class based on the runtime performance analysis by selecting a processor from the plurality of processors, wherein the selected processor's characteristics are best suited for the dispatched thread's particular requirements.

"One embodiment of the present invention is a computer program product for that optimizing software performance for hybrid systems. An embodiment of the invention may also include first program instructions to read an application including a binary by a hybrid system having a plurality of processors, memory operably connected to the processors, and an operating system including a dispatcher loaded into the memory into the memory, wherein the application has a plurality of threads; second program instructions to perform static performance analysis on each of the threads by at least one of the processors; third program instructions to assign each thread to a CPU class based on the static performance analysis; and fourth program instructions to store each thread's CPU class. An embodiment of the invention may also include fifth program instructions to load the application into the memory; sixth program instructions to provide the dispatcher with each thread's CPU class as established by the static performance analysis; seventh program instructions to optimize thread dispatch by the dispatcher using each thread's CPU class by selecting a processor from the plurality of processors, wherein the selected processor's characteristics are best suited for the dispatched thread's particular requirements; eighth program instructions to perform runtime performance analysis on running threads by at least one of the processors; ninth program instructions to assign each thread to a CPU class based on the runtime performance analysis; tenth program instructions to compare each thread's CPU class based on the runtime performance analysis to each thread's CPU class based on the static performance analysis; eleventh program instructions to provide the thread's CPU class based on the runtime performance analysis to the dispatcher responsive to determining a thread's CPU class based on the runtime performance analysis does not match the thread's CPU class based on the static performance analysis; and twelfth program instructions to re-optimize thread dispatch by the dispatcher using each thread's CPU class based on the runtime performance analysis by selecting a processor from the plurality of processors, wherein the selected processor's characteristics are best suited for the dispatched thread's particular requirements."

For additional information on this patent, see: Mewhinney, Greg R.; Flemming, Diane Garza; Whitworth, David B.; Maron, William A.; Srinivas, Mysore Sathyanarayana. Standalone Software Performance Optimizer System for Hybrid Systems. U.S. Patent Number 8745622, filed April 22, 2009, and published online on June 3, 2014. Patent URL: http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=8745622.PN.&OS=PN/8745622RS=PN/8745622

Keywords for this news article include: Software, International Business Machines Corporation.

Our reports deliver fact-based news of research and discoveries from around the world. Copyright 2014, NewsRx LLC


For more stories covering the world of technology, please see HispanicBusiness' Tech Channel



Source: Computer Weekly News


Story Tools






HispanicBusiness.com Facebook Linkedin Twitter RSS Feed Email Alerts & Newsletters