Patent ID: 9501265
Filing Date: 2016-11-22
CPC Classification: G06F

Claim Text:
1. A method of developing collective operations for a parallel computer comprising a plurality of compute nodes, the method comprising: presenting, by a collective development tool, a graphical user interface (‘GUI’) to a collective developer; receiving, by the collective development tool from the collective developer through the GUI, a selection of a plurality of collective primitives; receiving, by the collective development tool from the collective developer through the GUI, a specification of a serial order of the collective primitives; receiving, by the collective development tool from the collective developer through the GUI, a specification of an input buffer and an output buffer for each collective primitive; and wherein receiving, by the collective development tool from the collective developer through the GUI, the selection of the plurality of collective primitives further comprises: detecting, by the collective development tool through the GUI, user input device activity that indicates a selection of one or more graphical icons related to the collective primitives; generating, by a collective development tool in dependence upon the selection of the plurality of graphical icons related to collective primitives, the serial order of the plurality of collective primitives specifying an order of execution of the plurality of collective primitives, and the specification of an input buffer and an output buffer for each collective primitive, executable code that carries out the collective operation specified by the collective primitives, including: converting the serial order of the collective primitives into an execution order of the plurality of collective primitive modules of computer program instructions; inserting, into an executable file, the plurality of collective primitive modules of computer program instructions in the execution order; and inserting, into the executable file, one or more glue modules between the plurality of collective primitive modules, wherein each glue module is a module of computer program instructions configured to be inserted between two collective primitive modules for the purpose of linking the two collective primitive modules during execution of the collective operation, wherein each glue module is selected in dependence upon attributes of the parallel computer upon which the collective operation is to be carried out, including respective collective primitives, respective network topologies, compute node architecture, and number of compute nodes in a computational group.