Patents by Inventor David K. Poulsen

David K. Poulsen 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: 8839258
    Abstract: A first execution time of a first thread executing on a first processing unit of a multiprocessor is determined. A second execution time of a second thread executing on a second processing unit of the multiprocessor is determined, the first and second threads executing in parallel. Power is set to the first and second processing units to effectuate the first and second threads to finish executing at approximately the same time in future executions of the first and second threads. Other embodiments are also described and claimed.
    Type: Grant
    Filed: January 20, 2012
    Date of Patent: September 16, 2014
    Assignee: Intel Corporation
    Inventors: Ryan Rakvic, Richard A. Hankins, Ed Grochowski, Hong Wang, Murali Annavaram, David K. Poulsen, Sanjiv Shah, John Shen, Gautham Chinya
  • Patent number: 8689215
    Abstract: Methods, data structures, instructions, and techniques for structured exception handling for user-level threads in a multi-threading system are provided. Registered filter routines may be dispatched to a thread unit not managed by the operating system (OS). The dispatch may occur by allowing an OS-managed thread unit (proxy) to invoke the OS-provided structured exception handling service (including dispatcher) on behalf of the sequestered thread unit. Alternatively, an OS-managed thread unit may include dispatch code and may, without OS intervention, dispatch the filter routine to the sequestered thread unit. Other embodiments are also described and claimed.
    Type: Grant
    Filed: December 19, 2006
    Date of Patent: April 1, 2014
    Assignee: Intel Corporation
    Inventors: Richard A. Hankins, Gautham N. Chinya, Hong Wang, David K. Poulsen, Shirish Aundhe, Baiju V. Patel, Sanjiv M. Shah
  • Publication number: 20120131366
    Abstract: A first execution time of a first thread executing on a first processing unit of a multiprocessor is determined. A second execution time of a second thread executing on a second processing unit of the multiprocessor is determined, the first and second threads executing in parallel. Power is set to the first and second processing units to effectuate the first and second threads to finish executing at approximately the same time in future executions of the first and second threads. Other embodiments are also described and claimed.
    Type: Application
    Filed: January 20, 2012
    Publication date: May 24, 2012
    Inventors: Ryan Rakvic, Richard A. Hankins, Ed Grochowski, Hong Wang, Murali Annavaram, David K. Poulsen, Sanjiv Shah, John Shen, Gautham Chinya
  • Patent number: 8108863
    Abstract: A first execution time of a first thread executing on a first processing unit of a multiprocessor is determined. A second execution time of a second thread executing on a second processing unit of the multiprocessor is determined, the first and second threads executing in parallel. Power is set to the first and second processing units to effectuate the first and second threads to finish executing at approximately the same time in future executions of the first and second threads. Other embodiments are also described and claimed.
    Type: Grant
    Filed: December 30, 2005
    Date of Patent: January 31, 2012
    Assignee: Intel Corporation
    Inventors: Ryan Rakvic, Richard A. Hankins, Ed Grochowski, Hong Wang, Murali Annavaram, David K. Poulsen, Sanjiv Shah, John Shen, Gautham Chinya
  • Patent number: 8079035
    Abstract: Data structure creation, organization and management techniques for data local to user-level threads are provided. In one embodiment, a method includes generating, for a user-level thread (“shred”) to run on a thread unit that is not managed by an operating system (“OS”), a storage area for local data and maintaining state in the storage area across a context switch from the thread unit that is not managed by the OS to a second thread unit that is managed by the OS. Other embodiments are also described and claimed.
    Type: Grant
    Filed: December 27, 2005
    Date of Patent: December 13, 2011
    Assignee: Intel Corporation
    Inventors: Richard A. Hankins, Gautham N. Chinya, Hong Wang, David K. Poulsen, Shirish Aundhe, John P. Shen, Sanjiv M. Shah, Baiju V. Patel
  • Patent number: 7743233
    Abstract: Disclosed are embodiments of a system, methods and mechanism for management and translation of mapping between logical sequencer addresses and physical or logical sequencers in a multi-sequencer multithreading system. A mapping manager may manage assignment and mapping of logical sequencer addresses or pages to actual sequencers or frames of the system. Rationing logic associated with the mapping manager may take into account sequencer attributes when such mapping is performed Relocation logic associated with the mapping manager may manage spill and fill of context information to/from a backing store when re-mapping actual sequencers. Sequencers may be allocated singly, or may be allocated as part of partitioned blocks. The mapping manager may also include translation logic that provides an identifier for the mapped sequencer each time a logical sequencer address is used in a user program. Other embodiments are also described and claimed.
    Type: Grant
    Filed: April 5, 2005
    Date of Patent: June 22, 2010
    Assignee: Intel Corporation
    Inventors: Hong Wang, Gautham N. Chinya, Richard A. Hankins, Shivnandan D. Kaushik, Bryant Bigbee, John Shen, Per Hammarlund, Xiang Zou, Jason W. Brandt, Prashant Sethi, Douglas M. Carmean, Baiju V. Patel, Scott Dion Rodgers, Ryan N. Rakvic, John L. Reid, David K. Poulsen, Sanjiv M. Shah, James Paul Held, James Charles Abel
  • Patent number: 7644130
    Abstract: A message passing interface (“MPI”) cluster may be initialized and configured by reading a list of node identifiers from a file, starting a process on each node whose identifier was listed, and providing a second list of node identifiers to the process.
    Type: Grant
    Filed: December 30, 2005
    Date of Patent: January 5, 2010
    Assignee: Intel Corporation
    Inventors: William R. Magro, David K. Poulsen, Alexander V. Supalov, Andrey B. Derbunovich
  • Publication number: 20080148259
    Abstract: Methods, data structures, instructions, and techniques for structured exception handling for user-level threads in a multi-threading system are provided. Registered filter routines may be dispatched to a thread unit not managed by the operating system (OS). The dispatch may occur by allowing an OS-managed thread unit (proxy) to invoke the OS-provided structured exception handling service (including dispatcher) on behalf of the sequestered thread unit. Alternatively, an OS-managed thread unit may include dispatch code and may, without OS intervention, dispatch the filter routine to the sequestered thread unit. Other embodiments are also described and claimed.
    Type: Application
    Filed: December 19, 2006
    Publication date: June 19, 2008
    Inventors: Richard A. Hankins, Gautham N. Chinya, Hong Wang, David K. Poulsen, Shirish Aundhe, Baiju V. Patel, Sanjiv M. Shah
  • Patent number: 6792599
    Abstract: A method and apparatus for a atomic operation is described. A method comprises receiving a first program unit in a parallel computing environment, the first program unit including a memory update operation to be performed atomically, the memory update operation having an operand, the operand being of a data-type and of a data size, and translating the first program unit into a second program unit, the second program unit to associate the memory update operation with a set of one or more low-level instructions upon determining that the data size of the operand is supported by the set of low-level instructions, the set of low-level instructions to ensure atomicity of the memory update operation.
    Type: Grant
    Filed: October 15, 2001
    Date of Patent: September 14, 2004
    Assignee: Intel Corporation
    Inventors: David K. Poulsen, Sanjiv M. Shah, Paul M. Petersen, Grant E. Haab
  • Publication number: 20030135535
    Abstract: In some embodiments of the present invention, a parallel computer system provides a plurality of threads that execute code structures. A method and apparatus may be provided to copy data from one thread to another thread.
    Type: Application
    Filed: January 11, 2002
    Publication date: July 17, 2003
    Inventors: Jay P. Hoeflinger, Sanjiv M. Shah, Paul M. Petersen, David K. Poulsen
  • Publication number: 20030126589
    Abstract: A method and apparatus for a reduction operation is described. A method may be utilized that includes receiving a first program unit in a parallel computing environment, the first program unit may include a reduction operation to be performed and translating the first program unit into a second program unit, the second program unit may associate the reduction operation with a set of one or more low-level instructions that may, in part, perform the reduction operation.
    Type: Application
    Filed: January 2, 2002
    Publication date: July 3, 2003
    Inventors: David K. Poulsen, Sanjiv M. Shah, Paul M. Petersen, Grant E. Haab, Jay P. Hoeflinger
  • Publication number: 20030088856
    Abstract: A method and apparatus for generating source code to return the memory address of a descriptor are described. In an embodiment, the method includes generating a function having an argument. The function is expressed in a high-level programming language. The function includes a set of one or more instructions that instruct a compiler unit to return a memory address of the argument as a result of the function. The method also includes generating a call to the function. The call is expressed in the high-level programming language. The call causes the compiler unit to pass a descriptor as the argument.
    Type: Application
    Filed: November 8, 2001
    Publication date: May 8, 2003
    Inventors: Jay P. Hoeflinger, Sanjiv M. Shah, David K. Poulsen
  • Publication number: 20030074649
    Abstract: A method and apparatus for a atomic operation is described. A method comprises receiving a first program unit in a parallel computing environment, the first program unit including a memory update operation to be performed atomically, the memory update operation having an operand, the operand being of a data-type and of a data size, and translating the first program unit into a second program unit, the second program unit to associate the memory update operation with a set of one or more low-level instructions upon determining that the data size of the operand is supported by the set of low-level instructions, the set of low-level instructions to ensure atomicity of the memory update operation.
    Type: Application
    Filed: October 15, 2001
    Publication date: April 17, 2003
    Inventors: David K. Poulsen, Sanjiv M. Shah, Paul M. Petersen, Grant E. Haab
  • Publication number: 20030066056
    Abstract: In an embodiment, a method includes receiving a first source code having a number of global storage objects, wherein the number of global storage objects are to be accessed by a number of threads during execution. The method also includes translating the first source code into a second source code. The translating includes adding initialization logic for each of the number of global storage objects. The initialization logic includes generating private copies of each of the number of global storage objects during execution of the second source code. The initialization logic also includes generating at least one cache object during the execution of the second source code, wherein the private copies of each of the number of global storage objects are accessed through the at least one cache object during execution of the second source code.
    Type: Application
    Filed: September 28, 2001
    Publication date: April 3, 2003
    Inventors: Paul M. Petersen, Sanjiv M. Shah, David K. Poulsen
  • Patent number: 6286130
    Abstract: A software-implemented method for validating the correctness of parallel computer programs, written in various programming languages, with respect to these programs' corresponding sequential computer programs. Validation detects errors that could cause parallel computer programs to behave incorrectly or to produce incorrect results, and is accomplished by transforming these parallel computer programs under the control of a general purpose computer and sequentially executing the resulting transformed programs. The validation method is system-independent and is portable across various computer architectures and platforms since validation is accomplished via program transformation; thus, the method does not depend on the features of a particular hardware architecture or configuration, operating system, compiler, linker, or thread environment. The input to the validation method is a parallel computer program.
    Type: Grant
    Filed: August 5, 1997
    Date of Patent: September 4, 2001
    Assignee: Intel Corporation
    Inventors: David K. Poulsen, Paul M. Petersen, Sanjiv M. Shah
  • Patent number: 5812852
    Abstract: A software-implemented method for dynamically and statically privatizing global storage objects in parallel computer programs written in various programming languages. Privatization is accomplished via transformation of these parallel computer programs under the control of a general purpose computer. The privatization method is system-independent and is portable across various computer architectures and platforms since privatization is accomplished via program transformation; thus, the method does not depend on the features of a particular hardware architecture or configuration, operating system, compiler, linker, or thread environment. The inputs to the method are a parallel computer program, comprising parallel regions of execution and global storage objects, and a privatization specification describing the global storage objects to be privatized and the particular parallel regions, and manner, in which each of these objects is to be privatized.
    Type: Grant
    Filed: November 14, 1996
    Date of Patent: September 22, 1998
    Assignee: Kuck & Associates, Inc.
    Inventors: David K. Poulsen, Paul M. Petersen, Sanjiv M. Shah