Patent application number | Description | Published |
20090043992 | Method And System For Data Speculation On Multicore Systems - The method and system for data speculation of multicore systems are disclosed. In one embodiment, a method includes dynamically determining whether a current speculative load instruction and an associated store instruction have same memory addresses in an application thread in compiled code running on a main core using a dynamic helper thread running on a idle core substantially before encountering the current speculative load instruction. The instruction sequence associated with the current speculative load instruction is then edited by the dynamic helper thread based on the outcome of the determination so that the current speculative load instruction becomes a non-speculative load instruction. | 02-12-2009 |
20100037242 | SYSTEM AND METHOD FOR IMPROVING RUN-TIME PERFORMANCE OF APPLICATIONS WITH MULTITHREADED AND SINGLE THREADED ROUTINES - A system and method for improving run-time performance of applications with multithreaded and single threaded routines that are linked with libpthreads library is disclosed. In one embodiment, a method for running a mixed ST/MT application program linked with libpthreads library including creating an interceptor library containing pthread application programming interface (pthread_API) call interceptors and loading the interceptor library into the mixed ST/MT application program, and running the mixed ST/MT application program by using light weight (LW) and heavy weight (HW) synchronization routines based on determining switchovers between ST and MT program modes, respectively, during run-time using the interceptor library. | 02-11-2010 |
20100287538 | METHOD AND SYSTEM FOR DATA CENTRIC HEAP PROFILING - A method and system for data centric heap profiling is disclosed. In one embodiment, a method, implemented in a computing device, for data centric heap profiling includes generating a type table for data structure types in source code using a compiler of the computing device. The method also includes identifying each heap allocation site and a corresponding data structure type in the source code using the compiler. The method further includes generating a data centric view of a heap o fan application compiled from the source code based on the each heap allocation site and the corresponding data structure type using a debugger of the computing device when a snapshot of the heap is requested during an execution of the application. | 11-11-2010 |
20110154289 | OPTIMIZATION OF AN APPLICATION PROGRAM - Methods for optimizing a region of an application program are described. A delinquent region of the application program is identified based on a data utilization parameter. The delinquent region is optimized by creating an optimized structure type associated with the delinquent region. The optimized structure type includes one or more data fields selected based on delinquent region profile information. | 06-23-2011 |
20120151155 | MANAGING SHARED MEMORY - Systems, methods, and computer-readable and executable instructions are provided for managing shared memory. A method for managing shared memory can include statically assigning a first number of locks to the shared memory during compile-time and dynamically assigning a second number of locks to the shared memory during runtime. | 06-14-2012 |
20130283252 | Dynamic Software Updates - A method, and a corresponding system, for dynamically updating software while the software is running by automatically dividing a patch into a plurality of micro-updates using compiler analysis. The method includes providing the patch which includes updates to several variable units of the software, including functions, type definitions, and data stores. Next, an interference graph of the patch is generated by creating a node corresponding to each variable unit of the patch and creating connected components by adding edges connecting variable units having an impact expression with a non-zero intersection. The patch is divided into the micro-updates, where each micro-update corresponds to a connected component. The micro-updates are then applied to the software when the variable units of the micro-update are at a safepoint, and at least two of the micro-updates are applied at different times while the software is running. | 10-24-2013 |