Systems and methods for implementing best-effort parallel computing frameworks
AssigneeNEC Laboratories America, Inc.
InventorsSrimat Chakradhar, Anand Raghunathan, Jiayuan Meng
Life of this patent
Estimating the term…
Abstract
Implementations of the present principles include Best-effort computing systems and methods. In accordance with various exemplary aspects of the present principles, a application computation requests directed to a processing platform may be intercepted and classified as either guaranteed computations or best-effort computations. Best-effort computations may be dropped to improve processing performance while minimally affecting the end result of application computations. In addition, interdependencies between best-effort computations may be relaxed to improve parallelism and processing speed while maintaining accuracy of computation results.
Claims17
A best-effort parallel processing system comprising:
- a processing platform including at least one processor configured to execute application computations;
- an application layer that comprises at least one application that is executed on the processing platform;
- and
- a best-effort computation layer between the application layer and the processing platform that is configured to classify a set of computations requested by the application layer as either guaranteed computations, which are assuredly executed by the processing platform, or best-effort computations,
- wherein the set of computations includes at least a subset of computations that modify a first set of parameters based on a second set of parameters,
- wherein the application layer and the best-effort computation layer are configured such that the best-effort computation layer receives from the application layer a request that a first computation, from the subset of computations, directed to a first parameter from the second set of parameters be performed before a second computation, from the subset of computations, directed to a second parameter from the second set of parameters,
- wherein the best-effort computation layer is further configured to classify the first and second computations as best-effort computations in response to determining that a parameter from the first set of parameters that has a closest distance, of the first set of parameters, to the first parameter is different from a parameter from the first set of parameters that has a closest distance, of the first set of parameters, to the second parameter,
- wherein the best-effort computation layer is further configured to perform re-ordering of the first and second computations such that a dependency between the first and second computations is not maintained.
A method for implementing a best-effort architecture within a computing system comprising:
- intercepting requests for a set of computations from an application that are intended for a processing platform, wherein said set of computations includes a subset of computations that modify a first set of parameters based on a second set of parameters, wherein at least one of the requests indicates that a first computation, from the subset of computations, directed to a first parameter from the second set of parameters be performed before a second computation, from the subset of computations, directed to a second parameter from the second set of parameters;
- classifying the set of computations as either guaranteed applications, which are assuredly executed by the processing platform, or best-effort computations, wherein the classifying includes classifying the first and second computations as best-effort computations in response to determining that a parameter from the first set of parameters that has a closest distance, of the first set of parameters, to the first parameter is different from a parameter from the first set of parameters that has a closest distance, of the first set of parameters, to the second parameter;
- and
- directing guaranteed computation requests to the processing platform and re-ordering the first and second computations such that a dependency between the first and second computations is not maintained.
A method for improving parallel processing performance by implementing a best-effort architecture within an application program comprising:
- providing a programming template for generating the application program;
- prompting a user to select dependency relaxation criteria;
- and
- executing the program and applying the dependency relaxation criteria to improve processing performance,
- wherein the executing the program and the applying the dependency criteria comprises evaluating a set of computations that modify a first set of parameters based on a second set of parameters and that indicate that a first computation, from the set of computations, directed to a first parameter from the second set of parameters be perfoiined before a second computation, from the set of computations, directed to a second parameter from the second set of parameters, and re-ordering the first and second computations such that a dependency between the first and second computations is not maintained in response to determining, in accordance with the dependency relaxation criteria, that a parameter from the first set of parameters that has a closest distance, of the first set of parameters, to the first parameter is different from a parameter from the first set of parameters that has a closest distance, of the first set of parameters, to the second parameter.
Dependencies are inferred from the claim text.