Patents by Inventor Sriram Rajamani
Sriram Rajamani has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 9104961Abstract: There is provided a method and system for modeling a data generating process. The method includes generating a dyadic Bayesian model including a pair of probabilistic functions representing a prior distribution and a sampling distribution, and modeling a data generating process based on the dyadic Bayesian model using observed data. The method includes generating a learner object for the dyadic Bayesian model. The method further includes training the dyadic Bayesian model with the learner object based on the observed data to produce a trained dyadic Bayesian model. The method also includes generating a posterior distribution over parameters based on the trained dyadic Bayesian model. The method also further includes generating a posterior predictive distribution based on the posterior distribution. The method also includes predicting an outcome of observable variables based on the posterior predictive distribution.Type: GrantFiled: October 8, 2012Date of Patent: August 11, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Andrew D. Gordon, Thore Graepel, Aditya Nori, Sriram Rajamani, Johannes Borgstroem
-
Patent number: 8910120Abstract: Software debugging recommendation technique embodiments are presented that generally entails creating a database of characterized software bug descriptions and providing software debugging recommendations from the database in response to a query. This can employ a two-phased approach in the search for similar software bugs. The first is a search phase that takes a query as input and returns a ranked list of software bug descriptions that match the query. These bug descriptions can contain a mix of structured and unstructured data. The second phase is a related-information phase that uses the output of the first phase to retrieve a set of related recommendations such as for people, source files, functions and binaries.Type: GrantFiled: March 5, 2010Date of Patent: December 9, 2014Assignee: Microsoft CorporationInventors: Gopal Ranganatha Srinivasa, Vipindeep Vangala, Balasubramanyan Ashok, Sriram Rajamani, Jacek Czerwonka, Hongkang Liang, Joseph M. Joy
-
Patent number: 8825572Abstract: A quantified belief propagation (QBP) algorithm receives as input an existentially quantified boolean formula (QBF) of existentially quantified boolean variables, universally quantified variables, and boolean operators. A tripartite graph is constructed, and includes (i) there-exists nodes that correspond to and represent the existentially quantified variables, (ii) for-all nodes that correspond to and represent the universally quantified variables, and (iii) sub-formula nodes that correspond to and represent sub-formulas of the QBF. A set of boolean values of the existentially quantified variables is found by (i) passing a first message from an arbitrary sub-formula node to an arbitrary for-all node, and (ii) in response, passing a second message from the arbitrary for-all node to the arbitrary sub-formula node.Type: GrantFiled: February 1, 2011Date of Patent: September 2, 2014Assignee: Microsoft CorporationInventors: Aditya Nori, Sriram Rajamani, Rahul Srinivasan, Sumit Gulwani
-
Patent number: 8799922Abstract: Described are methods of providing data sharing between applications. The applications run on different computers, communicate via a network, and share a same distributed object. Each application maintains on its computer an invariant copy of the distributed object and a variant copy of the distributed object. Each application performs update operations to the distributed object, where such an update operation issued by a given one of the applications is performed by: executing the update operation on the variant copy maintained by the given application (i) without the given application waiting for the other applications to perform the operation (each invariant copy is guaranteed to converge to a same state) and (ii) at each of the applications, including the given application, executing the update operation on the corresponding invariant copies.Type: GrantFiled: May 25, 2010Date of Patent: August 5, 2014Assignee: Microsoft CorporationInventors: Kaushik Rajan, Shashank Yaduvanshi, Sriram Rajamani
-
Publication number: 20140101090Abstract: There is provided a method and system for modeling a data generating process. The method includes generating a dyadic Bayesian model including a pair of probabilistic functions representing a prior distribution and a sampling distribution, and modeling a data generating process based on the dyadic Bayesian model using observed data.Type: ApplicationFiled: October 8, 2012Publication date: April 10, 2014Applicant: Microsoft CorporationInventors: Andrew D. Gordon, Thore Graepel, Aditya Nori, Sriram Rajamani, Johannes Borgstroem
-
Publication number: 20130144812Abstract: Various technologies described herein pertain to approximating an inputted probabilistic model for statistical relational learning. An initial approximation of formulae included in an inputted probabilistic model can be formed, where the initial approximation of the formulae omits axioms included in the inputted probabilistic model. Further, an approximated probabilistic model of the inputted probabilistic model can be constructed, where the approximated probabilistic model includes the initial approximation of the formulae. Moreover, the approximated probabilistic model and evidence can be fed to a relational learning engine, and a most probable explanation (MPE) world can be received from the relational learning engine. The evidence can comprise existing valuations of a subset of relations included in the inputted probabilistic model. The MPE world can include valuations for the relations included in the inputted probabilistic model.Type: ApplicationFiled: December 1, 2011Publication date: June 6, 2013Applicant: MICROSOFT CORPORATIONInventors: Arun Tejasvi Chaganty, Akash Lal, Aditya V. Nori, Sriram Rajamani
-
Publication number: 20110296432Abstract: Described are methods of providing data sharing between applications. The applications run on different computers, communicate via a network, and share a same distributed object. Each application maintains on its computer an invariant copy of the distributed object and a variant copy of the distributed object. Each application performs update operations to the distributed object, where such an update operation issued by a given one of the applications is performed by: executing the update operation on the variant copy maintained by the given application (i) without the given application waiting for the other applications to perform the operation (each invariant copy is guaranteed to converge to a same state) and (ii) at each of the applications, including the given application, executing the update operation on the corresponding invariant copies.Type: ApplicationFiled: May 25, 2010Publication date: December 1, 2011Applicant: MICROSOFT CORPORATIONInventors: Kaushik Rajan, Sriram Rajamani, Shashank Yaduvanshi
-
Publication number: 20110219360Abstract: Software debugging recommendation technique embodiments are presented that generally entails creating a database of characterized software bug descriptions and providing software debugging recommendations from the database in response to a query. This can employ a two-phased approach in the search for similar software bugs. The first is a search phase that takes a query as input and returns a ranked list of software bug descriptions that match the query. These bug descriptions can contain a mix of structured and unstructured data. The second phase is a related-information phase that uses the output of the first phase to retrieve a set of related recommendations such as for people, source files, functions and binaries.Type: ApplicationFiled: March 5, 2010Publication date: September 8, 2011Applicant: Microsoft CorporationInventors: Gopal Ranganatha Srinivasa, Vipindeep Vangala, Balasubramanyan Ashok, Sriram Rajamani, Jacek Czerwonka, Hongkang Liang, Joseph M. Joy
-
Patent number: 7941616Abstract: Locks are used to protect variables. All variables protected by a lock are allocated on a page associated with a lock. When a thread (called the owner) acquires the lock, a local copy of the memory page containing the variable is created, the original memory page is protected, and all access of the variable in the owner thread is directed to the local copy. Upon releasing the lock, the changes from the local copy are carried over to the memory page and the memory page is unprotected. Any concurrent access of the variable by non-owner threads triggers an exception handler (due to the protection mechanism) and delays such an access until after the owner thread has finished accessing the variable.Type: GrantFiled: October 21, 2008Date of Patent: May 10, 2011Assignee: Microsoft CorporationInventors: Sriram Rajamani, Ganesan Ramalingam, Venkatesh-Prasad Ranganath, Kapil Vaswani
-
Publication number: 20100251221Abstract: A method of analyzing a computer application is disclosed. The method may break an application into components and the method may determine if the components have already been analyzed for errors, either through static analysis or by a code analysis. If the component has already been analyzed, the previous analysis may be used and the method may move on to the next code section. If the component has not been analyzed, it may be determined if the component may be reached from a given starting point. If the component cannot be reached from a given starting point, the component may not be analyzed. Both static and code testing tools may be used to determine if errors exist. The fined-grained coupling and alternation of may (universal) and must (existential) summaries allow the method to easily navigate through these code fragments while traditional may-only, must-only or non-compositional may-must al-gorithms are stuck in their specific analyses.Type: ApplicationFiled: March 24, 2009Publication date: September 30, 2010Applicant: MICROSOFT CORPORATIONInventors: Aditya V. Nori, Patrice Godefroid, Sriram Rajamani, Sai Deep Tetali
-
Publication number: 20100169618Abstract: The claimed subject matter provides a system and/or a method that facilitates ensuring non-interference between multiple threads that access a shared resource. An interface can receive a portion of sequential code, wherein the portion of sequential code includes a property that is maintained and relied upon when invoked and executed by a sequential client. A synthesizer component can leverage a sequential proof related to the portion of sequential code in order to derive a concurrency control mechanism for a portion of concurrency code that maintains the property when invoked by a concurrent client, wherein the sequential proof identifies a concurrent interference at an execution point that is tolerable for the concurrent client.Type: ApplicationFiled: December 30, 2008Publication date: July 1, 2010Applicant: Microsoft CorporationInventors: Ganesan Ramalingam, Sriram Rajamani, Venkatesh-Prasad Ranganath, Kapil Vaswani, Jyotirmoy Vinay Deshmukh
-
Publication number: 20100100690Abstract: Locks are used to protect variables. All variables protected by a lock are allocated on a page associated with a lock. When a thread (called the owner) acquires the lock, a local copy of the memory page containing the variable is created, the original memory page is protected, and all access of the variable in the owner thread is directed to the local copy. Upon releasing the lock, the changes from the local copy are carried over to the memory page and the memory page is unprotected. Any concurrent access of the variable by non-owner threads triggers an exception handler (due to the protection mechanism) and delays such an access until after the owner thread has finished accessing the variable.Type: ApplicationFiled: October 21, 2008Publication date: April 22, 2010Applicant: MICROSOFT CORPORATIONInventors: Sriram Rajamani, Ganesan Ramalingam, Venkatesh-Prasad Ranganath, Kapil Vaswani
-
Publication number: 20090327809Abstract: During software development, both before and after release, information may be collected and stored that may provide insight to developers as a generalized service. For example, data from past debugging sessions, source code in various repositories, bug repositories, discussion groups, and various documents may provide relevant information for software developers to fix current problems when this information is coherently matched with the problem. Using various sources, a system may mine the stored data to give the current developer information related to past code development, and reveal why the code changed throughout previous development. Using sophisticated analyses to identify similar code patterns across multiple large software projects, discovering patterns in normal and abnormal uses of particular software interfaces, and employing other mining techniques, a developer may find domain-specific information to facilitate ongoing software development.Type: ApplicationFiled: June 26, 2008Publication date: December 31, 2009Applicant: MICROSOFT CORPORATIONInventors: Joseph M. Joy, Gopal R. Srinivasa, Kanika Nema, Sriram Rajamani, Krishna Kumar Mehra, Vipindeep Vangala
-
Publication number: 20060248515Abstract: Described techniques and tools help model checking scale to large programs while reducing missed errors. In particular, described techniques and tools help reduce the state space of concurrent programs without depending on cycle detection and without scheduling execution of postponed threads at all cycles. For example, described techniques and tools use a type of partial-order reduction called transaction-based reduction to reduce program state space. Analysis is performed at commit points to determine whether to schedule delayed threads.Type: ApplicationFiled: April 29, 2005Publication date: November 2, 2006Applicant: Microsoft CorporationInventors: Shaz Qadeer, Sriram Rajamani, Vladimir Levin, Robert Palmer
-
Publication number: 20060247907Abstract: Described techniques and tools facilitate model checking for program models that effectively model pointer behavior while avoiding complexity in the model itself, thereby allowing rigorous and accurate testing of the model. A model checking algorithm for deciding assertions in programs with references terminates and yields precise results even on programs that allocate an unbounded amount of memory.Type: ApplicationFiled: April 29, 2005Publication date: November 2, 2006Applicant: Microsoft CorporationInventors: Shaz Qadeer, Sriram Rajamani
-
Publication number: 20050257098Abstract: Methods and systems are provided for automatically generating an accurate model of communications processes between disparate computing systems that may be analyzed in an efficient manner for error detection in web services systems. Business Process Execution Language for Web Services (BPEL) descriptions are automatically generated for the BPEL-based executable processes utilized by each communicating computing system in a given web services system. The BPEL abstract process descriptions for each communicating computing system are translated into a combined process model according to a suitable modeling language. The process model is tested by a model checking software application. Communications errors between the disparate computing systems are detected by automatically testing the combined process model according to a variety of potential communications scenarios.Type: ApplicationFiled: April 30, 2004Publication date: November 17, 2005Applicant: Microsoft CorporationInventors: Anthony Andrews, Sriram Rajamani, Jakob Rehob
-
Publication number: 20050235257Abstract: Described is a method that enables the automatic generation of a boolean program that is a predicate abstraction of a program written using a general programming language. The method is capable of abstracting code statements within the program that include procedure calls, assignments, goto statements, conditionals, and pointers. In accordance with the invention, predicates of interest are identified for each code statement in the program. For each particular code statement, the process generates predicate statements that describe an effect that the statement has on the predicates of interest. If the effect of a particular code statement is indeterminable, non-deterministic predicate statements are included in the boolean program to model the indeterminable nature of the code statement. In addition, if a particular code statement includes a procedure call, the arguments and return value of the procedure call are translated to associated predicates in the calling context.Type: ApplicationFiled: June 17, 2005Publication date: October 20, 2005Applicant: Microsoft CorporationInventors: Thomas Ball, Sriram Rajamani, Todd Millstein, Rupak Majumdar
-
Publication number: 20050149904Abstract: Methods are discussed that enhance program analysis. One aspect of the invention includes a method for checking a model of a program. The method includes a control-flow graph having vertices from the model, applying a transfer function to each vertex to form a set of path edges, and analyzing the set of path edges of a vertex. The set of path edges includes valuations that are implicitly represented so as to inhibit an undesired explosion in the valuations that would hinder the act of analyzing.Type: ApplicationFiled: November 1, 2004Publication date: July 7, 2005Applicant: Microsoft CorporationInventors: Thomas Ball, Sriram Rajamani
-
Publication number: 20050086648Abstract: The state space of modeled software can be explored using an object-based systematic state explorer. The object-based model can perform well even in light of the complexities of concurrent software. During state space exploration, differences between states can be stored instead of storing a complete copy of the state.Type: ApplicationFiled: February 13, 2004Publication date: April 21, 2005Inventors: Anthony Andrews, Shaz Qadeer, Niels Rehof, Sriram Rajamani, Yichen Xie