Programmatic iteration scheduling for parallel processors
AssigneeHewlett-Packard Company
InventorsRobert S. Schreiber, Bantwal Ramakrishna Rau, Alain Darte
Life of this patent
Estimating the term…
Loading patent…
AssigneeHewlett-Packard Company
InventorsRobert S. Schreiber, Bantwal Ramakrishna Rau, Alain Darte
Estimating the term…
A parallel compiler maps iterations of a nested loop to processor elements in a parallel array and schedules a start time for each iteration such that the processor elements are fully utilized without being overloaded. The compiler employs an efficient and direct method for generating a set of iteration schedules that satisfy the following constraints: no more than one iteration is in initiated per processor element in a specified initiation interval, and a new iteration begins on each processor element nearly every initiation interval. Since the iteration scheduling method efficiently generates a set of schedules, the compiler can select an iteration schedule that is optimized based on other criteria, such as memory bandwidth, local memory size of each processor element, estimated hardware cost of each processor element, etc. The iteration scheduling method is useful for compilers where the underlying architecture is fixed, as well as for an automated processor array synthesis system where the nested loop is converted into a set of parallel processes for synthesis into a parallel processor array.
A method for determining an iteration schedule for iterations of a nested loop to be executed on an array of processor elements, the method comprising:
A method for determining an iteration schedule for iterations of a nested loop to be executed on an array of processor elements, the method comprising:
A method for determining an iteration schedule for iterations of a nested loop to be executed on an array of processor elements, the method comprising:
A method of generating a conflict-free schedule of iterations mapped to processors by projecting iterations along a null direction to form virtual processors, grouping the virtual processors into rectangular clusters, assigning the rectangular clusters to physical processors and determining a definition of schedules defined as:
Dependencies are inferred from the claim text.