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: 9928105Abstract: 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: GrantFiled: June 28, 2010Date of Patent: March 27, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Huseyin S. Yildiz, John J. Duffy
-
Patent number: 9846628Abstract: 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: GrantFiled: June 15, 2010Date of Patent: December 19, 2017Assignee: Microsoft Technology Licensing, LLCInventors: Edward G. Essey, Igor Ostrovsky, Pooja Nagpal, Huseyin S. Yildiz, Hazim Shafi, William T. Colburn
-
Patent number: 9229788Abstract: 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: GrantFiled: March 26, 2010Date of Patent: January 5, 2016Assignee: Microsoft Technology Licensing, LLCInventors: Stephen H. Toub, Joseph E. Hoag, Huseyin S. Yildiz, Danny S. Shih, Mike Liddell, John Duffy
-
Patent number: 9141422Abstract: 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: GrantFiled: May 18, 2010Date of Patent: September 22, 2015Assignee: Microsoft Technology Licensing, LLCInventors: Stephen H. Toub, Huseyin S. Yildiz, Joseph E. Hoag, John J. Duffy, Danny Shih
-
Patent number: 8799629Abstract: 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: GrantFiled: December 4, 2008Date of Patent: August 5, 2014Assignee: Microsoft CorporationInventors: Huseyin S. Yildiz, Stephen S. Toub, Paul Ringseth, John Duffy
-
Patent number: 8379735Abstract: 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: GrantFiled: May 15, 2006Date of Patent: February 19, 2013Assignee: Microsoft CorporationInventors: Mingtzong Lee, Huseyin S. Yildiz
-
Patent number: 8250576Abstract: 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: GrantFiled: September 30, 2009Date of Patent: August 21, 2012Assignee: Microsoft CorporationInventors: Huseyin S. Yildiz, Stephen H. Toub, John J. Duffy
-
Publication number: 20110321059Abstract: 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: ApplicationFiled: June 28, 2010Publication date: December 29, 2011Applicant: MICROSOFT CORPORATIONInventors: Huseyin S. Yildiz, John J. Duffy
-
Patent number: 8086882Abstract: 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: GrantFiled: June 29, 2008Date of Patent: December 27, 2011Assignee: Microsoft CorporationInventors: Aniket A. Shah, Alexandre G. Ferreira, Huseyin S. Yildiz, Jose H. Baldner
-
Publication number: 20110307905Abstract: 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: ApplicationFiled: June 15, 2010Publication date: December 15, 2011Applicant: Microsoft CorporationInventors: Edward G. Essey, Igor Ostrovsky, Pooja Nagpal, Huseyin S. Yildiz, Hazim Shafi, William T. Colburn
-
Publication number: 20110289503Abstract: 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: ApplicationFiled: May 18, 2010Publication date: November 24, 2011Applicant: MICROSOFT CORPORATIONInventors: Stephen H. Toub, Huseyin S. Yildiz, Joseph E. Hoag, John J. Duffy, Danny Shih
-
Publication number: 20110239217Abstract: 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: ApplicationFiled: March 26, 2010Publication date: September 29, 2011Applicant: Microsoft CorporationInventors: Stephen H. Toub, Joseph E. Hoag, Huseyin S. Yildiz, Danny S. Shih, Mike Liddell, John Duffy
-
Publication number: 20110078691Abstract: 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: ApplicationFiled: September 30, 2009Publication date: March 31, 2011Applicant: Microsoft CorporationInventors: Huseyin S. Yildiz, Stephen H. Toub, John J. Duffy
-
Publication number: 20100295856Abstract: 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: ApplicationFiled: May 21, 2009Publication date: November 25, 2010Applicant: MICROSOFT CORPORATIONInventors: Alexandre G. Ferreira, Jose H. Baldner, Nelson Araujo, Huseyin S. Yildiz, Zhaohui Zhu
-
Publication number: 20100185840Abstract: 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: ApplicationFiled: January 22, 2009Publication date: July 22, 2010Applicant: Microsoft CorporationInventors: John Duffy, Stephen H. Toub, Huseyin S. Yildiz, Mike Liddell
-
Publication number: 20100146245Abstract: 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: ApplicationFiled: December 4, 2008Publication date: June 10, 2010Applicant: Microsoft CorporationInventors: Huseyin S. Yildiz, Stephen S. Toub, Paul Ringseth, John Duffy
-
Publication number: 20090327784Abstract: 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: ApplicationFiled: June 29, 2008Publication date: December 31, 2009Applicant: MICROSOFT CORPORATIONInventors: Aniket A. Shah, Alexandre G. Ferreira, Huseyin S. Yildiz, Jose H. Baldner
-
Publication number: 20080037954Abstract: 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: ApplicationFiled: May 15, 2006Publication date: February 14, 2008Applicant: Microsoft CorporationInventors: Mingtzong Lee, Huseyin S. Yildiz