Patents by Inventor Raul Silvera

Raul Silvera 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: 9542169
    Abstract: Generating SIMD code from code statements that include non-isomorphic code statements. Code statements are received, each code statement has one or more operators in a respective operator order and each operator has a type and associated operands. At least two code statements among the code statements received have an operator of the same type in a different operator order position. A first operator order position is identified for the operators of the same type in each of the code statements. For each of the code statements, code is generated for operators and their associated operands having operator order positions preceding the first operator order positions. SIMD code is generated at least based on the identified first operator order positions, the corresponding operator type, and the operands associated with the operator type at the identified operator order positions.
    Type: Grant
    Filed: August 5, 2015
    Date of Patent: January 10, 2017
    Assignee: International Business Machines Corporation
    Inventors: Ehsan Amiri, Christopher M. Barton, Denis M. Palmeiro, Raul Silvera
  • Patent number: 9501268
    Abstract: Generating SIMD code from code statements that include non-isomorphic code statements. Code statements are received, each code statement has one or more operators in a respective operator order and each operator has a type and associated operands. At least two code statements among the code statements received have an operator of the same type in a different operator order position. A first operator order position is identified for the operators of the same type in each of the code statements. For each of the code statements, code is generated for operators and their associated operands having operator order positions preceding the first operator order positions. SIMD code is generated at least based on the identified first operator order positions, the corresponding operator type, and the operands associated with the operator type at the identified operator order positions.
    Type: Grant
    Filed: December 23, 2013
    Date of Patent: November 22, 2016
    Assignee: International Business Machines Corporation
    Inventors: Ehsan Amiri, Christopher M. Barton, Denis M. Palmeiro, Raul Silvera
  • Publication number: 20150339110
    Abstract: Generating SIMD code from code statements that include non-isomorphic code statements. Code statements are received, each code statement has one or more operators in a respective operator order and each operator has a type and associated operands. At least two code statements among the code statements received have an operator of the same type in a different operator order position. A first operator order position is identified for the operators of the same type in each of the code statements. For each of the code statements, code is generated for operators and their associated operands having operator order positions preceding the first operator order positions. SIMD code is generated at least based on the identified first operator order positions, the corresponding operator type, and the operands associated with the operator type at the identified operator order positions.
    Type: Application
    Filed: August 5, 2015
    Publication date: November 26, 2015
    Inventors: Ehsan Amiri, Christopher M. Barton, Denis M. Palmeiro, Raul Silvera
  • Publication number: 20150178056
    Abstract: Generating SIMD code from code statements that include non-isomorphic code statements. Code statements are received, each code statement has one or more operators in a respective operator order and each operator has a type and associated operands. At least two code statements among the code statements received have an operator of the same type in a different operator order position. A first operator order position is identified for the operators of the same type in each of the code statements. For each of the code statements, code is generated for operators and their associated operands having operator order positions preceding the first operator order positions. SIMD code is generated at least based on the identified first operator order positions, the corresponding operator type, and the operands associated with the operator type at the identified operator order positions.
    Type: Application
    Filed: December 23, 2013
    Publication date: June 25, 2015
    Applicant: International Business Machines Corporation
    Inventors: Ehsan Amiri, Christopher M. Barton, Denis M. Palmeiro, Raul Silvera
  • Patent number: 8527962
    Abstract: A method for promotion of a child procedure in a software application for a heterogeneous architecture, wherein the heterogeneous architecture comprises a first architecture type and a second architecture type, comprises inserting a parameter representing a parallel frame pointer to a parent procedure of the child procedure into the child procedure; and modifying a reference in the child procedure to a stack variable of the parent procedure to include an indirect access to the parent procedure via the parallel frame pointer.
    Type: Grant
    Filed: March 10, 2009
    Date of Patent: September 3, 2013
    Assignee: International Business Machines Corporation
    Inventors: Raul Silvera, Ettore Tiotto, Guansong Zhang
  • Publication number: 20100235811
    Abstract: A method for promotion of a child procedure in a software application for a heterogeneous architecture, wherein the heterogeneous architecture comprises a first architecture type and a second architecture type, comprises inserting a parameter representing a parallel frame pointer to a parent procedure of the child procedure into the child procedure; and modifying a reference in the child procedure to a stack variable of the parent procedure to include an indirect access to the parent procedure via the parallel frame pointer.
    Type: Application
    Filed: March 10, 2009
    Publication date: September 16, 2010
    Applicant: International Business Machines Corporation
    Inventors: Raul Silvera, Ettore Tiotto, Guansong Zhang
  • Publication number: 20070240137
    Abstract: A method of compiling source code. The method includes converting pointer-based access in the source code to array-based access in the source code in a first pass compilation of the source code. Information is collected for objects in the source code during the first pass compilation. Candidate objects in the source code are selected based on the collected information to form selected candidate objects. Global stride variables are created for the selected candidate objects. Memory allocation operations are updated for the selected candidate objects in a second pass compilation of the source code. Multiple-level pointer indirect references are replaced in the source code with multi-dimensional array indexed references for the selected candidate objects in the second pass compilation of the source code.
    Type: Application
    Filed: April 11, 2006
    Publication date: October 11, 2007
    Inventors: Roch Archambault, Shimin Cui, Yaoqing Gao, Raul Silvera
  • Publication number: 20070174819
    Abstract: A computer implemented method, system, and computer usable program code for simplifying compiler-generated software code by creating a stub routine for checking storage contiguity. A stub routine is generated for a subroutine. The stub routine is used to determine whether data is contiguous for the subroutine. A subroutine call in the code is replaced with a stub routine call for the stub routine. The subroutine call has at least one argument. The stub routine call includes each argument for the subroutine call. The code is executed. The stub routine is called by the stub routine call to determine whether data is contiguous for the subroutine.
    Type: Application
    Filed: January 23, 2006
    Publication date: July 26, 2007
    Inventors: Huiwen Li, Raul Silvera
  • Publication number: 20070169057
    Abstract: A computer implemented method, computer usable program code, and a system for parallelizing a loop. A parameter that will be used to limit parallelization of the loop is identified to limit parallelization of the loop. The parameter specifies a minimum number of loop iterations that a thread should execute. The parameter can be adjusted based on a parallel performance factor. A parallel performance factor is a factor that influences the performance of parallel code. A number of threads from a plurality of threads is selected for processing iterations of the loop based on the parameter. The number of threads is selected prior to execution of the first iteration of the loop.
    Type: Application
    Filed: December 21, 2005
    Publication date: July 19, 2007
    Inventors: Raul Silvera, Priya Unnikrishnan, Guansong Zhang
  • Publication number: 20070089097
    Abstract: An optimization mechanism in a compiler performs region-based code straightening to line up frequently executed basic blocks together based on profile directed feedback. The region-based code straightening lines up the basic blocks in order of execution sequence, but does not move infrequently executed basic blocks too far away from predecessors. As such, code locality is maintained, thus reducing instruction cache misses.
    Type: Application
    Filed: October 13, 2005
    Publication date: April 19, 2007
    Inventors: Liangxiao Hu, Mark Mendell, Raul Silvera
  • Publication number: 20060048103
    Abstract: Inter-procedural strength reduction is provided by a mechanism of the present invention to improve data cache performance. During a forward pass, the present invention collects information of global variables and analyzes the usage pattern of global objects to select candidate computations for optimization. During a backward pass, the present invention remaps global objects into smaller size new global objects and generates more cache efficient code by replacing candidate computations with indirect or indexed reference of smaller global objects and inserting store operations to the new global objects for each computation that references the candidate global objects.
    Type: Application
    Filed: August 30, 2004
    Publication date: March 2, 2006
    Applicant: International Business Machines Corporation
    Inventors: Roch Archambault, Shimin Cui, Yaoqing Gao, Raul Silvera
  • Publication number: 20060048119
    Abstract: A method and system of auto parallelization of zero-trip loops that substitutes a nested basic linear induction variable by exploiting a parallelizing compiler is provided. Provided is a use of a max{0,N} variable for loop iterations in case of no information is known about the value of N, for a typical loop iterating from 1 to N, in which N is the loop invariant. For the nested basic induction variables, an induction variable substitution process is applied to the nested loops starting from the innermost loop to the outermost one. Then a removal of the max operator afterwards through a copy propagation pass of the IBM compiler is provided. In doing so, the loop dependency on the induction variable is eliminated and an opportunity for a parallelizing compiler to parallel the outermost loop is provided.
    Type: Application
    Filed: August 26, 2004
    Publication date: March 2, 2006
    Applicant: International Business Machines Corporation
    Inventors: Zhixing Ren, Raul Silvera, Guansong Zhang
  • Publication number: 20060048147
    Abstract: A method, system and apparatus for barrier synchronization using distributed counters and a centralized sensor. The system can include multiple distributed counters coupled to corresponding application processes in a computing application. The barrier synchronization system further can include a centralized sensor coupled for observation by the application processes. Preferably, the application processes can be separate threads of execution in the computing application. The barrier synchronization centralized sensor yet further can be managed by a designated master one of the application processes. Moreover, preferably the system further can include a backup sensor coupled for observation by the application processes and managed by the designated master one of the application processes.
    Type: Application
    Filed: August 30, 2004
    Publication date: March 2, 2006
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Raul Silvera, Kevin Stoodley, Guansong Zhang
  • Publication number: 20060048117
    Abstract: Inter-procedural strength reduction is provided by a mechanism of the present invention to optimize software program. During a forward pass, the present invention collects information of global variables and analyzes the information to select candidate computations for optimization. During a backward pass, the present invention replaces costly computations with less costly or weaker computations using pre-computed values and inserts store operations of new global variables to pre-compute the costly computations at definition points of the global variables used in the costly computations.
    Type: Application
    Filed: August 30, 2004
    Publication date: March 2, 2006
    Applicant: International Business Machines Corporation
    Inventors: Roch Archambault, Shimin Cui, Raul Silvera
  • Publication number: 20050080981
    Abstract: A data processing system is adapted to execute at least one workshare construct in a parallel region. The data processing system uses at least one thread for executing a corresponding subsection of the workshare construct and provides control blocks for managing corresponding workshare constructs in the parallel region. A method of managing the control blocks comprises: adding an array of control blocks to a control block queue; assigning control blocks in the initialized array to corresponding workshare constructs in the parallel region until a barrier is reached; and waiting at the barrier for all threads in the parallel region to complete their corresponding subsections and then resetting the control block to the beginning of the control block queue. Also provided are a computer program product and a data processing system for implementing the method.
    Type: Application
    Filed: May 13, 2004
    Publication date: April 14, 2005
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Roch Archambault, Raul Silvera, Guansong Zhang
  • Publication number: 20050010729
    Abstract: A system and method for lock caching for compound atomic operations (i.e. a read or write operation to more than one 4-byte word) on shared memory is provided. In a computer system including a memory shared among a plurality of processing entities, for example, multiple threads, a method of performing compound atomic operations comprises providing a pool of locks for synchronizing access to the memory; assigning the locks among the plurality of entities to minimize lock contention; and performing the compound atomic operations using the assigned locks. Each lock may be assigned in accordance with an address of the shared memory from the processing entity's compound atomic operations. Assigning locks may be performed in a manner to minimize concurrent atomic updates to the same or overlapping portions of the shared memory.
    Type: Application
    Filed: June 8, 2004
    Publication date: January 13, 2005
    Inventors: Raul Silvera, Robert Blainey