Patents by Inventor Michael L. Chu

Michael L. Chu 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).

  • Publication number: 20170192762
    Abstract: An execution environment in a computer system supports a declarative programming model where user code is written with a query syntax in a native programming language to express inherent parallelism in terms of data flow. The execution environment translates queries in the user code into a runtime agnostic representation and dynamically selects an execution runtime for executing the runtime agnostic representation.
    Type: Application
    Filed: March 21, 2017
    Publication date: July 6, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Michael L. Chu
  • Publication number: 20170192761
    Abstract: An execution environment in a computer system provides dynamic data and compute resources elasticity for user code to improve execution efficiency. The execution environment translates the user code into a runtime agnostic representation with a set of tasks. For each task, the execution environment determines a level of concurrency for executing the task based on the size of the set of input data for the task, the amount of compute resources available at the time of invocation of the task, and any context-sensitive heuristics provided by the user code.
    Type: Application
    Filed: March 21, 2017
    Publication date: July 6, 2017
    Applicant: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Michael L. Chu
  • Patent number: 9658890
    Abstract: An execution environment in a computer system allows user code to be executed using multiple execution runtimes. The execution environment translates the user code into a runtime agnostic representation, selects an execution runtime for executing the runtime agnostic representation, and invokes a scheduler for the selected execution runtime. The scheduler dispatches tasks from the runtime agnostic representation for execution by the computer system using concurrency mechanisms in the selected execution runtime.
    Type: Grant
    Filed: October 8, 2010
    Date of Patent: May 23, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Michael L. Chu
  • Patent number: 9600250
    Abstract: An execution environment in a computer system supports a declarative programming model where user code is written with a query syntax in a native programming language to express inherent parallelism in terms of data flow. The execution environment translates queries in the user code into a runtime agnostic representation and dynamically selects an execution runtime for executing the runtime agnostic representation.
    Type: Grant
    Filed: October 8, 2010
    Date of Patent: March 21, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Michael L. Chu
  • Patent number: 9600255
    Abstract: An execution environment in a computer system provides dynamic data and compute resources elasticity for user code to improve execution efficiency. The execution environment translates the user code into a runtime agnostic representation with a set of tasks. For each task, the execution environment determines a level of concurrency for executing the task based on the size of the set of input data for the task, the amount of compute resources available at the time of invocation of the task, and any context-sensitive heuristics provided by the user code.
    Type: Grant
    Filed: October 8, 2010
    Date of Patent: March 21, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Krishnan Varadarajan, Michael L. Chu
  • Patent number: 9582402
    Abstract: The described embodiments include a networking subsystem in a second computing device that is configured to receive a task message from a first computing device. Based on the task message, the networking subsystem updates an entry in a task queue with task information from the task message. A processing subsystem in the second computing device subsequently retrieves the task information from the task queue and performs the corresponding task. In these embodiments, the networking subsystem processes the task message (e.g., stores the task information in the task queue) without causing the processing subsystem to perform operations for processing the task message.
    Type: Grant
    Filed: January 26, 2014
    Date of Patent: February 28, 2017
    Assignee: ADVANCED MICRO DEVICES, INC.
    Inventors: Steven K. Reinhardt, Michael L. Chu, Vinod Tipparaju, Walter B. Benton
  • Patent number: 9384063
    Abstract: A concurrent data structure allows synchronization to be elided for read accesses. Processing resources that remove one or more elements of the concurrent data structure are allowed to delete the elements only after all other processing resources have reached a safe point. Each processing resource maintains an indicator that indicates whether the processing resource has reached as safe point (i.e., will not access the concurrent data structure). When the indicators indicate that all processing resources have reached a safe point, elements of the data structure may be deleted.
    Type: Grant
    Filed: June 18, 2009
    Date of Patent: July 5, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Paul Ringseth, Michael L. Chu, William R. Messmer, Marko Radmilac, Genevieve Fernandes
  • Publication number: 20140331230
    Abstract: The described embodiments include a networking subsystem in a second computing device that is configured to receive a task message from a first computing device. Based on the task message, the networking subsystem updates an entry in a task queue with task information from the task message. A processing subsystem in the second computing device subsequently retrieves the task information from the task queue and performs the corresponding task. In these embodiments, the networking subsystem processes the task message (e.g., stores the task information in the task queue) without causing the processing subsystem to perform operations for processing the task message.
    Type: Application
    Filed: January 26, 2014
    Publication date: November 6, 2014
    Applicant: Advanced Micro Devices, Inc.
    Inventors: Steven K. Reinhardt, Michael L. Chu, Vinod Tipparaju, Walter B. Benton
  • Patent number: 8799378
    Abstract: Processing messages in dataflow networks. The method includes, at a first entity, receiving from a second entity a first offer of a first message to process. The method further includes determining to not process the first message. As a result of determining to not process the first message, such an indication is made to the second entity. Further as a result of determining to not process the first message, an indication is stored that the second entity offered a message. The indication includes an indicator correlated to the second entity. Subsequent to indicating to the second entity, using the indication the method includes indicating to the second entity availability to process a message.
    Type: Grant
    Filed: December 17, 2010
    Date of Patent: August 5, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael L. Chu, Daniela Cristina Manu, Stephen H. Toub
  • Publication number: 20120158840
    Abstract: Processing messages in dataflow networks. The method includes, at a first entity, receiving from a second entity a first offer of a first message to process. The method further includes determining to not process the first message. As a result of determining to not process the first message, such an indication is made to the second entity. Further as a result of determining to not process the first message, an indication is stored that the second entity offered a message. The indication includes an indicator correlated to the second entity. Subsequent to indicating to the second entity, using the indication the method includes indicating to the second entity availability to process a message.
    Type: Application
    Filed: December 17, 2010
    Publication date: June 21, 2012
    Applicant: Microsoft Corporation
    Inventors: Michael L. Chu, Daniela Cristina Manu, Stephen H. Toub
  • Publication number: 20120137277
    Abstract: Functionality is described for providing a compiled program that can be executed in a parallel and a distributed manner by any selected runtime environment. The functionality includes a compiler module for producing the compiled program based on a dataflow representation of a program (i.e., a dataflow-expressed program). The dataflow-expressed program, in turn, includes a plurality of tasks that are connected together in a manner specified by a graph (such as a directed acyclic graph). The compiler module also involves performing static type-checking on the dataflow-expressed program to identify the presence of any mismatch errors in the dataflow-expressed program. By virtue of this approach, the above-described functionality can identify any errors in constructing the graph prior to its instantiation and execution in a runtime environment.
    Type: Application
    Filed: November 29, 2010
    Publication date: May 31, 2012
    Applicant: Microsoft Corporation
    Inventors: Krishnan Varadarajan, Michael L. Chu
  • Publication number: 20120089969
    Abstract: An execution environment in a computer system supports a declarative programming model where user code is written with a query syntax in a native programming language to express inherent parallelism in terms of data flow. The execution environment translates queries in the user code into a runtime agnostic representation and dynamically selects an execution runtime for executing the runtime agnostic representation.
    Type: Application
    Filed: October 8, 2010
    Publication date: April 12, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Krishnan Varadarajan, Michael L. Chu
  • Publication number: 20120089968
    Abstract: An execution environment in a computer system allows user code to be executed using multiple execution runtimes. The execution environment translates the user code into a runtime agnostic representation, selects an execution runtime for executing the runtime agnostic representation, and invokes a scheduler for the selected execution runtime. The scheduler dispatches tasks from the runtime agnostic representation for execution by the computer system using concurrency mechanisms in the selected execution runtime.
    Type: Application
    Filed: October 8, 2010
    Publication date: April 12, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Krishnan Varadarajan, Michael L. Chu
  • Publication number: 20120089967
    Abstract: An execution environment in a computer system provides dynamic data and compute resources elasticity for user code to improve execution efficiency. The execution environment translates the user code into a runtime agnostic representation with a set of tasks. For each task, the execution environment determines a level of concurrency for executing the task based on the size of the set of input data for the task, the amount of compute resources available at the time of invocation of the task, and any context-sensitive heuristics provided by the user code.
    Type: Application
    Filed: October 8, 2010
    Publication date: April 12, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Krishnan Varadarajan, Michael L. Chu
  • Publication number: 20100325098
    Abstract: A concurrent data structure allows synchronization to be elided for read accesses. Processing resources that remove one or more elements of the concurrent data structure are allowed to delete the elements only after all other processing resources have reached a safe point. Each processing resource maintains an indicator that indicates whether the processing resource has reached as safe point (i.e., will not access the concurrent data structure). When the indicators indicate that all processing resources have reached a safe point, elements of the data structure may be deleted.
    Type: Application
    Filed: June 18, 2009
    Publication date: December 23, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Paul Ringseth, Michael L. Chu, William R. Messmer, Marko Radmilac, Genevieve Fernandes