×

Performing synchronized collective operations over multiple process groups

  • US 9,665,531 B2
  • Filed: 06/13/2012
  • Issued: 05/30/2017
  • Est. Priority Date: 06/13/2012
  • Status: Active Grant
First Claim
Patent Images

1. An apparatus comprising:

  • at least one processor; and

    a computer readable non-signal storage medium having code stored therewith, the code being executable by the at least one processor and comprising;

    code that performs synchronized collective communication operations across a plurality of processing groups simultaneously, wherein the plurality of processing groups are connected together in a network architecture selected from the group consisting of;

    2D mesh, 3D torus, and infiniband and wherein each processing group contains a plurality of high performance computing nodes, each of the plurality of nodes occurring in a single processing group, via;

    code that identifies a plurality of characteristics of the network architecture by receiving a call from each of the plurality of nodes, wherein the plurality of characteristics comprises identification of the processing groups via identification of a plurality of sub-communicators and nodes from the plurality of nodes which are connected to each of the plurality of sub-communicators;

    code that constructs, based upon the characteristics of the network architecture, a plurality of communication-efficient bidirectional edge disjoint spanning paths for the plurality of processing groups;

    code that assigns one of the plurality of edge disjoint spanning paths to each processing group, wherein each node is assigned to only one of the plurality of edge disjoint spanning paths and wherein each edge disjoint spanning path comprises only and all nodes assigned to a particular processing group; and

    code that performs synchronized collective communication operations across the plurality of processing groups and reducing communication bottlenecks and preventing contention and interference between communications occurring simultaneously across the plurality of processing groups by routing processing communications for each processing group using only the edge disjoint path assigned to the corresponding processing group.

View all claims
  • 1 Assignment
Timeline View
Assignment View
    ×
    ×