Patents by Inventor Paul F. Ringseth

Paul F. Ringseth 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: 8606843
    Abstract: An XLANG/s compiler detects convoy scenarios during compilation and generates runtime directives to correctly correlate incoming messages with business process instances. A convoy scenario, present in event driven processes, is defined by a correlation set initialized during a receive operation which is provided to a subsequent receive operation. The compiler detects those convoy scenarios by analyzing the control and dataflow of a XLANG/s program. Three convoy patterns are distinguished: (1) activation convoys, (2) uniform sequential convoys, and (3) non-uniform sequential convoys. XLANG/s allows declarative descriptions of convoy scenarios without requiring an understanding of the low-level details supporting their correct execution. Convoy scenarios are processed by statically analyzing a written workflow application to deduce the nature and type of convoy scenarios used by the application. Information is extracted at compile time to support the runtime infrastructure.
    Type: Grant
    Filed: March 25, 2008
    Date of Patent: December 10, 2013
    Assignee: Microsoft Corporation
    Inventors: Bimal Mehta, Johannes Klein, Lee Graber, Paul Maybee, Sriram Balasubramanian, Sanjib Saha, Satish R. Thatte, Paul F. Ringseth
  • Patent number: 8589867
    Abstract: Described herein are techniques for generating invocation stubs for a data parallel programming model so that a data parallel program written in a statically-compiled high-level programming language may be more declarative, reusable, and portable than traditional approaches. With some of the described techniques, invocation stubs are generated by a compiler and those stubs bridge a logical arrangement of data parallel computations to the actual physical arrangement of a target data parallel hardware for that data parallel computation.
    Type: Grant
    Filed: June 18, 2010
    Date of Patent: November 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Lingli Zhang, Weirong Zhu, Yosseff Levanoni, Paul F. Ringseth, Charles David Callahan, II
  • Patent number: 8566830
    Abstract: A scheduler in a process of a computer system includes a local collection of tasks for each processing resource allocated to the scheduler and at least one general collection of tasks. The scheduler assigns each task that becomes unblocked to the local collection corresponding to the processing resource that caused the task to become unblocked. When a processing resource becomes available, the processing resource attempts to execute the most recently added task in the corresponding local collection. If there are no tasks in the corresponding local collection, the available processing resource attempts to execute a task from the general collection.
    Type: Grant
    Filed: May 16, 2008
    Date of Patent: October 22, 2013
    Assignee: Microsoft Corporation
    Inventors: Paul F. Ringseth, Niklas Gustafsson, Genevieve Fernandes
  • Patent number: 8561072
    Abstract: A scheduler in a process of a computer system includes a respective scheduling collection for each scheduling node in the scheduler. The scheduling collections are mapped into at least a partial search order based on one or more execution metrics. When a processing resource in a scheduling node becomes available, the processing resource first attempts to locate a task to execute in a scheduling collection corresponding to the scheduling node before searching other scheduling collections in an order specified by the search order.
    Type: Grant
    Filed: May 16, 2008
    Date of Patent: October 15, 2013
    Assignee: Microsoft Corporation
    Inventors: Paul F. Ringseth, Genevieve Fernandes, Niklas Gustafsson, Rick Molloy
  • Patent number: 8402450
    Abstract: A high level programming language provides a map transformation that takes a data parallel algorithm and a set of one or more input indexable types as arguments. The map transformation applies the data parallel algorithm to the set of input indexable types to generate an output indexable type, and returns the output indexable type. The map transformation may be used to fuse one or more data parallel algorithms with another data parallel algorithm.
    Type: Grant
    Filed: November 17, 2010
    Date of Patent: March 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Paul F. Ringseth, Yosseff Levanoni, Weirong Zhu
  • Publication number: 20130014094
    Abstract: Creating and executing a distributed stream processing operator graph based on a query. The operator graph includes movable stream algebra operators for processing events received from high volume data streams. The operators are partially compiled and distributed to computing devices for completion of the compilation and subsequent execution. During execution, the operators maintain minimal state information associated with received events via an expiration time assigned to each of the event instances. Additional events are generated and aggregated by the operators for communication to a service responsible for the query.
    Type: Application
    Filed: September 13, 2012
    Publication date: January 10, 2013
    Applicant: Microsoft Corporation
    Inventors: Gueorgui B. Chkodrov, Paul F. Ringseth, Tihomir T. Tarnavski, Andy Shen, Roger Shane Barga, Jonathan Goldstein
  • Patent number: 8296331
    Abstract: Creating and executing a distributed stream processing operator graph based on a query. The operator graph includes movable stream algebra operators for processing events received from high volume data streams. The operators are partially compiled and distributed to computing devices for completion of the compilation and subsequent execution. During execution, the operators maintain minimal state information associated with received events via an expiration time assigned to each of the event instances. Additional events are generated and aggregated by the operators for communication to a service responsible for the query.
    Type: Grant
    Filed: January 26, 2010
    Date of Patent: October 23, 2012
    Assignee: Microsoft Corporation
    Inventors: Gueorgui B. Chkodrov, Paul F. Ringseth, Tihomir T. Tarnavski, Andy Shen, Roger Shane Barga, Jonathan Goldstein
  • Patent number: 8276147
    Abstract: Shutting down a computer work scheduler. The work scheduler includes a number of virtual processors, each of which is either active or inactive. An active processor executes work, searches for work, or is idle. An inactive has no context running atop it. The method includes determining that all processors controlled by the scheduler are idle. As a result of determining that all controlled by the scheduler are idle, the method proceeds to a first phase of a shutdown operation, which when successful, includes: performing a sweep of all collections searching for any work in the scheduler and determining that no work is found in the scheduler. As a result of determining that no work is found in the scheduler, the method proceeds to a second phase of a shutdown operation, which when successful includes messaging all contexts in the scheduler and telling them to exit.
    Type: Grant
    Filed: October 16, 2009
    Date of Patent: September 25, 2012
    Assignee: Microsoft Corporation
    Inventors: William Robert Messmer, Paul F. Ringseth, Genevieve Fernandes
  • Publication number: 20120166771
    Abstract: A high level programming language provides an agile communication operator that generates a segmented computational space based on a resource map for distributing the computational space across compute nodes. The agile communication operator decomposes the computational space into segments, causes the segments to be assigned to compute nodes, and allows the user to centrally manage and automate movement of the segments between the compute nodes. The segment movement may be managed using either a full global-view representation or a local-global-view representation of the segments.
    Type: Application
    Filed: December 22, 2010
    Publication date: June 28, 2012
    Applicant: MICROSOFT CORPORATION
    Inventor: Paul F. Ringseth
  • Publication number: 20120166444
    Abstract: A high level programming language provides a co-map communication operator that maps an input indexable type to an output indexable type according to a function. The function maps an index space corresponding to the output indexable type to an index space corresponding to the input indexable type. By doing so, the co-map communication operator lifts a function on an index space to a function on an indexable type to allow composability with other communication operators.
    Type: Application
    Filed: December 23, 2010
    Publication date: June 28, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Paul F. Ringseth, Yosseff Levanoni, Lingli Zhang, Weirong Zhu, Donald J. McCrady
  • Publication number: 20120166772
    Abstract: A high level programming language provides extensible data parallel semantics. User code specifies hardware and software resources for executing data parallel code using a compute device object and a resource view object. The user code uses the objects and semantic metadata to allow execution by new and/or updated types of compute nodes and new and/or updated types of runtime libraries. The extensible data parallel semantics allow the user code to be executed by the new and/or updated types of compute nodes and runtime libraries.
    Type: Application
    Filed: December 23, 2010
    Publication date: June 28, 2012
    Applicant: MICROSOFT CORPORATION
    Inventor: Paul F. Ringseth
  • Publication number: 20120151459
    Abstract: A high level programming language provides a nested communication operator that partitions a computational space. An indexable type with a rank and element type defines the computational space. The nested communication operator partitions a specified dimension of an index indexable type into segments specified by a segmentation vector and returns an output indexable type that represents the segments. By doing so, the nested communication operator allows data parallel algorithms to operate on the segments as individual units.
    Type: Application
    Filed: December 9, 2010
    Publication date: June 14, 2012
    Applicant: MICROSOFT CORPORATION
    Inventor: Paul F. Ringseth
  • Patent number: 8196122
    Abstract: A XLANG/s compilation method is provided that uses data flow analysis of a program's flow graph to determine lifetimes of a data object. A flowgraph is created according to abstract computer instructions. A depth-first order is assigned to basic blocks and a dominance relationship between the basic blocks is determined. A determination is made as to whether any loops are present within the flowgraph and, if so, the loops are identified. A creation point, destruction point and lock point for the data object is determined. Instructions are inserted into the computer code to create the at least one data object at the creation point, to destroy the data object at the destruction point and to lock the data object at the lock point.
    Type: Grant
    Filed: February 16, 2007
    Date of Patent: June 5, 2012
    Assignee: Microsoft Corporation
    Inventors: Donald James McCrady, Paul F. Ringseth, Bimal Mehta
  • Publication number: 20120131552
    Abstract: A high level programming language provides a read-only communication operator that prevents a computational space from being written. An indexable type with a rank and element type defines the computational space. For an input indexable type, the read-only communication operator produces an output indexable type with the same rank and element type as the input indexable type but ensures that the output indexable type may not be written. The read-only communication operator ensures that any attempt to write to the output indexable type will be detected as an error at compile time.
    Type: Application
    Filed: November 19, 2010
    Publication date: May 24, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Yosseff Levanoni, Paul F. Ringseth, Weirong Zhu, Lingli Zhang
  • Publication number: 20120124564
    Abstract: A high level programming language provides a map transformation that takes a data parallel algorithm and a set of one or more input indexable types as arguments. The map transformation applies the data parallel algorithm to the set of input indexable types to generate an output indexable type, and returns the output indexable type. The map transformation may be used to fuse one or more data parallel algorithms with another data parallel algorithm.
    Type: Application
    Filed: November 17, 2010
    Publication date: May 17, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Paul F. Ringseth, Yosseff Levanoni, Weirong Zhu
  • Publication number: 20120089961
    Abstract: A high level programming language provides a tile communication operator that decomposes a computational space into sub-spaces (i.e., tiles) that may be mapped to execution structures (e.g., thread groups) of data parallel compute nodes. An indexable type with a rank and element type defines the computational space. For an input indexable type, the tile communication operator produces an output indexable type with the same rank as the input indexable type and an element type that is a tile of the input indexable type. The output indexable type provides a local view structure of the computational space that enables coalescing of global memory accesses in a data parallel compute node.
    Type: Application
    Filed: October 12, 2010
    Publication date: April 12, 2012
    Applicant: MICROSOFT CORPORATION
    Inventor: Paul F. Ringseth
  • Publication number: 20120005662
    Abstract: A high level programming language provides an extensible set of transformations for use on indexable types in a data parallel processing environment. A compiler for the language implements each transformation as a map from indexable types to allow each transformation to be applied to other transformations. At compile time, the compiler identifies sequences of the transformations on each indexable type in data parallel source code and generates data parallel executable code to implement the sequences as a combined operation at runtime using the transformation maps. The compiler also incorporates optimizations that are based on the sequences of transformations into the data parallel executable code.
    Type: Application
    Filed: June 30, 2010
    Publication date: January 5, 2012
    Applicant: MICROSOFT CORPORATION
    Inventors: Paul F. Ringseth, Weirong Zhu, Rick Molloy, Charles D. Callahan, II, Yosseff Levanoni, Lingli Zhang
  • Publication number: 20110314444
    Abstract: Described herein are techniques for generating invocation stubs for a data parallel programming model so that a data parallel program written in a statically-compiled high-level programming language may be more declarative, reusable, and portable than traditional approaches. With some of the described techniques, invocation stubs are generated by a compiler and those stubs bridge a logical arrangement of data parallel computations to the actual physical arrangement of a target data parallel hardware for that data parallel computation.
    Type: Application
    Filed: June 18, 2010
    Publication date: December 22, 2011
    Applicant: Microsoft Corporation
    Inventors: Lingli Zhang, Weirong Zhu, Yosseff Levanoni, Paul F. Ringseth, Charles David Callahan, II
  • Publication number: 20110314256
    Abstract: Described herein are techniques for enabling a programmer to express a call for a data parallel call-site function in a way that is accessible and usable to the typical programmer. With some of the described techniques, an executable program is generated based upon expressions of those data parallel tasks. During execution of the executable program, data is exchanged between non-data parallel (non-DP) capable hardware and DP capable hardware for the invocation of data parallel functions.
    Type: Application
    Filed: June 18, 2010
    Publication date: December 22, 2011
    Applicant: Microsoft Corporation
    Inventors: Charles David Callahan, II, Paul F. Ringseth, Yosseff Levanoni, Weirong Zhu, Lingli Zhang
  • Patent number: 7971195
    Abstract: Instructions in an asynchronous transactional messaging language are transformed into instructions that are compatible with the web services. In one embodiment, the asynchronous transactional messaging language is XLANG/s, and the web service languages are the web services description language (WSDL) and the simple object access protocol (SOAP). A programmer simply writes high level declarative statements that pertain to the specific type of business transaction. During compilation, selected instructions are transformed into instructions that are compatible with web services. This transformation is transparent to the designer of the business application. The asynchronous transactional messaging language source files are compiled in an iterative compilation process. During each pass of this compilation process, different variables are parsed. The parsed results are logically organized in a tree structure. The tree structure is traversed in depth first traversal order.
    Type: Grant
    Filed: February 2, 2007
    Date of Patent: June 28, 2011
    Assignee: Microsoft Corporation
    Inventors: Paul F. Ringseth, Donald James McCrady