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: 9043749
    Abstract: 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: Grant
    Filed: June 16, 2008
    Date of Patent: May 26, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Joe Duffy, Stephen Toub, Brian Grunkemeyer, Ramasamy Krishnaswamy
  • Patent number: 9038087
    Abstract: 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: Grant
    Filed: June 18, 2008
    Date of Patent: May 19, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Paul F. Ringseth, Bill Messmer, Charles David Callahan, II, Stephen Toub
  • Patent number: 8806426
    Abstract: 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: Grant
    Filed: June 4, 2008
    Date of Patent: August 12, 2014
    Assignee: Microsoft Corporation
    Inventors: Joe Duffy, Igor Ostrovsky, Huseyin Yildiz, Stephen Toub
  • Patent number: 8719803
    Abstract: 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: Grant
    Filed: June 4, 2008
    Date of Patent: May 6, 2014
    Assignee: Microsoft Corporation
    Inventors: Stephen Toub, Igor Ostrovsky, Joe Duffy, Vance Morrison, Huseyin Yildiz
  • Patent number: 8707320
    Abstract: 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: Grant
    Filed: February 25, 2010
    Date of Patent: April 22, 2014
    Assignee: Microsoft Corporation
    Inventors: Michael Liddell, Igor Ostrovsky, Stephen Toub
  • Patent number: 8359604
    Abstract: 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: Grant
    Filed: January 22, 2009
    Date of Patent: January 22, 2013
    Assignee: Microsoft Corporation
    Inventors: John Duffy, Stephen Toub, Huseyin Yildiz, Mike Liddell
  • Patent number: 8356308
    Abstract: 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: Grant
    Filed: June 2, 2008
    Date of Patent: January 15, 2013
    Assignee: Microsoft Corporation
    Inventors: Stephen Toub, Joe Duffy, Samer El Baghdady, Emad Ali, Igor Ostrovsky
  • Patent number: 8266604
    Abstract: 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: Grant
    Filed: January 26, 2009
    Date of Patent: September 11, 2012
    Assignee: Microsoft Corporation
    Inventors: 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: 8108868
    Abstract: 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: Grant
    Filed: December 18, 2007
    Date of Patent: January 31, 2012
    Assignee: Microsoft Corporation
    Inventors: Stephen Toub, Dharma Shukla
  • Publication number: 20110208872
    Abstract: 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: Application
    Filed: February 25, 2010
    Publication date: August 25, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Michael Liddell, Igor Ostrovsky, Stephen Toub
  • Publication number: 20100191930
    Abstract: 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: Application
    Filed: January 26, 2009
    Publication date: July 29, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: 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: 20100077384
    Abstract: 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: Application
    Filed: September 23, 2008
    Publication date: March 25, 2010
    Applicant: Microsoft Corporation
    Inventors: Igor Ostrovsky, Stephen Toub, John Duffy, Joseph Hellerstein
  • Publication number: 20090320027
    Abstract: 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: Application
    Filed: June 18, 2008
    Publication date: December 24, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Paul F. Ringseth, Bill Messmer, Charles David Callahan, II, Stephen Toub
  • Publication number: 20090319992
    Abstract: 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: Application
    Filed: June 4, 2008
    Publication date: December 24, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Joe Duffy, Igor Ostrovsky, Huseyin Yildiz, Stephen Toub
  • Publication number: 20090320005
    Abstract: 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: Application
    Filed: June 4, 2008
    Publication date: December 24, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Stephen Toub, Igor Ostrovsky, Joe Duffy, Vance Morrison, Huseyin Yildiz
  • Publication number: 20090313624
    Abstract: 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: Application
    Filed: June 16, 2008
    Publication date: December 17, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Joe Duffy, Stephen Toub, Brian Grunkemeyer, Ramasamy Krishnaswamy
  • Publication number: 20090300766
    Abstract: 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: Application
    Filed: June 2, 2008
    Publication date: December 3, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Stephen Toub, Joe Duffy, Samer El Baghdady, Emad Ali, Igor Ostrovsky
  • Publication number: 20090158289
    Abstract: 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: Application
    Filed: December 18, 2007
    Publication date: June 18, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Stephen Toub, Dharma Shukla
  • Publication number: 20070027844
    Abstract: 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: Application
    Filed: July 28, 2005
    Publication date: February 1, 2007
    Applicant: Microsoft Corporation
    Inventors: Stephen Toub, Derek Del Conte