Programming in a multiprocessor environment
AssigneeTilera Corporation
InventorsPatrick Robert Griffin, Walter Lee, Anant Agarwal, David Wentzlaff
Life of this patent
Estimating the term…
Abstract
Programming in a multiprocessor environment includes accepting a program specification that defines a plurality of processing modules and one or more channels for sending data between ports of the modules, mapping each of the processing modules to run on a set of one or more processing engines of a network of interconnected processing engines, and for at least some of the channels, assigning one or more elements of one or more processing engines in the network to the channel for sending data between respective processing modules.
Claims40
A method for programming in a multiprocessor environment, the method comprising:
- accepting by a computer a program specification that defines a plurality of processing modules and plural channels for sending data between ports of the modules with a first portion of the channels mapped at compile time and a second portion of the channels mapped at runtime and at least one of the plural channels being bi-directional and at least a different one of the channels being unidirectional;
- mapping by the computer the first portion the processing modules of the program specification to run on a set of one or more processing engines of a network of interconnected processing engines and implementing for the second portion of the channels mapped at runtime a channel library routine that accesses a channel library that includes functional elements for defining the channels that are mapped at runtime to a set of physical paths in the network of interconnected processing engines;
- and
- assigning by the computer according to the program specification and mapping to the one or more processing engines, the channels to one or more elements of the one or more of the interconnected processing engines to send data between respective processing modules.
A computer program product embodied on a computer-readable memory device, storing instructions for generating instructions to be executed in a network of interconnected processing engines, the computer program comprising instructions for causing a computer system to:
- accept a program specification that defines a plurality of processing modules and plural channels for sending data between ports of the modules, with a first portion of the channels mapped at compile time and a second portion of the channels mapped at runtime and at least one of the plural channels being bi-directional and at least a different one of the channels being unidirectional;
- map the first portion of the processing modules of the program specification to run on a set of one or more of the processing engines and implementing for the second portion of the channels mapped at runtime a channel library routine that accesses a channel library that includes functional elements for defining the channels that are mapped at runtime;
- and
- assign according to the program specification and the mappings the channels to one or more elements of the one or more of the interconnected processing engines to send data between respective processing modules.
Dependencies are inferred from the claim text.