Patents by Inventor Michael A. Isard
Michael A. Isard 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: 20120117551Abstract: Source code is generated that includes one or more iterator-based expressions such as declarative queries. The source code is translated into an intermediate language that classifies operators making up the iterator-based expressions into classes based on whether the operators are aggregating, element-wise, or sink operators. The intermediate language, including the identified classes, is processed using an automaton to replace the iterator-based expressions with one or more equivalent non-iterator-based expressions. Where an iterator-based expression is nested, the nested expression is processed using an equivalent number of nested automatons. The resulting optimized source code may be compiled and executed using fewer virtual function calls than the equivalent non-optimized source code.Type: ApplicationFiled: November 10, 2010Publication date: May 10, 2012Applicant: Microsoft CorporationInventors: Michael Isard, Yuan Yu, Derek Gordon Murray
-
Publication number: 20110246439Abstract: A query is annotated with a small sketch (e.g. a Bloom filter) that approximates a set of interest that is related to the query. The query and sketch may be forwarded to index servers that each stores a portion of a search engine corpus. Each of the index servers may filter documents using the sketch before returning results for aggregation. The sketch is designed so there may be false positives (results returned by authors not in the set), but no false negatives (all relevant results are returned). The final aggregated results set may be checked against the full set to remove false positives before returning the final results to the user.Type: ApplicationFiled: April 6, 2010Publication date: October 6, 2011Applicant: Microsoft CorporationInventors: Michael A. Isard, Marc A. Najork, Sean A. Suchter, Eric R. Scheel
-
Publication number: 20110235908Abstract: Images in a database or collection of images are each divided into multiple partitions with each partition corresponding to an area of an image. The partitions in an image may overlap with each other. Min-hash sketches are generated for each of the partitions and stored with the images. A user may submit an image and request that an image that is a partial match for the submitted image be located in the image collection. The submitted image is similarly divided into partitions and min-hash sketches are generated from the partitions. The min-hash sketches are compared with the stored min-hash sketches for matches, and images having partitions whose sketches are matches are returned as partial matching images.Type: ApplicationFiled: March 23, 2010Publication date: September 29, 2011Applicant: Microsoft CorporationInventors: Qifa Ke, Michael A. Isard, David Changsoo Lee
-
Patent number: 7987365Abstract: A subscription-based computing device has hardware and a subscription enforcer implemented in the hardware. The enforcer has an accumulator that accumulates a usage value as the computing device is being used and an expiration value register that stores an expiration value. The enforcer allows the computing device to operate in a subscription mode without hindrance and with full use when the usage value is less than the stored expiration value, and allows the computing device to operate in an expiration mode with hindrance and without full use when the usage value reaches the stored expiration value to signal that the subscription for the computing device has expired.Type: GrantFiled: March 24, 2006Date of Patent: July 26, 2011Assignee: Microsoft CorporationInventors: Andrew David Birrell, Charles P. Thacker, Michael Isard
-
Publication number: 20110067030Abstract: A job scheduler may schedule concurrent distributed jobs in a computer cluster by assigning tasks from the running jobs to compute nodes while balancing fairness with efficiency. Determining which tasks to assign to the compute nodes may be performed using a network flow graph. The weights on at least some of the edges of the graph encode data locality, and the capacities provide constraints that ensure fairness. A min-cost flow technique may be used to perform an assignment of the tasks represented by the network flow graph. Thus, online task scheduling with locality may be mapped onto a network flow graph, which in turn may be used to determine a scheduling assignment using min-cost flow techniques. The costs may encode data locality, fairness, and starvation-freedom.Type: ApplicationFiled: September 16, 2009Publication date: March 17, 2011Applicant: Microsoft CorporationInventors: Michael Isard, Vijayan Prabhakaran, Jonathan James Currey, Ehud Wieder, Kunal Talwar
-
Patent number: 7908265Abstract: Strong semantics are provided to programs that are correctly synchronized in their use of transactions by using dynamic separation of objects that are accessed in transactions from those accessed outside transactions. At run-time, operations are performed to identify transitions between these protected and unprotected modes of access. Dynamic separation permits a range of hardware-based and software-based implementations which allow non-conflicting transactions to execute and commit in parallel. A run-time checking tool, analogous to a data-race detector, may be provided to test dynamic separation of transacted data and non-transacted data. Dynamic separation may be used in an asynchronous I/O library.Type: GrantFiled: February 19, 2008Date of Patent: March 15, 2011Assignee: Microsoft CorporationInventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Hsieh
-
Publication number: 20100312777Abstract: An efficient manner of performing an M-out-of-N partial matching search of indexed documents (e.g., web pages) is provided herein. More particularly, indexed words are arranged into a global location space (GLS), providing for respective occurrences of words in indexed documents being searched to have continuous locations on a one-dimensional GLS. Documents within the GLS are separated by end of document word marking boundaries between consecutive documents. The query words are then separated into an active set, comprising the left-most query words, and a non-active set. A partial matching operator transverses the GLS, applying active geometric constraints, in a sequential manner, to words in the active set. This causes shifting of the active set along the GLS to comprise M left-most query words. If a document satisfies constraints associated with M words in an active set, the document comprises at least M-out-of-N words.Type: ApplicationFiled: June 5, 2009Publication date: December 9, 2010Applicant: Microsoft CorporationInventors: Qifa Ke, Michael Isard
-
Patent number: 7844959Abstract: A general purpose high-performance distributed execution engine for coarse-grained data-parallel applications is proposed that allows developers to easily create large-scale distributed applications without requiring them to master concurrency techniques beyond being able to draw a graph of the data-dependencies of their algorithms. Based on the graph, a job manager intelligently distributes the work load so that the resources of the execution engine are used efficiently. During runtime, the job manager (or other entity) can automatically modify the graph to improve efficiency. The modifications are based on runtime information, topology of the distributed execution engine, and/or the distributed application represented by the graph.Type: GrantFiled: September 29, 2006Date of Patent: November 30, 2010Assignee: Microsoft CorporationInventor: Michael A. Isard
-
Publication number: 20100241828Abstract: General-purpose distributed data-parallel computing using high-level computing languages is described. Data parallel portions of a sequential program written in a high-level language are automatically translated into a distributed execution plan. Map and reduction computations are automatically added to the plan. Patterns in the sequential program can be automatically identified to trigger map and reduction processing. Direct invocation of map and reduction processing is also provided. One or more portions of the reduce computation are pushed to the map stage and dynamic aggregation is inserted when possible. The system automatically identifies opportunities for partial reductions and aggregation, but also provides a set of extensions in a high-level computing language for the generation and optimization of the distributed execution plan. The extensions include annotations to declare functions suitable for these optimizations.Type: ApplicationFiled: March 18, 2009Publication date: September 23, 2010Applicant: MICROSOFT CORPORATIONInventors: Yuan Yu, Pradeep Kumar Gunda, Michael A. Isard
-
Publication number: 20100241827Abstract: General-purpose distributed data-parallel computing using high-level computing languages is described. Data parallel portions of a sequential program that is written by a developer in a high-level language are automatically translated into a distributed execution plan. A set of extensions to a sequential high-level computing language are provided to support distributed parallel computations and to facilitate generation and optimization of distributed execution plans. The extensions are fully integrated with the programming language, thereby enabling developers to write sequential language programs using known constructs while providing the ability to invoke the extensions to enable better generation and optimization of the execution plan for a distributed computing environment.Type: ApplicationFiled: March 18, 2009Publication date: September 23, 2010Applicant: MICROSOFT CORPORATIONInventors: Yuan Yu, Ulfar Erlingsson, Michael A. Isard, Frank McSherry
-
Publication number: 20100235406Abstract: An image may be received, a portion of which corresponds to a surface of an object, such as a book, a CD, a DVD, a wine bottle, etc. The portion of the image that corresponds to the surface of the object is located. The portion of the image is compared with previously stored images of surfaces of objects to identify the object. A record of the object is created and added to a library. The record of the object may comprise the image of the object, the portion of the image which corresponds to the surface of the object, and/or the received image itself. The record may comprise an indicator of a location of the object.Type: ApplicationFiled: March 16, 2009Publication date: September 16, 2010Applicant: Microsoft CorporationInventors: Oliver M.C. Williams, Michael A. Isard
-
Publication number: 20100205588Abstract: General-purpose distributed data-parallel computing using a high-level language is disclosed. Data parallel portions of a sequential program that is written by a developer in a high-level language are automatically translated into a distributed execution plan. The distributed execution plan is then executed on large compute clusters. Thus, the developer is allowed to write the program using familiar programming constructs in the high level language. Moreover, developers without experience with distributed compute systems are able to take advantage of such systems.Type: ApplicationFiled: February 9, 2009Publication date: August 12, 2010Applicant: MICROSOFT CORPORATIONInventors: Yuan Yu, Dennis Fetterly, Michael Isard, Ulfar Erlingsson, Mihai Budiu
-
Publication number: 20100195914Abstract: Methods are disclosed for finding images from a large corpus of images that at least partially match a query image. The present method makes use of feature detectors to bundle features into local groups or bundles. These bundled features are repeatable and much more discriminative than an individual SIFT feature. Equally importantly, the bundled features provide a flexible representation that allows simple and robust geometric constraints to be efficiently enforced when querying the index.Type: ApplicationFiled: February 2, 2009Publication date: August 5, 2010Inventors: Michael Isard, Qifa Ke, Jian Sun, Zhong Wu
-
Patent number: 7730058Abstract: A probabilistic detector is utilized to query a database. Utilization of a probabilistic detector provides assurance with 100 per cent probability that a search expression in the query is not in the database index. The probabilistic detector is implemented in the form of a Bloom filter. The probabilistic detector is created by hashing expressions in the database index and mapping the resulting hash values into the probabilistic detector. Upon receiving a query, expressions of the query are hashed. The probabilistic detector is queried using these hash values. If the results of querying the probabilistic detector indicate that searched for information may be in the database, the database is not queried. If the results of querying the probabilistic detector indicate that the information may be in the database, the database is queried for the information using the original query. This technique is advantageous in mitigating detrimental effects of denial of service attacks.Type: GrantFiled: October 5, 2005Date of Patent: June 1, 2010Assignee: Microsoft CorporationInventors: Gaurav Sareen, Mark Steven Manasse, Martin Abadi, Michael A. Isard
-
Patent number: 7714858Abstract: The disclosed embodiments relate to a rendering cluster that renders an image of a scene object. The rendering cluster may comprise an illumination node that produces illumination output based on lighting properties of the scene object and a material node that produces material output based on material properties of the scene object. The illumination output is combined with the material output to form the image.Type: GrantFiled: April 18, 2003Date of Patent: May 11, 2010Assignee: Hewlett-Packard Development Company, L.P.Inventors: Michael A. Isard, Alan B. Heirich, Mark A. Shand
-
Patent number: 7680789Abstract: Index entries representing ranges of values are queried with a query value to determine if the query value is in one of the ranges. Numeric ranges are represented in an index and queries are constructed to match index entries. Search terms are constructed from the query value, such that a search term matches an index entry if and only if the queried for valued is in the range represented by the index entry. To facilitate querying the indexes, queries are constructed to contain search terms having a data structure format similar to that of the index entries.Type: GrantFiled: January 18, 2006Date of Patent: March 16, 2010Assignee: Microsoft CorporationInventors: Gaurav Sareen, Michael A. Isard
-
Publication number: 20090210457Abstract: Strong semantics are provided to programs that are correctly synchronized in their use of transactions by using dynamic separation of objects that are accessed in transactions from those accessed outside transactions. At run-time, operations are performed to identify transitions between these protected and unprotected modes of access. Dynamic separation permits a range of hardware-based and software-based implementations which allow non-conflicting transactions to execute and commit in parallel. A run-time checking tool, analogous to a data-race detector, may be provided to test dynamic separation of transacted data and non-transacted data. Dynamic separation may be used in an asynchronous I/O library.Type: ApplicationFiled: February 19, 2008Publication date: August 20, 2009Applicant: MICROSOFT CORPORATIONInventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Hsieh
-
Publication number: 20090204969Abstract: Strong semantics are provided to programs that are correctly synchronized in their use of transactions by using dynamic separation of objects that are accessed in transactions from those accessed outside transactions. At run-time, operations are performed to identify transitions between these protected and unprotected modes of access. Dynamic separation permits a range of hardware-based and software-based implementations which allow non-conflicting transactions to execute and commit in parallel. A run-time checking tool, analogous to a data-race detector, may be provided to test dynamic separation of transacted data and non-transacted data. Dynamic separation may be used in an asynchronous I/O library.Type: ApplicationFiled: February 11, 2008Publication date: August 13, 2009Applicant: MICROSOFT CORPORATIONInventors: Martin Abadi, Andrew D. Birrell, Timothy L. Harris, Michael A. Isard, Johnson Ta-Chung Hsieh
-
Publication number: 20080098375Abstract: A general purpose high-performance distributed execution engine for coarse-grained data-parallel applications is proposed that allows developers to easily create large-scale distributed applications without requiring them to master concurrency techniques beyond being able to draw a graph of the data-dependencies of their algorithms. Based on the graph, a job manager intelligently distributes the work load so that the resources of the execution engine are used efficiently. During runtime, the job manager (or other entity) can automatically modify the graph to improve efficiency. The modifications are based on runtime information, topology of the distributed execution engine, and/or the distributed application represented by the graph.Type: ApplicationFiled: September 29, 2006Publication date: April 24, 2008Applicant: Microsoft CorporationInventor: Michael A. Isard
-
Publication number: 20080082644Abstract: A general purpose high-performance distributed execution engine for coarse-grained data-parallel applications is proposed that allows developers to easily create large-scale distributed applications without requiring them to master concurrency techniques beyond being able to draw a graph of the data-dependencies of their algorithms. Based on the graph, a job manager intelligently distributes the work load so that system resources are used efficiently. The system is designed to scale from a small cluster of a few computers, or the multiple CPU cores on a powerful single computer, up to a data center containing thousands of servers.Type: ApplicationFiled: September 29, 2006Publication date: April 3, 2008Applicant: Microsoft CorporationInventors: Michael A. Isard, Andrew D. Birrell, Mihai-Dan Budiu, Yuan Yu, Dennis C. Fetterly