Patents Examined by Sen Chen
  • Patent number: 9569202
    Abstract: Tools and techniques are described for transparently and safely augmenting the functionality of objects in an existing collection of objects. One approach automatically creates a dynamic interface for a known object type T, having the same type signature as T. Augmentations which implement the interface are then recognized, and an interpreted or compiled code environment is adjusted to invoke their functionality, which is orthogonal to the indicated functionality of type T. An application program executing in the adjusted environment automatically and transparently generates an instance of each augmentation, and the augmentations are composed to run when the original object of type T is accessed.
    Type: Grant
    Filed: June 30, 2014
    Date of Patent: February 14, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Thomas M. Brant, Eric Desfosses
  • Patent number: 9552193
    Abstract: Techniques are provided herein for the offline static analysis of a stable code base in order to build a compiler and tools specialized to that code base. This allows global code base knowledge to be applied earlier in the compilation process giving better opportunities for optimization. The offline static analysis produces specialized compiler components that are then used to rebuild the compiler. This results, over time, in a compiler specialized to the code base with improved optimization after every compiler release cycle.
    Type: Grant
    Filed: August 28, 2012
    Date of Patent: January 24, 2017
    Assignees: MStar Semiconductor, Inc., MStar Semiconductor, Inc., MStar Software R&D, Ltd.
    Inventor: Colin A. McEwan
  • Patent number: 9442749
    Abstract: The present invention relates to a transaction-based service control system and control method. The present invention provides the resource provision management domain and the resource provision management component to manage resources provision respectively, wherein the resource provision management component is used to manage the virtual machine provision, and resource provision management domain is used to manage provision of the set of resources. The said domain and component management method further combines distributed transaction processing method, the state machine mechanism, as well as resource scheduling and transaction routing policy, to control the status of the whole process for service request from the beginning to the end of the execution. Thus the service performance is effectively improved, and the quality of service is ensured.
    Type: Grant
    Filed: May 24, 2012
    Date of Patent: September 13, 2016
    Assignee: TRANSOFT (SHANGHAI), INC.
    Inventors: Changbin Tang, Li Xiong
  • Patent number: 9430199
    Abstract: Described herein are optimizations of thread loop intermediate representation (IR) code. One embodiment involves an algorithm that, based on data-flow analysis, computes sets of temporary variables that are loaded at the beginning of a thread loop and stored upon exit from a thread loop. Another embodiment involves reducing the size of a thread loop trip for a commonly-found case where a piece of compute shader is executed by a single thread (or a compiler-analyzable range of threads). In yet another embodiment, compute shader thread indices are cached to avoid excessive divisions, further improving execution speed.
    Type: Grant
    Filed: February 16, 2012
    Date of Patent: August 30, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Andy Glaister, Blaise Pascal Tine, Derek Sessions, Mikhail Lyapunov, Yuri Dotsenko
  • Patent number: 9400641
    Abstract: A middleware layer running on a computing device determines capabilities of the computing device in response to receiving a request for an application. The middleware layer identifies a service level agreement associated with the application. The middleware layer selects one or more services of the middleware layer to assign to the application based on the service level agreement and the capabilities of the computing device. The middleware layer determines whether to install the one or more services on the computing device or on a remote computing device based on the service level agreement, the capabilities of the computing device and properties of the one or more services.
    Type: Grant
    Filed: February 29, 2012
    Date of Patent: July 26, 2016
    Assignee: Red Hat, Inc.
    Inventor: Mark Cameron Little
  • Patent number: 9389838
    Abstract: This invention is related to a cross-client-server software compiler for defining a client server programming paradigm which removes boundary between client side programming and server side programming. By adopting the said programming paradigm a programmer does not explicitly distinguish client side programming and server side programming, and does not explicitly implement client server interactions. From human programming the said compiler identifies client side operations and server side operations, identifies client server communication requirements, identifies data upload and download requirements, identifies server states maintenance requirements, generates client code and server code, generates client server communications code for client server interactions to fulfill human programming.
    Type: Grant
    Filed: March 20, 2014
    Date of Patent: July 12, 2016
    Inventor: David Wei Ge
  • Patent number: 9383990
    Abstract: A server includes a detecting module, a calculating module, a comparing module, an allocating module and a sorting module. The detecting module is used for receiving firmware version query information from a plurality of client devices. The calculating module is used for calculating bandwidth sum of the CPEs. The comparing module is used for determining whether the calculated total bandwidth is larger than a total downloading bandwidth of the server. The allocating module is used for sequencing the client devices which transmit the firmware download requests to wait for the download. The sorting module is used for scoring each of the client devices which transmit the firmware download requests according to attributes of the client devices which transmit the firmware download requests and sequencing the client devices which transmit the firmware download requests to wait for downloading according to the scores.
    Type: Grant
    Filed: September 16, 2014
    Date of Patent: July 5, 2016
    Assignee: HON HAI PRECISION INDUSTRY CO., LTD.
    Inventors: Wen-Pin Lu, Ming-Chen Tsai
  • Patent number: 9367423
    Abstract: Disclosed are various embodiments relating to methods, systems, and articles of manufacture for using multiple modes during execution of a program. Various embodiments enable a use to switch among multiple modes of execution of a program during an execution of the program without recompiling a higher level code of the program or without restarting the execution of the program from the beginning. Some embodiments enable the user to switch among different modes regardless of whether or not the preparation for the execution of the program in modes other than the first mode is available. Some embodiments enable the user to switch among different modes of execution of a program while sharing the same environment or context of the execution of the program among these different modes of execution.
    Type: Grant
    Filed: July 22, 2011
    Date of Patent: June 14, 2016
    Assignee: Cadence Design Systems, Inc.
    Inventors: Meir Ovadia, Rodion Milnikov
  • Patent number: 9329856
    Abstract: A method and system for managing a code load for a storage system is disclosed. The method and system can include instantiating a code load. The code load can include a first update for a first component and a second update for a second component. The method and system can include monitoring the operational state of the first and second components in response to instantiating the code load. The method and system can also include determining to perform the first update in response to a triggering event. The method and system can also include performing the first update in response to determining to perform the first update.
    Type: Grant
    Filed: March 19, 2014
    Date of Patent: May 3, 2016
    Assignee: International Business Machines Corporation
    Inventors: Michael P. Groover, Robin Han, Yan Su, Wei Tang, Ming Zhi Zhao, Yi Zhou
  • Patent number: 9317337
    Abstract: Embodiments of the present invention provide a set of algorithmic methods that can be used to generate a pre-provisioned pool of virtual machines (VMs) in a networked computing environment. Specifically, an install time for possible combinations of software components of a VM in a plurality of software component combinations is calculated. Each respective install time is weighted by a value associated with a provisioning history of software components. At least part of the software component combinations is allocated to the pre-provisioned pool of virtual machines (VMs).
    Type: Grant
    Filed: April 13, 2012
    Date of Patent: April 19, 2016
    Assignee: International Business Machines Corporation
    Inventors: Jason L. Anderson, Gregory J. Boss, Jeffrey L. Coveyduc, Christopher W. Roach
  • Patent number: 9268544
    Abstract: Provided is software product line-based software development method using a software type automatic code generator, and an apparatus for the same. The method includes selecting features corresponding to software from a developer from a feature model created by analyzing features of multiple software to generate feature lists, determining an automatic code generator corresponding to a software type received from the developer, selecting architecture components using the software type, generating automatically generated code on the basis of the selected architecture components and requirements of the determined automatic code generator received from the developer, modifying the automatically generated code and code of the architecture components on the basis of the generated feature list to output configured code, and connecting a part calling a library of domains in the configured code with a part calling an actual domain library to generate final generation code.
    Type: Grant
    Filed: October 18, 2011
    Date of Patent: February 23, 2016
    Assignee: POSTECH ACADEMY—INDUSTRY FOUNDATION
    Inventors: Kyo-Chul Kang, Hye-Sun Lee, Jin-Seok Yang
  • Patent number: 9213619
    Abstract: Algorithm selection for collective operations in a parallel computer that includes a plurality of compute nodes may include: profiling a plurality of algorithms for each of a set of collective operations, including for each collective operation: executing the operation a plurality times with each execution varying one or more of: geometry, message size, data type, and algorithm to effect the collective operation, thereby generating performance metrics for each execution; storing the performance metrics in a performance profile; at load time of a parallel application including a plurality of parallel processes configured in a particular geometry, filtering the performance profile in dependence upon the particular geometry; during run-time of the parallel application, selecting, for at least one collective operation, an algorithm to effect the operation in dependence upon characteristics of the parallel application and the performance profile; and executing the operation using the selected algorithm.
    Type: Grant
    Filed: March 12, 2013
    Date of Patent: December 15, 2015
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Archer, James E. Carey, Philip J. Sanders, Brian E. Smith
  • Patent number: 9208052
    Abstract: Algorithm selection for collective operations in a parallel computer that includes a plurality of compute nodes may include: profiling a plurality of algorithms for each of a set of collective operations, including for each collective operation: executing the operation a plurality times with each execution varying one or more of: geometry, message size, data type, and algorithm to effect the collective operation, thereby generating performance metrics for each execution; storing the performance metrics in a performance profile; at load time of a parallel application including a plurality of parallel processes configured in a particular geometry, filtering the performance profile in dependence upon the particular geometry; during run-time of the parallel application, selecting, for at least one collective operation, an algorithm to effect the operation in dependence upon characteristics of the parallel application and the performance profile; and executing the operation using the selected algorithm.
    Type: Grant
    Filed: March 13, 2013
    Date of Patent: December 8, 2015
    Assignee: International Business Machines Corporation
    Inventors: Charles J. Archer, James E. Carey, Philip J. Sanders, Brian E. Smith
  • Patent number: 9201762
    Abstract: Systems and methods are provided for debugging program code. Program code is executed in a process. Clone processes of the process are generated at predetermined time intervals to capture states of execution of the program code at the predetermined time intervals. State data is extracted from the clone processes to generate snapshots of execution of the program code at the predetermined time intervals. A display of the snapshots is provided for debugging the program code, where the snapshots include the extracted state data from the clone processes generated at the predetermined time.
    Type: Grant
    Filed: April 21, 2011
    Date of Patent: December 1, 2015
    Assignee: MARVELL INTERNATIONAL LTD.
    Inventor: Xiaoyan Chen
  • Patent number: 9189367
    Abstract: Described herein are means for debugging byte code in an on-demand service environment system including a system for simulating execution debug in a multi-tenant database environment. Such means may include: receiving a request at a web-server of the system, determining one or more trace preferences are active for the request, sending the request to a logging framework communicatively interfaced to the multi-tenant database implementation, processing the request via the logging framework, and capturing at least a portion of the execution data emitted responsive to execution of the plurality of events for use in simulating execution debug of the events. Other related embodiments are additionally described.
    Type: Grant
    Filed: September 15, 2010
    Date of Patent: November 17, 2015
    Assignee: salesforce.com, inc.
    Inventors: Taggart C Matthiesen, Richard Unger, Peter S. Wisnovsky
  • Patent number: 9182956
    Abstract: A method for flattening conditional statements, the method comprises: obtaining a program code, the program code comprising a conditional control flow program construct, which conditional control flow program construct when read by a target processor, causes the target processor to select a control flow path for execution between at least a first and a second control flow paths, wherein said selection is based on an evaluation of a condition of the conditional control flow program construct; replacing the conditional control flow program construct with a transaction-based control flow program construct, which when read by the target processor is operative to cause the target processor to commence a transaction, the transaction configured to execute the first control flow path; and wherein the transaction-based control flow program construct is operative to cause the target processor to execute the conditional control flow program construct in case the transaction is rolled back.
    Type: Grant
    Filed: July 8, 2012
    Date of Patent: November 10, 2015
    Assignee: International Business Machines Corporation
    Inventor: Marcel Zalmanovici
  • Patent number: 9183007
    Abstract: Embodiments of the present invention provide a method, system and computer program product for dynamic selection of a runtime classloader for a generated class file. In an embodiment of the invention, a method for dynamic selection of a runtime classloader for a generated class file is provided. The method includes extracting meta-data from a program object directed for execution in an application server and determining from the meta-data a container identity for a container in which the program object had been compiled. The method also includes selecting a container according to the meta-data. Finally, the method includes classloading the program object in the selected container.
    Type: Grant
    Filed: February 28, 2012
    Date of Patent: November 10, 2015
    Assignee: International Business Machines Corporation
    Inventors: Erik J. Burckart, Andrew Ivory, Todd E. Kaplinger, Stephen J. Kenna, Aaron K. Shook
  • Patent number: 9176717
    Abstract: An embodiment of the invention provides a method for exploiting stateless and stateful data parallelism in a streaming application, wherein a compiler determines whether an operator of the streaming application is safe to parallelize based on a definition of the operator and an instance of the definition. The operator is not safe to parallelize when the operator has selectivity greater than 1, wherein the selectivity is the number of output tuples generated for each input tuple. Parallel regions are formed within the streaming application with the compiler when the operator is safe to parallelize. Synchronization strategies for the parallel regions are determined with the compiler, wherein the synchronization strategies are determined based on the definition of the operator and the instance of the definition. The synchronization strategies of the parallel regions are enforced with a runtime system.
    Type: Grant
    Filed: October 12, 2012
    Date of Patent: November 3, 2015
    Assignee: International Business Machines Corporation
    Inventors: Bugra Gedik, Martin J. Hirzel, Scott A. Schneider, Kun-Lung Wu
  • Patent number: 9170794
    Abstract: An embodiment of the invention provides a method for exploiting stateless and stateful data parallelism in a streaming application, wherein a compiler determines whether an operator of the streaming application is safe to parallelize based on a definition of the operator and an instance of the definition. The operator is not safe to parallelize when the operator has selectivity greater than 1, wherein the selectivity is the number of output tuples generated for each input tuple. Parallel regions are formed within the streaming application with the compiler when the operator is safe to parallelize. Synchronization strategies for the parallel regions are determined with the compiler, wherein the synchronization strategies are determined based on the definition of the operator and the instance of the definition. The synchronization strategies of the parallel regions are enforced with a runtime system.
    Type: Grant
    Filed: August 28, 2012
    Date of Patent: October 27, 2015
    Assignee: International Business Machines Corporation
    Inventors: Bugra Gedik, Martin J. Hirzel, Scott A. Schneider, Kun-Lung Wu
  • Patent number: 9134964
    Abstract: Systems and methods for developing, customizing, and deploying applications for devices are provided through a application development and deployment platform. Preferably, these systems and methods are implemented in an Internet based environment that allows non-technical users to build sophisticated, highly-customizable cross-platform applications. The platform allows users to select, input, create, customize, and combine various content, design characteristics, and application components, such as modules, some of which utilize features and functionality associated with various devices capable of running applications, operating systems, and app-enabled accessories. In certain embodiments, the platform allows users to compile and generate a configuration file for the application that can be distributed to end users for execution on various devices and operating systems.
    Type: Grant
    Filed: March 14, 2013
    Date of Patent: September 15, 2015
    Assignee: MEDIA DIRECT, INC.
    Inventors: Scott Hirsch, Arsen Pereymer, Sunny Rajpal