Patents by Inventor Charles David Callahan, II
Charles David Callahan, II 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: 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: 8949549Abstract: A method to exchange data in a shared memory system includes the use of a buffer in communication with a producer processor and a consumer processor. The cache data is temporarily stored in the buffer. The method includes for the consumer and the producer to indicate intent to acquire ownership of the buffer. In response to the indication of intent, the producer, consumer, buffer are prepared for the access. If the consumer intends to acquire the buffer, the producer places the cache data into the buffer. If the producer intends to acquire the buffer, the consumer removes the cache data from the buffer. The access to the buffer, however, is delayed until the producer, consumer, and the buffer are prepared.Type: GrantFiled: November 26, 2008Date of Patent: February 3, 2015Assignee: Microsoft CorporationInventors: David T. Harper, III, Charles David Callahan, II
-
Patent number: 8719515Abstract: A software transactional memory (STM) system allows the composition of traditional lock based synchronization with transactions in STM code. The STM system acquires each traditional lock the first time that a corresponding traditional lock acquire is encountered inside a transaction and defers all traditional lock releases until a top level transaction in a transaction nest commits or aborts. The STM system maintains state information associated with traditional lock operations in transactions and uses the state information to eliminate deferred traditional lock operations that are redundant. The STM system integrates with systems that implement garbage collection.Type: GrantFiled: June 21, 2010Date of Patent: May 6, 2014Assignee: Microsoft CorporationInventors: Sukhdeep S. Sodhi, Yosseff Levanoni, David L. Detlefs, Lingli Zhang, Weirong Zhu, Dana Groff, Michael M. Magruder, Charles David Callahan, II
-
Patent number: 8589867Abstract: Described herein are techniques for generating invocation stubs for a data parallel programming model so that a data parallel program written in a statically-compiled high-level programming language may be more declarative, reusable, and portable than traditional approaches. With some of the described techniques, invocation stubs are generated by a compiler and those stubs bridge a logical arrangement of data parallel computations to the actual physical arrangement of a target data parallel hardware for that data parallel computation.Type: GrantFiled: June 18, 2010Date of Patent: November 19, 2013Assignee: Microsoft CorporationInventors: Lingli Zhang, Weirong Zhu, Yosseff Levanoni, Paul F. Ringseth, Charles David Callahan, II
-
Publication number: 20110314256Abstract: Described herein are techniques for enabling a programmer to express a call for a data parallel call-site function in a way that is accessible and usable to the typical programmer. With some of the described techniques, an executable program is generated based upon expressions of those data parallel tasks. During execution of the executable program, data is exchanged between non-data parallel (non-DP) capable hardware and DP capable hardware for the invocation of data parallel functions.Type: ApplicationFiled: June 18, 2010Publication date: December 22, 2011Applicant: Microsoft CorporationInventors: Charles David Callahan, II, Paul F. Ringseth, Yosseff Levanoni, Weirong Zhu, Lingli Zhang
-
Publication number: 20110314244Abstract: A software transactional memory (STM) system allows the composition of traditional lock based synchronization with transactions in STM code. The STM system acquires each traditional lock the first time that a corresponding traditional lock acquire is encountered inside a transaction and defers all traditional lock releases until a top level transaction in a transaction nest commits or aborts. The STM system maintains state information associated with traditional lock operations in transactions and uses the state information to eliminate deferred traditional lock operations that are redundant. The STM system integrates with systems that implement garbage collection.Type: ApplicationFiled: June 21, 2010Publication date: December 22, 2011Applicant: MICROSOFT CORPORATIONInventors: Sukhdeep S. Sodhi, Yosseff Levanoni, David L. Detlefs, Lingli Zhang, Weirong Zhu, Dana Groff, Michael M. Magruder, Charles David Callahan, II
-
Publication number: 20110314444Abstract: Described herein are techniques for generating invocation stubs for a data parallel programming model so that a data parallel program written in a statically-compiled high-level programming language may be more declarative, reusable, and portable than traditional approaches. With some of the described techniques, invocation stubs are generated by a compiler and those stubs bridge a logical arrangement of data parallel computations to the actual physical arrangement of a target data parallel hardware for that data parallel computation.Type: ApplicationFiled: June 18, 2010Publication date: December 22, 2011Applicant: Microsoft CorporationInventors: Lingli Zhang, Weirong Zhu, Yosseff Levanoni, Paul F. Ringseth, Charles David Callahan, II
-
Patent number: 7904685Abstract: Various techniques for manipulating data using access states of memory, access control fields of pointers and operations, and exception raising and exception trapping in a multithreaded computer system. In particular, the techniques include synchronization support for a thread blocked in a word, demand evaluation of values, parallel access of multiple threads to a list, synchronized and unsynchronized access to a data buffer, use of forwarding to avoid checking for an end of a buffer, use of sentinel word to detect access past a data structure, concurrent access to a word of memory using different synchronization access modes, and use of trapping to detect access to restricted memory.Type: GrantFiled: June 12, 2003Date of Patent: March 8, 2011Assignee: Cray Inc.Inventors: Gail A. Alverson, Charles David Callahan, II, Simon H. Kahan, Brian D. Koblenz, Allan Porterfield, Burton J. Smith
-
Patent number: 7739667Abstract: A system for conducting performance analysis for executing tasks. The analysis involves generating a variety of trace information related to performance measures, including parallelism-related information, during execution of the task. In order to generate the trace information, target source code of interest is compiled in such a manner that executing the resulting executable code will generate execution trace information composed of a series of events. Each event stores trace information related to a variety of performance measures for the one or more processors and protection domains used. After the execution trace information has been generated, the system can use that trace information and a trace information description file to produce useful performance measure information. The trace information description file contains information that describes the types of execution events as well as the structure of the stored information.Type: GrantFiled: October 19, 2005Date of Patent: June 15, 2010Assignee: Cray Inc.Inventors: Charles David Callahan, II, Keith Arnett Shields, Preston Pengra Briggs, III
-
Publication number: 20100131720Abstract: A method to exchange data in a shared memory system includes the use of a buffer in communication with a producer processor and a consumer processor. The cache data is temporarily stored in the buffer. The method includes for the consumer and the producer to indicate intent to acquire ownership of the buffer. In response to the indication of intent, the producer, consumer, buffer are prepared for the access. If the consumer intends to acquire the buffer, the producer places the cache data into the buffer. If the producer intends to acquire the buffer, the consumer removes the cache data from the buffer. The access to the buffer, however, is delayed until the producer, consumer, and the buffer are prepared.Type: ApplicationFiled: November 26, 2008Publication date: May 27, 2010Applicant: MICROSOFT CORPORATIONInventors: David T. Harper, III, Charles David Callahan, II
-
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
-
Patent number: 7584332Abstract: Embodiments of the present invention provide a class of computer architectures generally referred to as lightweight multi-threaded architectures (LIMA). Other embodiments may be described and claimed.Type: GrantFiled: February 15, 2007Date of Patent: September 1, 2009Assignees: University of Notre Dame du Lac, Cray, Inc.Inventors: Peter M. Kogge, Jay B. Brockman, David Tennyson Harper, III, Burton Smith, Charles David Callahan, II
-
Patent number: 7558889Abstract: Various techniques for manipulating data using access states of memory, access control fields of pointers and operations, and exception raising and exception trapping in a multithreaded computer system. In particular, the techniques include synchronization support for a thread blocked in a word, demand evalution of values, parallel access of multiple threads to a list, synchronized and unsynchronized access to a data buffer, use of fowarding to avoid checking for an end of a buffer, use of sentinel work to detect access past a data structure, concurrent access to a word of memory using different synchronization access modes, and use of trapping to detect access to restricted memory.Type: GrantFiled: October 30, 2003Date of Patent: July 7, 2009Assignee: Cray Inc.Inventors: Gail A. Alverson, Charles David Callahan, II, Simon H. Kahan, Brian D. Koblenz, Allan Porterfield, Burton J. Smith
-
Patent number: 7558910Abstract: Various techniques for manipulating data using access states of memory, access control fields of pointers and operations, and exception raising and exception trapping in a multithreaded computer system. In particular, the techniques include synchronization support for a thread blocked in a word, demand evaluation of values, parallel access of multiple threads to a list, synchronized and unsynchronized access to a data buffer, use of forwarding to avoid checking for an end of a buffer, use of sentinel word to detect access past a data structure, concurrent access to a word of memory using different synchronization access modes, and use of trapping to detect access to restricted memory.Type: GrantFiled: October 30, 2003Date of Patent: July 7, 2009Assignee: Cray Inc.Inventors: Gail A. Alverson, Charles David Callahan, II, Simon H. Kahan, Brian D. Koblenz, Allan Porterfield, Burton J. Smith
-
Patent number: 7536690Abstract: A method and system that prepares a task for being swapped out from processor utilization that is executing on a computer with multiple processors that each support multiple streams. The task has one or more teams of threads, where each team represents threads executing on a single processor. The task designates, for each stream that is executing a thread, one stream as a team master stream and one stream as a task master stream. For each team master stream, the task notifies the operating system that the team is ready to be swapped out when each other thread of the team has saved its state and has quit its stream. Finally, for the task master stream, the task notifies the operating system that the task is ready to be swapped when it has saved its state and each other team has notified that it is ready to be swapped out.Type: GrantFiled: September 16, 2003Date of Patent: May 19, 2009Assignee: Cray Inc.Inventors: Gail A. Alverson, Charles David Callahan, II, Susan L. Coatney, Brian D. Koblenz, Richard D. Korry, Burton J. Smith
-
Patent number: 7426732Abstract: A method and system that prepares a task for being swapped out from processor utilization that is executing on a computer with multiple processors that each support multiple streams. The task has one or more teams of threads, where each team represents threads executing on a single processor. The task designates, for each stream that is executing a thread, one stream as a team master stream and one stream as a task master stream. For each team master stream, the task notifies the operating system that the team is ready to be swapped out when each other thread of the team has saved its state and has quit its stream. Finally, for the task master stream, the task notifies the operating system that the task is ready to be swapped when it has saved its state and each other team has notified that it is ready to be swapped out.Type: GrantFiled: October 10, 2003Date of Patent: September 16, 2008Assignee: Cray Inc.Inventors: Gail A. Alverson, Charles David Callahan, II, Susan L. Coatney, Brian D. Koblenz, Richard D. Korry, Burton J. Smith
-
Patent number: 7392525Abstract: A method and system that prepares a task for being swapped out from processor utilization that is executing on a computer with multiple processors that each support multiple streams. The task has one or more teams of threads, where each team represents threads executing on a single processor. The task designates, for each stream that is executing a thread, one stream as a team master stream and one stream as a task master stream. For each team master stream, the task notifies the operating system that the team is ready to be swapped out when each other thread of the team has saved its state and has quit its stream. Finally, for the task master stream, the task notifies the operating system that the task is ready to be swapped when it has saved its state and each other team has notified that it is ready to be swapped out.Type: GrantFiled: October 1, 2003Date of Patent: June 24, 2008Assignee: Cray Inc.Inventors: Gail A. Alverson, Charles David Callahan, II, Susan L. Coatney, Brian D. Koblenz, Richard D. Korry, Burton J. Smith
-
Patent number: 7360221Abstract: A method and system that prepares a task for being swapped out from processor utilization that is executing on a computer with multiple processors that each support multiple streams. The task has one or more teams of threads, where each team represents threads executing on a single processor. The task designates, for each stream that is executing a thread, one stream as a team master stream and one stream as a task master stream. For each team master stream, the task notifies the operating system that the team is ready to be swapped out when each other thread of the team has saved its state and has quit its stream. Finally, for the task master stream, the task notifies the operating system that the task is ready to be swapped when it has saved its state and each other team has notified that it is ready to be swapped out.Type: GrantFiled: September 10, 2003Date of Patent: April 15, 2008Assignee: Cray Inc.Inventors: Gail A. Alverson, Charles David Callahan, II, Susan L. Coatney, Brian D. Koblenz, Richard D. Korry, Burton J. Smith
-
Patent number: 7191444Abstract: A method and system that prepares a task for being swapped out from processor utilization that is executing on a computer with multiple processors that each support multiple streams. The task has one or more teams of threads, where each team represents threads executing on a single processor. The task designates, for each stream that is executing a thread, one stream as a team master stream and one stream as a task master stream. For each team master stream, the task notifies the operating system that the team is ready to be swapped out when each other thread of the team has saved its state and has quit its stream. Finally, for the task master stream, the task notifies the operating system that the task is ready to be swapped when it has saved its state and each other team has notified that it is ready to be swapped out.Type: GrantFiled: September 16, 2003Date of Patent: March 13, 2007Assignee: Cray Inc.Inventors: Gail A. Alverson, Charles David Callahan, II, Susan L. Coatney, Brian D. Koblenz, Richard D. Korry, Burton J. Smith
-
Patent number: 7165150Abstract: Various techniques for manipulating data using access states of memory, access control fields of pointers and operations, and exception raising and exception trapping in a multithreaded computer system. In particular, the techniques include synchronization support for a thread blocked in a word, demand evaluation of values, parallel access of multiple threads to a list, synchronized and unsynchronized access to a data buffer, use of forwarding to avoid checking for an end of a buffer, use of sentinel word to detect access past a data structure, concurrent access to a word of memory using different synchronization access modes, and use of trapping to detect access to restricted memory.Type: GrantFiled: October 30, 2003Date of Patent: January 16, 2007Assignee: Cray Inc.Inventors: Gail A. Alverson, Charles David Callahan, II, Simon H. Kahan, Brian D. Koblenz, Allan Porterfield, Burton J. Smith