Patents Assigned to CONCURIX CORPORATION
  • Publication number: 20150052403
    Abstract: A tracing and debugging system may take a snapshot of an application in response to an event, and may continue executing the program after the snapshot is captured. The snapshot may be stored and retrieved later in a debugging tool where a programmer may browse the snapshot or the snapshot may have some other analysis performed. The snapshot may contain a subset of the state of the application, such as call stacks, portions of source code, the values of local and global variables, and various metadata. The snapshot may be defined in a snapshot configuration that may include an event description and data to be collected.
    Type: Application
    Filed: August 19, 2013
    Publication date: February 19, 2015
    Applicant: Concurix Corporation
    Inventors: Charles D. GARRETT, Alexander G. Gounares
  • Publication number: 20150052400
    Abstract: A debugging system may display snapshot information that may be collected in response to an event identified while an application executes. The debugging system may allow a user to browse the various data elements in the snapshot, and may allow the user to modify a snapshot configuration by including or excluding various data elements within the snapshot data. The user interface may have a mechanism for including or excluding data elements that may be presented during browsing, as well as options to change the events that may trigger a snapshot. The updated snapshot configuration may be saved for future execution when the event conditions are satisfied.
    Type: Application
    Filed: August 19, 2013
    Publication date: February 19, 2015
    Applicant: CONCURIX CORPORATION
    Inventors: Charles D. GARRETT, Alexander G. Gounares
  • Publication number: 20150052406
    Abstract: A tracing and debugging system may collect both performance related tracer data and snapshot data. The tracer data may contain aggregated performance and operational data, while the snapshot data may contain call stack, source code, and other information that may be useful for debugging and detailed understanding of an application. The snapshot data may be stored in a separate database from the tracer data, as the snapshot data may contain data that may be private or sensitive, while the tracer data may be aggregated information that may be less sensitive. A debugging user interface may be used to access, display, and browse the stored snapshot data.
    Type: Application
    Filed: August 19, 2013
    Publication date: February 19, 2015
    Applicant: CONCURIX CORPORATION
    Inventors: Charles D. Garrett, Alexander G. Gounares
  • Patent number: 8954546
    Abstract: A load balanced system may incorporate instrumented systems within a group of managed devices and distribute workload among the devices to meet both load balancing and data collection. A workload distributor may communicate with and configure several managed devices, some of which may have instrumentation that may collect trace data for workload run on those devices. Authentication may be performed between the managed devices and the workload distributor to verify that the managed devices are able to receive the workloads and to verify the workloads prior to execution. The workload distributor may increase or decrease the amount of instrumentation in relation to the workload experienced at any given time.
    Type: Grant
    Filed: January 25, 2013
    Date of Patent: February 10, 2015
    Assignee: Concurix Corporation
    Inventor: Russell S. Krajec
  • Publication number: 20150033172
    Abstract: A timeline chart may represent multiple data sets gathered from multiple sequences of a process by placing sub-graphs within timeline bars. The sub-graphs may represent summarized data related to each event represented by a timeline bar. The timeline chart may present an overall view of a sequence of process steps with insights to the shape or distribution of the underlying observations. The timeline chart may be an instance of an event chain diagram, where the elements within the event chains are displayed with respect to time. The timeline chart may be presented as representing the aggregated dataset of multiple runs, as well as a representation of a single observed sequence. In both cases, sub-graphs may be included in a timeline bar to represent different views of the aggregated dataset.
    Type: Application
    Filed: July 24, 2013
    Publication date: January 29, 2015
    Applicant: Concurix Corporation
    Inventor: Russell S. Krajec
  • Publication number: 20150029193
    Abstract: An event chain visualization of performance data may show the execution of monitored elements as bars on a timeline, with connections or other relationships connecting the various bars into a sequential view of an application. The visualization may include color, shading, or other highlighting to show resource utilization or performance metrics. The visualization may be generated by monitoring many events processed by an application, where each bar on a timeline may reflect multiple instances of a monitored element and, in some case, the aggregated performance.
    Type: Application
    Filed: July 24, 2013
    Publication date: January 29, 2015
    Applicant: Concurix Corporation
    Inventor: Russell S. Krajec
  • Patent number: 8924941
    Abstract: Tracer objectives in a distributed tracing system may be compared to identify input parameters that may have a high statistical relevancy. An iterative process may traverse multiple input objects by comparing results of multiple tracer objectives and scoring possible input objects as being possibly statistically relevant. With each iteration, statistically irrelevant input objects may be discarded from a tracer objective and other potentially relevant objects may be added. The iterative process may converge on a set of statistically relevant input objects for a given measured value without a priori knowledge of an application being traced.
    Type: Grant
    Filed: February 12, 2013
    Date of Patent: December 30, 2014
    Assignee: Concurix Corporation
    Inventors: Russell S. Krajec, Ying Li
  • Publication number: 20140298304
    Abstract: Processes in a message passing system may be launched when messages having data patterns match a function on a receiving process. The function may be identified by an execution pointer within the process. When the match occurs, the process may be added to a runnable queue, and in some embodiments, may be raised to the top of a runnable queue. When a match does not occur, the process may remain in a blocked or non-executing state. In some embodiments, a blocked process may be placed in an idle queue and may not be executed until a process scheduler determines that a message has been received that fulfills a function waiting for input. When the message fulfills the function, the process may be moved to a runnable queue.
    Type: Application
    Filed: April 8, 2014
    Publication date: October 2, 2014
    Applicant: Concurix Corporation
    Inventor: Charles D. GARRETT
  • Patent number: 8843901
    Abstract: A tracing system may perform cost analysis to identify burdensome or costly trace objectives. For a burdensome objective, two or more objectives may be created that can be executed independently. The cost analysis may include processing, storage, and network performance factors, which may be budgeted to collect data without undue performance or financial drains on the application under test. A larger objective may be recursively analyzed to break the larger objective into smaller objectives which may be independently deployed.
    Type: Grant
    Filed: February 12, 2013
    Date of Patent: September 23, 2014
    Assignee: Concurix Corporation
    Inventors: Russell S. Krajec, Ying Li
  • Publication number: 20140282597
    Abstract: A bottleneck detector may analyze individual workloads processed by an application by logging times when the workload may be processed at different checkpoints in the application. For each checkpoint, a curve fitting algorithm may be applied, and the fitted curves may be compared between different checkpoints to identify bottlenecks or other poorly performing sections of the application. A real time implementation of a detection system may compare newly captured data points against historical curves to detect a shift in the curve, which may indicate a bottleneck. In some cases, the fitted curves from neighboring checkpoints may be compared to identify sections of the application that may be a bottleneck. An automated system may apply one set of checkpoints in an application, identify an area for further investigation, and apply a second set of checkpoints in the identified area. Such a system may recursively search for bottlenecks in an executing application.
    Type: Application
    Filed: April 18, 2013
    Publication date: September 18, 2014
    Applicant: Concurix Corporation
    Inventors: Charles D. Garrett, Christopher W. Fraser
  • Publication number: 20140281726
    Abstract: An application programming interface may receive workload identifiers and checkpoint identifiers from which bottleneck detection may be performed. Workloads may be tracked through various checkpoints in an application and timestamps collected at each checkpoint. From these data, bottlenecks may be identified in real time or by analyzing the data in a subsequent analysis. The workloads may be processed by multiple devices which may comprise a large application. In some cases, the workloads may be processed by different devices in sequence or in a serial fashion, while in other cases workloads may be processed in parallel by different devices. The application programming interface may be part of a bottleneck detection service which may be sold on a pay-per-use model, a subscription model, or some other payment scheme.
    Type: Application
    Filed: April 18, 2013
    Publication date: September 18, 2014
    Applicant: Concurix Corporation
    Inventors: Charles D. Garrett, Christopher W. Fraser
  • Patent number: 8839204
    Abstract: The purity of a function may be determined after examining the performance history of a function and analyzing the conditions under which the function behaves as pure. In some cases, a function may be classified as pure when any side effects are de minimis or are otherwise considered trivial. A control flow graph may also be traversed to identify conditions in which a side effect may occur as well as to classify the side effects as trivial or non-trivial. The function purity may be used to identify functions for memoization. In some embodiments, the purity analysis may be performed by a remote server and communicated to a client device, where the client device may memoize the function.
    Type: Grant
    Filed: November 8, 2012
    Date of Patent: September 16, 2014
    Assignee: Concurix Corporation
    Inventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
  • Patent number: 8826254
    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: Grant
    Filed: November 8, 2012
    Date of Patent: September 2, 2014
    Assignee: Concurix Corporation
    Inventors: Alexadner G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
  • Patent number: 8793669
    Abstract: Processes in a message passing system may be launched when messages having data patterns match a function on a receiving process. The function may be identified by an execution pointer within the process. When the match occurs, the process may be added to a runnable queue, and in some embodiments, may be raised to the top of a runnable queue. When a match does not occur, the process may remain in a blocked or non-executing state. In some embodiments, a blocked process may be placed in an idle queue and may not be executed until a process scheduler determines that a message has been received that fulfills a function waiting for input. When the message fulfills the function, the process may be moved to a runnable queue.
    Type: Grant
    Filed: July 17, 2012
    Date of Patent: July 29, 2014
    Assignee: Concurix Corporation
    Inventor: Charles D. Garrett
  • Patent number: 8789030
    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: Grant
    Filed: September 18, 2012
    Date of Patent: July 22, 2014
    Assignee: Concurix Corporation
    Inventors: Alexander G. Gounares, Ying Li, Charles D. Garrett
  • Publication number: 20140189650
    Abstract: Breakpoints may be set by selecting nodes on a graph depicting code elements and relationships between code elements. The graph may be derived from tracing data, and may reflect the observed code elements and the observed interactions between code elements. In many cases, the graph may include performance indicators. The breakpoints may include conditions which depend on performance related metrics, among other things. In some embodiments, the nodes may reflect individual instances of specific code elements, while other embodiments may present nodes as the same code elements that may be utilized by different threads. The breakpoints may include parameters or conditions that may be thread-specific.
    Type: Application
    Filed: May 21, 2013
    Publication date: July 3, 2014
    Applicant: Concurix Corporation
    Inventor: Alexander G. Gounares
  • Patent number: 8752034
    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: Grant
    Filed: November 8, 2012
    Date of Patent: June 10, 2014
    Assignee: Concurix Corporation
    Inventors: Alexander G. Gounares, Ying Li, Charles D. Garrett, Michael D. Noakes
  • Patent number: 8752021
    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: Grant
    Filed: November 8, 2012
    Date of Patent: June 10, 2014
    Assignee: Concurix Corporation
    Inventors: Ying Li, Charles D. Garrett, Michael D. Noakes, Alexander G. Gounares
  • Patent number: 8726255
    Abstract: Executable code may be recompiled so that generic portions of code may be replaced with specific portions of code. The recompilation may customize executable code for a specific use or configuration, making the code lightweight and executing faster. The replacement mechanism may replace variable names with fixed values, replace conditional branches with only those branches which are known to be executed, and may eliminate executable code portions that are not executed. The replacement mechanism may comprise identifying known values defined in the executable code for variables, and replacing those variables with the constant value. Once the constants are substituted, the code may be analyzed to identify branches that may be evaluated using the constant values. Those branches may be reformed using the constant value and the rest of the conditional code that may not be accessed may be removed.
    Type: Grant
    Filed: May 1, 2012
    Date of Patent: May 13, 2014
    Assignee: Concurix Corporation
    Inventors: Alexander G. Gounares, Charles D. Garrett
  • Patent number: 8707326
    Abstract: Processes in a message passing system may be unblocked when messages having data patterns match data patterns of a function on a receiving process. When the match occurs, the process may be added to a runnable queue, and in some embodiments, may be raised to the top of a runnable queue. When a match does not occur, the process may remain in a blocked or non-executing state. In some embodiments, a blocked process may be placed in an idle queue and may not be executed until a process scheduler determines that a message has been received that fulfills a function waiting for input. When the message fulfills the function, the process may be moved to a runnable queue.
    Type: Grant
    Filed: July 17, 2012
    Date of Patent: April 22, 2014
    Assignee: Concurix Corporation
    Inventor: Charles D. Garrett