Patents Assigned to CONCURIX CORPORATION
-
Publication number: 20130232174Abstract: A force directed graph may display recent activities of a message passing system as highlighted features over a larger graph. The force directed graph may display a superset of nodes and edges representing processes and message routes, then display recent activities as highlighted elements within the larger superset. The highlighted elements may display messages passed or computation performed during a recent time element of a time series. In some embodiments, the effects of activities may be displayed by decaying the highlighted visual elements over time.Type: ApplicationFiled: February 1, 2013Publication date: September 5, 2013Applicant: CONCURIX CORPORATIONInventors: Russell S. Krajec, Alexander G. Gounares
-
Publication number: 20130232433Abstract: A force directed graph may serve as a part of a user control for a tracer. The tracer may collect data while monitoring an executing application, then the data may be processed and displayed on a force directed graph. A user may be able to select individual nodes, edges, or other elements, then cause the tracer to change what data may be collected. The user may be able to select individual nodes, edges, or groups of elements on the graph, then perform updates to the tracer using the selected elements. The selection mechanisms may include clicking and dragging a window to select nodes that may be related, as well as selecting from a legend or other grouping.Type: ApplicationFiled: February 1, 2013Publication date: September 5, 2013Applicant: CONCURIX CORPORATIONInventors: Russell S. Krajec, Alexander G. Gounares
-
Publication number: 20130232452Abstract: A force directed graph may display time series data using a set of playback controls to pause, play, reverse, fast forward, slow down, or otherwise control the display of the time series data. The playback controls may be used in a real time or near real time application to which data sets are displayed and the speed with which the data sets may be displayed. In one architecture, the force directed graph may be deployed using a rendering engine that receives data and renders the data into a graph. A playback controller may send updates to the rendering engine according to user inputs from the playback controls.Type: ApplicationFiled: February 1, 2013Publication date: September 5, 2013Applicant: CONCURIX CORPORATIONInventors: Russell S. Krajec, Alexander G. Gounares
-
Publication number: 20130219057Abstract: An analysis system may perform network analysis on data gathered from an executing application. The analysis system may identify relationships between code elements and use tracer data to quantify and classify various code elements. In some cases, the analysis system may operate with only data gathered while tracing an application, while other cases may combine static analysis data with tracing data. The network analysis may identify groups of related code elements through cluster analysis, as well as identify bottlenecks from one to many and many to one relationships. The analysis system may generate visualizations showing the interconnections or relationships within the executing code, along with highlighted elements that may be limiting performance.Type: ApplicationFiled: March 29, 2013Publication date: August 22, 2013Applicant: Concurix CorporationInventor: Concurix Corporation
-
Publication number: 20130219372Abstract: An analysis system may perform network analysis on data gathered from an executing application. The analysis system may identify relationships between code elements and use tracer data to quantify and classify various code elements. In some cases, the analysis system may operate with only data gathered while tracing an application, while other cases may combine static analysis data with tracing data. The network analysis may identify groups of related code elements through cluster analysis, as well as identify bottlenecks from one to many and many to one relationships. The analysis system may generate visualizations showing the interconnections or relationships within the executing code, along with highlighted elements that may be limiting performance.Type: ApplicationFiled: March 29, 2013Publication date: August 22, 2013Applicant: Concurix CorporationInventor: Concurix Corporation
-
Patent number: 8495598Abstract: An operating system may be configured using a control flow graph that defines relationships between each executable module. The operating system may be configured by analyzing an application and identifying the operating system modules called from the application, then building a control flow graph for the configuration. The operating system may be deployed to a server or other computer containing only those components identified in the control flow graph. Such a lightweight deployment may be used on a large scale for datacenter servers as well as for small scale deployments on sensors and other devices with little processing power.Type: GrantFiled: May 1, 2012Date of Patent: July 23, 2013Assignee: Concurix CorporationInventors: Alexander G. Gounares, Charles D. Garrett
-
Publication number: 20130117759Abstract: A schedule graph may be used to identify executable elements that consume data from a network interface or other input/output interface. The schedule graph may be traversed to identify a sequence or pipeline of executable elements that may be triggered from data received on the interface, then a process scheduler may cause those executable elements to be executed on available processors. A queue manager and a load manager may optimize the resources allocated to the executable elements to maximize the throughput for the input/output interface. Such as system may optimize processing for input or output of network connections, storage devices, or other input/output devices.Type: ApplicationFiled: May 1, 2012Publication date: May 9, 2013Applicant: CONCURIX CORPORATIONInventors: Alexander G. Gounares, Charles D. Garrett
-
Publication number: 20130117753Abstract: A process scheduler for multi-core and many-core processors may place related executable elements that share common data on the same cores. When executed on a common core, sequential elements may store data in memory caches that are very quickly accessed, as opposed to main memory which may take many clock cycles to access the data. The sequential elements may be identified from messages passed between elements or other relationships that may link the elements. In one embodiment, a scheduling graph may be constructed that contains the executable elements and relationships between those elements. The scheduling graph may be traversed to identify related executable elements and a process scheduler may attempt to place consecutive or related executable elements on the same core so that commonly shared data may be retrieved from a memory cache rather than main memory.Type: ApplicationFiled: May 1, 2012Publication date: May 9, 2013Applicant: CONCURIX CORPORATIONInventors: Alexander G. Gounares, Charles D. Garrett
-
Publication number: 20130085882Abstract: An offline optimization for computer software may involve creating optimized parameters or components for a software product, and charging customers for the optimization service. The software product may be distributed under one licensing regime and the optimization components may be distributed under a second licensing regime. In some embodiments, a low cost or no-cost monitoring system may be provided, which may interface with a remote service that optimizes the software product for its current workload. A user may pay for the remote optimization service through a subscription, pay-per-use, pay-for-performance, or other payment models.Type: ApplicationFiled: September 18, 2012Publication date: April 4, 2013Applicant: CONCURIX CORPORATIONInventor: Concurix Corporation
-
Publication number: 20130080761Abstract: An execution environment may have a monitoring, analysis, and feedback loop that may configure and tune the execution environment for currently executing workloads. A monitoring or instrumentation system may collect operational and performance data from hardware and software components within the system. A modeling system may create an operational model of the execution environment, then may determine different sets of parameters for the execution environment. A feedback loop may change various operational characteristics of the execution environment. The monitoring, analysis, and feedback loop may optimize the performance of a computer system for various metrics, including throughput, performance, energy conservation, or other metrics based on the applications that are currently executing. The performance model of the execution environment may be persisted and applied to new applications to optimize the performance of applications that have not been executed on the system.Type: ApplicationFiled: August 10, 2012Publication date: March 28, 2013Applicant: CONCURIX CORPORATIONInventors: Charles D. Garrett, Ying Li, Alexander G. Gounares
-
Publication number: 20130080760Abstract: An execution environment may have a monitoring, analysis, and feedback loop that may configure and tune the execution environment for currently executing workloads. A monitoring or instrumentation system may collect operational and performance data from hardware and software components within the system. A modeling system may create an operational model of the execution environment, then may determine different sets of parameters for the execution environment. A feedback loop may change various operational characteristics of the execution environment. The monitoring, analysis, and feedback loop may optimize the performance of a computer system for various metrics, including throughput, performance, energy conservation, or other metrics based on the applications that are currently executing. The performance model of the execution environment may be persisted and applied to new applications to optimize the performance of applications that have not been executed on the system.Type: ApplicationFiled: August 10, 2012Publication date: March 28, 2013Applicant: CONCURIX CORPORATIONInventors: Ying Li, Alexander G. Gounares, Charles D. Garrett
-
Publication number: 20130081005Abstract: Optimized memory management settings may be derived from a mathematical model of an execution environment. The settings may be optimized for each application or workload, and the settings may be implemented per application, per process, or with other granularity. The settings may be determined after an initial run of a workload, which may observe and characterize the execution. The workload may be executed a second time using the optimized settings. The settings may be stored as tags for the executable code, which may be in the form of a metadata file or as tags embedded in the source code, intermediate code, or executable code. The settings may change the performance of memory management operations in both interpreted and compiled environments. The memory management operations may include memory allocation, garbage collection, and other related functions.Type: ApplicationFiled: August 10, 2012Publication date: March 28, 2013Applicant: CONCURIX CORPORATIONInventors: Alexander G. Gounares, Ying Li, Charles D. Garrett
-
Publication number: 20130074056Abstract: A function may be memoized when a side effect is a read only side effect. Provided that the read only side effect does not mutate a memory object, the side effect may be considered as an input to a function for purity and memoization analysis. When a read only side effect may be encountered during memoization analysis, the read only side effect may be treated as an input to a function for memoization analysis. In some cases, such side effects may enable an impure function to behave as a pure function for the purposes of memoization.Type: ApplicationFiled: November 8, 2012Publication date: March 21, 2013Applicant: CONCURIX CORPORATIONInventor: Concurix Corporation
-
Publication number: 20130074049Abstract: Memoization may be deployed using a configuration file or database that identifies functions to memorize, and in some cases, includes input and result values for those functions. As an application is executed, functions defined in the configuration file may be captured and memoized. During the first execution of the function, the return value may be captured and stored in the configuration file. For subsequent executions of the function, the return value may be stored in the configuration file. In some cases, the configuration file may be distributed with the return values to client computers. The configuration file may be created by one device and deployed to other devices in some deployments.Type: ApplicationFiled: November 8, 2012Publication date: March 21, 2013Applicant: Concurix CorporationInventor: Concurix Corporation
-
Publication number: 20130073604Abstract: A set of optimizations may be defined in a configuration database. The configuration database may be defined with a set of boundaries that may define conditions under which the optimizations may be valid. When the conditions are not met, a new configuration database may be requested from an optimization server. The system may be used to distribute and manage optimizations for an application, which may be deployed in interpreted or runtime scenarios or in pre-execution or compiled scenarios.Type: ApplicationFiled: November 8, 2012Publication date: March 21, 2013Applicant: CONCURIX CORPORATIONInventor: Concurix Corporation
-
Publication number: 20130073523Abstract: Memoizable functions may be identified by analyzing a function's side effects. The side effects may be evaluated using a white list, black list, or other definition. The side effects may also be classified into conditions which may or may not permit memoization. Side effects that may have de minimus or trivial effects may be ignored in some cases where the accuracy of a function may not be significantly affected when the function may be memoized.Type: ApplicationFiled: November 8, 2012Publication date: March 21, 2013Applicant: CONCURIX CORPORATIONInventor: Concurix Corporation
-
Publication number: 20130074058Abstract: Memoization may be deployed using a configuration file or database that identifies functions to memorize, and in some cases, includes input and result values for those functions. The configuration file or database may be created by profiling target code and offline or otherwise separate analysis of the profiling results. The configuration file may be used by an execution environment to identify which functions to memorize during execution. The offline or separate analysis of the profiling results may enable more sophisticated analysis than could otherwise be performed in parallel with executing the target code, including historical analysis of multiple instances of the target code and sophisticated cost/benefit analysis.Type: ApplicationFiled: September 18, 2012Publication date: March 21, 2013Applicant: CONCURIX CORPORATIONInventor: Concurix Corporation
-
Publication number: 20130074093Abstract: A configurable memory allocation and management system may generate a configuration file with memory settings that may be deployed prior to runtime. A compiler or other pre-execution system may detect a memory allocation boundary and decorate the code. During execution, the decorated code may be used to look up memory allocation and management settings from a database or to deploy optimized settings that may be embedded in the decorations.Type: ApplicationFiled: November 8, 2012Publication date: March 21, 2013Applicant: CONCURIX CORPORATIONInventor: Concurix Corporation
-
Publication number: 20130073837Abstract: A function's purity may be estimated by comparing a new input vector to previously analyzed input vectors. When a new input vector is within a confidence boundary, the new input vector may be treated as a known vector, even when that vector has not been evaluated. The input vector may reflect the input parameters passed to a function, and the function may be analyzed to determine whether to memoize with the input vector. The function may be a function that behaves as a pure function in some circumstances and with some input vectors, but not with others. By memoizing the function when possible, the function may be executed much faster, thereby improving performance.Type: ApplicationFiled: November 8, 2012Publication date: March 21, 2013Applicant: CONCURIX CORPORATIONInventor: Concurix Corporation
-
Publication number: 20130074092Abstract: A configurable memory allocation and management system may generate a configuration file with memory settings that may be deployed at runtime. An execution environment may capture a memory allocation boundary, look up the boundary in a configuration file, and apply the settings when the settings are available. When the settings are not available, a default set of settings may be used. The execution environment may deploy the optimized settings without modifying the executing code.Type: ApplicationFiled: November 8, 2012Publication date: March 21, 2013Applicant: CONCURIX CORPORATIONInventor: Concurix Corporation