Techniques for specifying and implementing a
software application targeted for execution on a multiprocessor array (MPA). The MPA may include a plurality of
processing elements, supporting memory, and a
high bandwidth interconnection network (IN), communicatively
coupling the plurality of
processing elements and supporting memory. In some embodiments,
software code may specify one or more
cell definitions that include: program instructions
executable to perform a function and one or
more language constructs. The
software code may further instantiate first, second, and third
cell instances, each of which is an instantiation of one of the one or more
cell definitions, where the instantiation includes configuration of the one or
more language constructs such that: the first and second cell instances communicate via respective communication ports and the first and second cell instances are included in the third cell instance.