Patents by Inventor Rick Molloy
Rick Molloy 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: 9720729Abstract: A runtime environment allows a scheduler in a process of a computer system to be finalized prior to the process completing. The runtime environment causes execution contexts that are inducted into the scheduler and execution contexts created by the scheduler to be tracked. The runtime environment finalizes the scheduler subsequent to each inducted execution context exiting the scheduler and each created execution context being retired by the scheduler.Type: GrantFiled: June 2, 2008Date of Patent: August 1, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Paul Ringseth, Genevieve Fernandes, Rick Molloy, Rahul Patil
-
Patent number: 8887162Abstract: Local storage may be allocated for each processing resource in a process of a computer system. Each processing resource may be virtualized and may have a one-to-one or a many-to-one correspondence with with physical processors. The contents of each local storage persist across various execution contexts that are executed by a corresponding processing resource. Each local storage may be accessed without synchronization (e.g., locks) by each execution context that is executed on a corresponding processing resource. The local storages provide the ability to segment data and store and access the data without synchronization. The local storages may be used to implement lock-free techniques such as a generalized reduction where a set of values is combined through an associative operator.Type: GrantFiled: December 17, 2008Date of Patent: November 11, 2014Assignee: Microsoft CorporationInventors: Paul F. Ringseth, Rick Molloy, Niklas Gustafsson, David Callahan
-
Patent number: 8839214Abstract: 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: GrantFiled: June 30, 2010Date of Patent: September 16, 2014Assignee: Microsoft CorporationInventors: Paul F. Ringseth, Weirong Zhu, Rick Molloy, Charles D. Callahan, II, Yosseff Levanoni, Lingli Zhang
-
Patent number: 8650570Abstract: A runtime environment of a computer system is provided that creates first and second scheduler instances in a process. Each scheduler instance includes allocated processing resources and is assigned a set of tasks for execution. Each scheduler instance schedules tasks for execution using the allocated processing resources to perform the work of the process.Type: GrantFiled: June 2, 2008Date of Patent: February 11, 2014Assignee: Microsoft CorporationInventors: Paul Ringseth, Genevieve Fernandes, Niklas Gustafsson, Rick Molloy, Rahul Patil, Philip Lucido
-
Patent number: 8561072Abstract: 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: GrantFiled: May 16, 2008Date of Patent: October 15, 2013Assignee: Microsoft CorporationInventors: Paul F. Ringseth, Genevieve Fernandes, Niklas Gustafsson, Rick Molloy
-
Publication number: 20120005662Abstract: 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: ApplicationFiled: June 30, 2010Publication date: January 5, 2012Applicant: MICROSOFT CORPORATIONInventors: Paul F. Ringseth, Weirong Zhu, Rick Molloy, Charles D. Callahan, II, Yosseff Levanoni, Lingli Zhang
-
Publication number: 20100153967Abstract: Local storage may be allocated for each processing resource in a process of a computer system. Each processing resource may be virtualized and may have a one-to-one or a many-to-one correspondence with with physical processors. The contents of each local storage persist across various execution contexts that are executed by a corresponding processing resource. Each local storage may be accessed without synchronization (e.g., locks) by each execution context that is executed on a corresponding processing resource. The local storages provide the ability to segment data and store and access the data without synchronization. The local storages may be used to implement lock-free techniques such as a generalized reduction where a set of values is combined through an associative operator.Type: ApplicationFiled: December 17, 2008Publication date: June 17, 2010Applicant: Microsoft CorporationInventors: Paul F. Ringseth, Rick Molloy, Niklas Gustafsson, David Callahan
-
Patent number: 7673148Abstract: An application for updating, distributing, and rendering an application feature set and application versions is disclosed. The application component allows multiple versions of similar applications to be installed and upgraded on the same computer. Meanwhile, allowing new product levels downloads to transform an existing product into a different product.Type: GrantFiled: October 15, 2004Date of Patent: March 2, 2010Assignee: Microsoft CorporationInventors: Song Zou, Rick Molloy, Robert Hernon, Jared Reisinger
-
Publication number: 20090300637Abstract: A runtime environment of a computer system is provided that creates first and second scheduler instances in a process. Each scheduler instance includes allocated processing resources and is assigned a set of tasks for execution. Each scheduler instance schedules tasks for execution using the allocated processing resources to perform the work of the process.Type: ApplicationFiled: June 2, 2008Publication date: December 3, 2009Applicant: MICROSOFT CORPORATIONInventors: Paul Ringseth, Genevieve Fernandes, Niklas Gustafsson, Rick Molloy, Rahul Patil, Phillp Lucido
-
Publication number: 20090300627Abstract: A runtime environment allows a scheduler in a process of a computer system to be finalized prior to the process completing. The runtime environment causes execution contexts that are inducted into the scheduler and execution contexts created by the scheduler to be tracked. The runtime environment finalizes the scheduler subsequent to each inducted execution context exiting the scheduler and each created execution context being retired by the scheduler.Type: ApplicationFiled: June 2, 2008Publication date: December 3, 2009Applicant: MICROSOFT CORPORATIONInventors: Paul Ringseth, Genevieve Fernandes, Rick Molloy, Rahul Patil
-
Publication number: 20090288087Abstract: 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: ApplicationFiled: May 16, 2008Publication date: November 19, 2009Applicant: MICROSOFT CORPORATIONInventors: Paul F. Ringseth, Genevieve Fernandes, Niklas Gustafsson, Rick Molloy
-
Patent number: 7493311Abstract: An information server may function as a centralized query broker that accepts queries from query clients, dispatches queries to potentially disparate data sources, and returns query results to query clients. An information server may centralize information access and security/control operations and may provide a set of uniform interfaces for accessing various types of data sources. A pluggable data source interface may be used for extending the data and actions that are available to an information server. The queries that arrive at the data sources are typically simple queries, which contain no sub-query addressing to a different data source. To make a data source pluggable, a data source may expose a standard interface and may store information about the data source's existence so that an information server will be able to determine, from the stored information, which data sources are available for responding to queries in the information server system.Type: GrantFiled: June 30, 2003Date of Patent: February 17, 2009Assignee: Microsoft CorporationInventors: Paul L. Cutsinger, Zhong Chen, Robert S. Wigton, Rick Molloy, John R. Bartlow, Lei Tan, Derek R. Westcott
-
Publication number: 20050273452Abstract: Database records having n fields are analogized to points in n-dimensional space. “Distances” between records are calculated and used to assess the likelihood that those records pertain to the same instance of an item or event of interest. A distance between two records can be based on the distances between corresponding fields of those two records. For certain types of data, a distance between two fields may be a simple difference between the magnitudes of the two field values. For other types of data, the distance may be determined in other ways. Weights may be assigned to the field distances prior to determining record distances.Type: ApplicationFiled: June 4, 2004Publication date: December 8, 2005Applicant: Microsoft CorporationInventors: Rick Molloy, Keith Kelly