Patents Assigned to CONCURIX CORPORATION
  • Publication number: 20130232174
    Abstract: 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: Application
    Filed: February 1, 2013
    Publication date: September 5, 2013
    Applicant: CONCURIX CORPORATION
    Inventors: Russell S. Krajec, Alexander G. Gounares
  • Publication number: 20130232433
    Abstract: 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: Application
    Filed: February 1, 2013
    Publication date: September 5, 2013
    Applicant: CONCURIX CORPORATION
    Inventors: Russell S. Krajec, Alexander G. Gounares
  • Publication number: 20130232452
    Abstract: 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: Application
    Filed: February 1, 2013
    Publication date: September 5, 2013
    Applicant: CONCURIX CORPORATION
    Inventors: Russell S. Krajec, Alexander G. Gounares
  • Publication number: 20130219057
    Abstract: 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: Application
    Filed: March 29, 2013
    Publication date: August 22, 2013
    Applicant: Concurix Corporation
    Inventor: Concurix Corporation
  • Publication number: 20130219372
    Abstract: 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: Application
    Filed: March 29, 2013
    Publication date: August 22, 2013
    Applicant: Concurix Corporation
    Inventor: Concurix Corporation
  • Patent number: 8495598
    Abstract: 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: Grant
    Filed: May 1, 2012
    Date of Patent: July 23, 2013
    Assignee: Concurix Corporation
    Inventors: Alexander G. Gounares, Charles D. Garrett
  • Publication number: 20130117759
    Abstract: 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: Application
    Filed: May 1, 2012
    Publication date: May 9, 2013
    Applicant: CONCURIX CORPORATION
    Inventors: Alexander G. Gounares, Charles D. Garrett
  • Publication number: 20130117753
    Abstract: 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: Application
    Filed: May 1, 2012
    Publication date: May 9, 2013
    Applicant: CONCURIX CORPORATION
    Inventors: Alexander G. Gounares, Charles D. Garrett
  • Publication number: 20130085882
    Abstract: 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: Application
    Filed: September 18, 2012
    Publication date: April 4, 2013
    Applicant: CONCURIX CORPORATION
    Inventor: Concurix Corporation
  • Publication number: 20130080761
    Abstract: 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: Application
    Filed: August 10, 2012
    Publication date: March 28, 2013
    Applicant: CONCURIX CORPORATION
    Inventors: Charles D. Garrett, Ying Li, Alexander G. Gounares
  • Publication number: 20130080760
    Abstract: 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: Application
    Filed: August 10, 2012
    Publication date: March 28, 2013
    Applicant: CONCURIX CORPORATION
    Inventors: Ying Li, Alexander G. Gounares, Charles D. Garrett
  • Publication number: 20130081005
    Abstract: 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: Application
    Filed: August 10, 2012
    Publication date: March 28, 2013
    Applicant: CONCURIX CORPORATION
    Inventors: Alexander G. Gounares, Ying Li, Charles D. Garrett
  • Publication number: 20130074056
    Abstract: 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: Application
    Filed: November 8, 2012
    Publication date: March 21, 2013
    Applicant: CONCURIX CORPORATION
    Inventor: Concurix Corporation
  • Publication number: 20130074049
    Abstract: 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: Application
    Filed: November 8, 2012
    Publication date: March 21, 2013
    Applicant: Concurix Corporation
    Inventor: Concurix Corporation
  • Publication number: 20130073604
    Abstract: 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: Application
    Filed: November 8, 2012
    Publication date: March 21, 2013
    Applicant: CONCURIX CORPORATION
    Inventor: Concurix Corporation
  • Publication number: 20130073523
    Abstract: 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: Application
    Filed: November 8, 2012
    Publication date: March 21, 2013
    Applicant: CONCURIX CORPORATION
    Inventor: Concurix Corporation
  • Publication number: 20130074058
    Abstract: 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: Application
    Filed: September 18, 2012
    Publication date: March 21, 2013
    Applicant: CONCURIX CORPORATION
    Inventor: Concurix Corporation
  • Publication number: 20130074093
    Abstract: 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: Application
    Filed: November 8, 2012
    Publication date: March 21, 2013
    Applicant: CONCURIX CORPORATION
    Inventor: Concurix Corporation
  • Publication number: 20130073837
    Abstract: 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: Application
    Filed: November 8, 2012
    Publication date: March 21, 2013
    Applicant: CONCURIX CORPORATION
    Inventor: Concurix Corporation
  • Publication number: 20130074092
    Abstract: 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: Application
    Filed: November 8, 2012
    Publication date: March 21, 2013
    Applicant: CONCURIX CORPORATION
    Inventor: Concurix Corporation