Patent ID: 8161480

Claim:
A method for performing an allreduce operation using shared memory, the method comprising: receiving, by at least one of a plurality of processing cores on a compute node, an instruction to perform an allreduce operation; establishing, by the core that received the instruction, a job status object for specifying a plurality of shared memory allreduce work units, the plurality of shared memory allreduce work units together performing the allreduce operation on the compute node; determining, by an available core on the compute node, a next shared memory allreduce work unit in the job status object; and performing, by that available core on the compute node, that next shared memory allreduce work unit; providing, by each available core to each other available core, a read-only window into a local memory buffer containing an array to be reduced by the allreduce operation; and updating, by each available core on the compute node, the job status object with a descriptor of the buffer into which the read-only window is provided.