Patents by Inventor Huseyin S. Yildiz

Huseyin S. Yildiz 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: 9928105
    Abstract: A parallel execution runtime prevents stack overflow by maintaining an inline counter for each thread executing tasks of a process. Each time that the runtime determines that inline execution of a task is desired on a thread, the runtime determines whether the inline counter for the corresponding thread indicates that stack overflow may occur. If not, the runtime increments the inline counter for the thread and allows the task to be executed inline. If the inline counter indicates a risk of stack overflow, then the runtime performs additional one or more checks using a previous stack pointer of the stack (i.e., a lowest known safe watermark), the current stack pointer, and memory boundaries of the stack. If the risk of stack overflow remains after all checks have been performed, the runtime prevents inline execution of the task.
    Type: Grant
    Filed: June 28, 2010
    Date of Patent: March 27, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Huseyin S. Yildiz, John J. Duffy
  • Patent number: 9846628
    Abstract: The present invention extends to methods, systems, and computer program products for indicating parallel operations with user-visible events. Event markers can be used to indicate an abstracted outer layer of execution as well as expose internal specifics of parallel processing systems, including systems that provide data parallelism. Event markers can be used to show a variety of execution characteristics including higher-level markers to indicate the beginning and end of an execution program (e.g., a query). Inside the execution program (query) individual fork/join operations can be indicated with sub-levels of markers to expose their operations. Additional decisions made by an execution engine, such as, for example, when elements initially yield, when queries overlap or nest, when the query is cancelled, when the query bails to sequential operation, when premature merging or re-partitioning are needed can also be exposed.
    Type: Grant
    Filed: June 15, 2010
    Date of Patent: December 19, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Edward G. Essey, Igor Ostrovsky, Pooja Nagpal, Huseyin S. Yildiz, Hazim Shafi, William T. Colburn
  • Patent number: 9229788
    Abstract: A method of performing a wait operation includes creating a first plurality of tasks and a continuation task. The continuation task represents a second plurality of tasks. The continuation task and each of the tasks in the first plurality have an associated wait handle. The wait handles for the first plurality of tasks and the continuation task are stored in an array. A wait operation is performed on the array, thereby waiting for at least one of the tasks in the first and second pluralities to complete.
    Type: Grant
    Filed: March 26, 2010
    Date of Patent: January 5, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Stephen H. Toub, Joseph E. Hoag, Huseyin S. Yildiz, Danny S. Shih, Mike Liddell, John Duffy
  • Patent number: 9141422
    Abstract: A parallel execution runtime allows tasks to be executed concurrently in a runtime environment. The parallel execution runtime delegates the implementation of task queuing, dispatch, and thread management to one or more plug-in schedulers in a runtime environment of a computer system. The plug-in schedulers may be provided by user code or other suitable sources and include interfaces that operate in conjunction with the runtime. The runtime tracks the schedulers and maintains control of all aspects of the execution of tasks from user code including task initialization, task status, task waiting, task cancellation, task continuations, and task exception handling.
    Type: Grant
    Filed: May 18, 2010
    Date of Patent: September 22, 2015
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Stephen H. Toub, Huseyin S. Yildiz, Joseph E. Hoag, John J. Duffy, Danny Shih
  • Patent number: 8799629
    Abstract: A method of executing a loop over an integer index range of indices in a parallel manner includes assigning a plurality of index subsets of the integer index range to a corresponding plurality of threads, and defining for each index subset a start point of the index subset, an end point of the index subset, and a boundary point of the index subset positioned between the start point and the end point of the index subset. A portion of the index subset between the start point and the boundary point represents a private range and the portion of the index subset between the boundary point and the end point represents a public range. Loop code is executed by each thread based on the index subset of the integer index range assigned to the thread.
    Type: Grant
    Filed: December 4, 2008
    Date of Patent: August 5, 2014
    Assignee: Microsoft Corporation
    Inventors: Huseyin S. Yildiz, Stephen S. Toub, Paul Ringseth, John Duffy
  • Patent number: 8379735
    Abstract: A process to detect video glitches and audio-video synchronization errors arising during playback or capture. The process encodes an external time stamp into video and audio streams directly at the output of a digital media playback device. The process captures the stamped video and audio streams and analyzes the external stamp by comparing it with a presentation time stamp and a capture time stamp.
    Type: Grant
    Filed: May 15, 2006
    Date of Patent: February 19, 2013
    Assignee: Microsoft Corporation
    Inventors: Mingtzong Lee, Huseyin S. Yildiz
  • Patent number: 8250576
    Abstract: The present invention extends to methods, systems, and computer program products for a structured task hierarchy for a parallel runtime. The parallel execution runtime environment permits flexible spawning and attachment of tasks to one another to form a task hierarchy. Parent tasks can be prevented from completing until any attached child sub-tasks complete. Exceptions can be aggregated in an exception array such that any aggregated exceptions for a task are available when the task completes. A shield mode is provided to prevent tasks from attaching to another task as child tasks.
    Type: Grant
    Filed: September 30, 2009
    Date of Patent: August 21, 2012
    Assignee: Microsoft Corporation
    Inventors: Huseyin S. Yildiz, Stephen H. Toub, John J. Duffy
  • Publication number: 20110321059
    Abstract: A parallel execution runtime prevents stack overflow by maintaining an inline counter for each thread executing tasks of a process. Each time that the runtime determines that inline execution of a task is desired on a thread, the runtime determines whether the inline counter for the corresponding thread indicates that stack overflow may occur. If not, the runtime increments the inline counter for the thread and allows the task to be executed inline. If the inline counter indicates a risk of stack overflow, then the runtime performs additional one or more checks using a previous stack pointer of the stack (i.e., a lowest known safe watermark), the current stack pointer, and memory boundaries of the stack. If the risk of stack overflow remains after all checks have been performed, the runtime prevents inline execution of the task.
    Type: Application
    Filed: June 28, 2010
    Publication date: December 29, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Huseyin S. Yildiz, John J. Duffy
  • Patent number: 8086882
    Abstract: An energy measurement system (“EMS”) and techniques for correlating energy consumption to computing system activity. The EMS includes a data acquisition module, a processing module, and optionally a visualization module. The data acquisition module receives and transmits to the processing unit a number of sampled data streams, referred to as “data acquisition traces,” associated with a computing system under test (“SUT”). The processing module concurrently receives one or more system traces from the SUT, which are produced by particular components under examination by the EMS. Synchronization is established between the data acquisition traces and the system trace(s) when the SUT executes certain predetermined actions to produce data in both the data acquisition traces and the system trace(s), which data is used to logically align the traces. Then, as test scenarios are executed by the SUT, changes are monitored in the traces, and energy consumption is quantified.
    Type: Grant
    Filed: June 29, 2008
    Date of Patent: December 27, 2011
    Assignee: Microsoft Corporation
    Inventors: Aniket A. Shah, Alexandre G. Ferreira, Huseyin S. Yildiz, Jose H. Baldner
  • Publication number: 20110307905
    Abstract: The present invention extends to methods, systems, and computer program products for indicating parallel operations with user-visible events. Event markers can be used to indicate an abstracted outer layer of execution as well as expose internal specifics of parallel processing systems, including systems that provide data parallelism. Event markers can be used to show a variety of execution characteristics including higher-level markers to indicate the beginning and end of an execution program (e.g., a query). Inside the execution program (query) individual fork/join operations can be indicated with sub-levels of markers to expose their operations. Additional decisions made by an execution engine, such as, for example, when elements initially yield, when queries overlap or nest, when the query is cancelled, when the query bails to sequential operation, when premature merging or re-partitioning are needed can also be exposed.
    Type: Application
    Filed: June 15, 2010
    Publication date: December 15, 2011
    Applicant: Microsoft Corporation
    Inventors: Edward G. Essey, Igor Ostrovsky, Pooja Nagpal, Huseyin S. Yildiz, Hazim Shafi, William T. Colburn
  • Publication number: 20110289503
    Abstract: A parallel execution runtime allows tasks to be executed concurrently in a runtime environment. The parallel execution runtime delegates the implementation of task queuing, dispatch, and thread management to one or more plug-in schedulers in a runtime environment of a computer system. The plug-in schedulers may be provided by user code or other suitable sources and include interfaces that operate in conjunction with the runtime. The runtime tracks the schedulers and maintains control of all aspects of the execution of tasks from user code including task initialization, task status, task waiting, task cancellation, task continuations, and task exception handling.
    Type: Application
    Filed: May 18, 2010
    Publication date: November 24, 2011
    Applicant: MICROSOFT CORPORATION
    Inventors: Stephen H. Toub, Huseyin S. Yildiz, Joseph E. Hoag, John J. Duffy, Danny Shih
  • Publication number: 20110239217
    Abstract: A method of performing a wait operation includes creating a first plurality of tasks and a continuation task. The continuation task represents a second plurality of tasks. The continuation task and each of the tasks in the first plurality have an associated wait handle. The wait handles for the first plurality of tasks and the continuation task are stored in an array. A wait operation is performed on the array, thereby waiting for at least one of the tasks in the first and second pluralities to complete.
    Type: Application
    Filed: March 26, 2010
    Publication date: September 29, 2011
    Applicant: Microsoft Corporation
    Inventors: Stephen H. Toub, Joseph E. Hoag, Huseyin S. Yildiz, Danny S. Shih, Mike Liddell, John Duffy
  • Publication number: 20110078691
    Abstract: The present invention extends to methods, systems, and computer program products for a structured task hierarchy for a parallel runtime. The parallel execution runtime environment permits flexible spawning and attachment of tasks to one another to form a task hierarchy. Parent tasks can be prevented from completing until any attached child sub-tasks complete. Exceptions can be aggregated in an exception array such that any aggregated exceptions for a task are available when the task completes. A shield mode is provided to prevent tasks from attaching to another task as child tasks.
    Type: Application
    Filed: September 30, 2009
    Publication date: March 31, 2011
    Applicant: Microsoft Corporation
    Inventors: Huseyin S. Yildiz, Stephen H. Toub, John J. Duffy
  • Publication number: 20100295856
    Abstract: A data visualization and analysis system (“DVAS”) is described, which provides techniques and data models for modeling, storing, retrieving, analyzing, and visually representing large data sets in a rapid, lightweight, flexible, and highly interactive fashion. A data model and various techniques are described with reference to trace data sets, which are files or other data storage constructs used to record information regarding certain defined events occurring during operation of a computing system or a portion thereof. The DVAS receives and parses one or more trace data sets to create a data model that includes a number of layers and other inner or auxiliary data structures. Based on the data model, the DVAS visually renders one or more sets of geometric objects in accordance with different drawing modes. The drawing modes, which are dynamic and interactive, enable users to effectively visually identify patterns within the trace data sets.
    Type: Application
    Filed: May 21, 2009
    Publication date: November 25, 2010
    Applicant: MICROSOFT CORPORATION
    Inventors: Alexandre G. Ferreira, Jose H. Baldner, Nelson Araujo, Huseyin S. Yildiz, Zhaohui Zhu
  • Publication number: 20100185840
    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: Application
    Filed: January 22, 2009
    Publication date: July 22, 2010
    Applicant: Microsoft Corporation
    Inventors: John Duffy, Stephen H. Toub, Huseyin S. Yildiz, Mike Liddell
  • Publication number: 20100146245
    Abstract: A method of executing a loop over an integer index range of indices in a parallel manner includes assigning a plurality of index subsets of the integer index range to a corresponding plurality of threads, and defining for each index subset a start point of the index subset, an end point of the index subset, and a boundary point of the index subset positioned between the start point and the end point of the index subset. A portion of the index subset between the start point and the boundary point represents a private range and the portion of the index subset between the boundary point and the end point represents a public range. Loop code is executed by each thread based on the index subset of the integer index range assigned to the thread.
    Type: Application
    Filed: December 4, 2008
    Publication date: June 10, 2010
    Applicant: Microsoft Corporation
    Inventors: Huseyin S. Yildiz, Stephen S. Toub, Paul Ringseth, John Duffy
  • Publication number: 20090327784
    Abstract: An energy measurement system (“EMS”) and techniques for correlating energy consumption to computing system activity. The EMS includes a data acquisition module, a processing module, and optionally a visualization module. The data acquisition module receives and transmits to the processing unit a number of sampled data streams, referred to as “data acquisition traces,” associated with a computing system under test (“SUT”). The processing module concurrently receives one or more system traces from the SUT, which are produced by particular components under examination by the EMS. Synchronization is established between the data acquisition traces and the system trace(s) when the SUT executes certain predetermined actions to produce data in both the data acquisition traces and the system trace(s), which data is used to logically align the traces. Then, as test scenarios are executed by the SUT, changes are monitored in the traces, and energy consumption is quantified.
    Type: Application
    Filed: June 29, 2008
    Publication date: December 31, 2009
    Applicant: MICROSOFT CORPORATION
    Inventors: Aniket A. Shah, Alexandre G. Ferreira, Huseyin S. Yildiz, Jose H. Baldner
  • Publication number: 20080037954
    Abstract: A process to detect video glitches and audio-video synchronization errors arising during playback or capture. The process encodes an external time stamp into video and audio streams directly at the output of a digital media playback device. The process captures the stamped video and audio streams and analyzes the external stamp by comparing it with a presentation time stamp and a capture time stamp.
    Type: Application
    Filed: May 15, 2006
    Publication date: February 14, 2008
    Applicant: Microsoft Corporation
    Inventors: Mingtzong Lee, Huseyin S. Yildiz