Patents by Inventor Stephen Toub
Stephen Toub 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: 9043749Abstract: A cancelation registry provides a cancelation interface whose implementation registers cancelable items such as synchronous operations, asynchronous operations, type instances, and transactions. Items may be implicitly or explicitly registered with the cancelation registry. A consistent cancelation interface unifies cancelation management for heterogeneous items, and allows cancelation of a group of items with a single invocation of a cancel-registered-items procedure.Type: GrantFiled: June 16, 2008Date of Patent: May 26, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Joe Duffy, Stephen Toub, Brian Grunkemeyer, Ramasamy Krishnaswamy
-
Patent number: 9038087Abstract: Methods and systems for statistically eliding fences in a work stealing algorithm are disclosed. A data structure comprising a head pointer, tail pointer, barrier pointer and an advertising flag allows for dynamic load-balancing across processing resources in computer applications.Type: GrantFiled: June 18, 2008Date of Patent: May 19, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Paul F. Ringseth, Bill Messmer, Charles David Callahan, II, Stephen Toub
-
Patent number: 8806426Abstract: A data partitioning interface provides procedure headings to create data partitions for processing data elements in parallel, and for obtaining data elements to process, without specifying the organizational structure of a data partitioning. A data partitioning implementation associated with the data partitioning interface provides operations to implement the interface procedures, and may also provide dynamic partitioning to facilitate load balancing.Type: GrantFiled: June 4, 2008Date of Patent: August 12, 2014Assignee: Microsoft CorporationInventors: Joe Duffy, Igor Ostrovsky, Huseyin Yildiz, Stephen Toub
-
Patent number: 8719803Abstract: A parallelism policy object provides a control parallelism interface whose implementation evaluates parallelism conditions that are left unspecified in the interface. User-defined and other parallelism policy procedures can make recommendations to a worker program for transitioning between sequential program execution and parallel execution. Parallelizing assistance values obtained at runtime can be used in the parallelism conditions on which the recommendations are based. A consistent parallelization policy can be employed across a range of parallel constructs, and inside recursive procedures.Type: GrantFiled: June 4, 2008Date of Patent: May 6, 2014Assignee: Microsoft CorporationInventors: Stephen Toub, Igor Ostrovsky, Joe Duffy, Vance Morrison, Huseyin Yildiz
-
Dynamic partitioning of data by occasionally doubling data chunk size for data-parallel applications
Patent number: 8707320Abstract: Dynamic data partitioning is disclosed for use with a multiple node processing system that consumes items from a data stream of any length and independent of whether the length is undeclared. Dynamic data partitioning takes items from the data stream when a thread is idle and assigns the taken items to an idle thread, and it varies the size of data chunks taken from the stream and assigned to a thread to efficiently distribute work loads among the nodes. In one example, data chunk sizes taken from the beginning of the data stream are relatively smaller than data chunk sizes taken towards the middle or end of the data stream. Dynamic data partitioning employs a growth function where chunks have a size related to single aligned cache lines and efficiently increases the size of the data chunks to occasionally double the amount of data assigned to concurrent threads.Type: GrantFiled: February 25, 2010Date of Patent: April 22, 2014Assignee: Microsoft CorporationInventors: Michael Liddell, Igor Ostrovsky, Stephen Toub -
Patent number: 8359604Abstract: A method of handling an exception in a parallel system includes constructing a task object, executing a method with the task object, and catching an exception with the task object during execution of the method. The exception is propagated in response to the task object becoming inaccessible without the exception having been observed.Type: GrantFiled: January 22, 2009Date of Patent: January 22, 2013Assignee: Microsoft CorporationInventors: John Duffy, Stephen Toub, Huseyin Yildiz, Mike Liddell
-
Patent number: 8356308Abstract: A membership interface provides procedure headings to add and remove elements of a data collection, without specifying the organizational structure of the data collection. A membership implementation associated with the membership interface provides thread-safe operations to implement the interface procedures. A blocking-bounding wrapper on the membership implementation provides blocking and bounding support separately from the thread-safety mechanism.Type: GrantFiled: June 2, 2008Date of Patent: January 15, 2013Assignee: Microsoft CorporationInventors: Stephen Toub, Joe Duffy, Samer El Baghdady, Emad Ali, Igor Ostrovsky
-
Patent number: 8266604Abstract: Transactional memory compatibility type attributes are associated with intermediate language code to specify, for example, that intermediate language code must be run within a transaction, or must not be run within a transaction, or may be run within a transaction. Attributes are automatically produced while generating intermediate language code from annotated source code. Default rules also generate attributes. Tools use attributes to statically or dynamically check for incompatibility between intermediate language code and a transactional memory implementation.Type: GrantFiled: January 26, 2009Date of Patent: September 11, 2012Assignee: Microsoft CorporationInventors: Dana Groff, Yosseff Levanoni, Stephen Toub, Michael McKenzie Magruder, Weirong Zhu, Timothy Lawrence Harris, Christopher William Dern, John Joseph Duffy, David Detlefs, Martin Abadi, Sukhdeep Singh Sodhi, Lingli Zhang, Alexander Dadiomov, Vinod Grover
-
Patent number: 8108868Abstract: Optimizing workflow execution. A method includes identifying a completion condition. The completion condition is specified as part of the overall workflow. The method further includes identifying a number of activities that could be executed to satisfy the completion condition. One or more activities from the number of activities is ordered into an execution plan and assigned system resources based on an analysis of activities in the number of activities and the completion condition.Type: GrantFiled: December 18, 2007Date of Patent: January 31, 2012Assignee: Microsoft CorporationInventors: Stephen Toub, Dharma Shukla
-
Publication number: 20110208872Abstract: Dynamic data partitioning is disclosed for use with a multiple node processing system that consumes items from a data stream of any length and independent of whether the length is undeclared. Dynamic data partitioning takes items from the data stream when a thread is idle and assigns the taken items to an idle thread, and it varies the size of data chunks taken from the stream and assigned to a thread to efficiently distribute work loads among the nodes. In one example, data chunk sizes taken from the beginning of the data stream are relatively smaller than data chunk sizes taken towards the middle or end of the data stream. Dynamic data partitioning employs a growth function where chunks have a size related to single aligned cache lines and efficiently increases the size of the data chunks to occasionally double the amount of data assigned to concurrent threads.Type: ApplicationFiled: February 25, 2010Publication date: August 25, 2011Applicant: MICROSOFT CORPORATIONInventors: Michael Liddell, Igor Ostrovsky, Stephen Toub
-
Publication number: 20100191930Abstract: Transactional memory compatibility type attributes are associated with intermediate language code to specify, for example, that intermediate language code must be run within a transaction, or must not be run within a transaction, or may be run within a transaction. Attributes are automatically produced while generating intermediate language code from annotated source code. Default rules also generate attributes. Tools use attributes to statically or dynamically check for incompatibility between intermediate language code and a transactional memory implementation.Type: ApplicationFiled: January 26, 2009Publication date: July 29, 2010Applicant: MICROSOFT CORPORATIONInventors: Dana Groff, Yosseff Levanoni, Stephen Toub, Michael McKenzie Magruder, Weirong Zhu, Timothy Lawrence Harris, Christopher William Dern, John Joseph Duffy, David Detlefs, Martin Abadi, Sukhdeep Singh Sodhi, Lingli Zhang, Alexander Dadiomov, Vinod Grover
-
Publication number: 20100077384Abstract: A method includes compiling an expression into executable code that is configured to create a data structure that represents the expression. The expression includes a plurality of sub-expressions. The code is executed to create the data structure. The data structure is evaluated using a plurality of concurrent threads, thereby processing the expression in a parallel manner.Type: ApplicationFiled: September 23, 2008Publication date: March 25, 2010Applicant: Microsoft CorporationInventors: Igor Ostrovsky, Stephen Toub, John Duffy, Joseph Hellerstein
-
Publication number: 20090320027Abstract: Methods and systems for statistically eliding fences in a work stealing algorithm are disclosed. A data structure comprising a head pointer, tail pointer, barrier pointer and an advertising flag allows for dynamic load-balancing across processing resources in computer applications.Type: ApplicationFiled: June 18, 2008Publication date: December 24, 2009Applicant: MICROSOFT CORPORATIONInventors: Paul F. Ringseth, Bill Messmer, Charles David Callahan, II, Stephen Toub
-
Publication number: 20090319992Abstract: A data partitioning interface provides procedure headings to create data partitions for processing data elements in parallel, and for obtaining data elements to process, without specifying the organizational structure of a data partitioning. A data partitioning implementation associated with the data partitioning interface provides operations to implement the interface procedures, and may also provide dynamic partitioning to facilitate load balancing.Type: ApplicationFiled: June 4, 2008Publication date: December 24, 2009Applicant: MICROSOFT CORPORATIONInventors: Joe Duffy, Igor Ostrovsky, Huseyin Yildiz, Stephen Toub
-
Publication number: 20090320005Abstract: A parallelism policy object provides a control parallelism interface whose implementation evaluates parallelism conditions that are left unspecified in the interface. User-defined and other parallelism policy procedures can make recommendations to a worker program for transitioning between sequential program execution and parallel execution. Parallelizing assistance values obtained at runtime can be used in the parallelism conditions on which the recommendations are based. A consistent parallelization policy can be employed across a range of parallel constructs, and inside recursive procedures.Type: ApplicationFiled: June 4, 2008Publication date: December 24, 2009Applicant: MICROSOFT CORPORATIONInventors: Stephen Toub, Igor Ostrovsky, Joe Duffy, Vance Morrison, Huseyin Yildiz
-
Publication number: 20090313624Abstract: A cancelation registry provides a cancelation interface whose implementation registers cancelable items such as synchronous operations, asynchronous operations, type instances, and transactions. Items may be implicitly or explicitly registered with the cancelation registry. A consistent cancelation interface unifies cancelation management for heterogeneous items, and allows cancelation of a group of items with a single invocation of a cancel-registered-items procedure.Type: ApplicationFiled: June 16, 2008Publication date: December 17, 2009Applicant: MICROSOFT CORPORATIONInventors: Joe Duffy, Stephen Toub, Brian Grunkemeyer, Ramasamy Krishnaswamy
-
Publication number: 20090300766Abstract: A membership interface provides procedure headings to add and remove elements of a data collection, without specifying the organizational structure of the data collection. A membership implementation associated with the membership interface provides thread-safe operations to implement the interface procedures. A blocking-bounding wrapper on the membership implementation provides blocking and bounding support separately from the thread-safety mechanism.Type: ApplicationFiled: June 2, 2008Publication date: December 3, 2009Applicant: MICROSOFT CORPORATIONInventors: Stephen Toub, Joe Duffy, Samer El Baghdady, Emad Ali, Igor Ostrovsky
-
Publication number: 20090158289Abstract: Optimizing workflow execution. A method includes identifying a completion condition. The completion condition is specified as part of the overall workflow. The method further includes identifying a number of activities that could be executed to satisfy the completion condition. One or more activities from the number of activities is ordered into an execution plan and assigned system resources based on an analysis of activities in the number of activities and the completion condition.Type: ApplicationFiled: December 18, 2007Publication date: June 18, 2009Applicant: MICROSOFT CORPORATIONInventors: Stephen Toub, Dharma Shukla
-
Publication number: 20070027844Abstract: Example embodiments allow a user to search for keywords or phrases within a recorded multimedia content (e.g., songs, video, recorded meetings, etc.), and then jump to those positions in the video or audio where the keyword or phrase occurs. A transcription index file is generated that includes searchable text with time codes corresponding to portions of the multimedia content where dialog, monolog, lyrics, or other words occur. Accordingly, a user can search the transcription index file, receive snippets of the dialog, monolog, lyrics, or other words, and/or navigate to those portions of the multimedia content corresponding to the times where the keywords or phrases appear. In addition, the present invention also provides metadata of the transcription index file that will allow a user to locate a multimedia file that contains the keywords or phrases even when a user has numerous multimedia files.Type: ApplicationFiled: July 28, 2005Publication date: February 1, 2007Applicant: Microsoft CorporationInventors: Stephen Toub, Derek Del Conte