Describes the topology of the processes of a gang. More...
Public Member Functions | |
topology (void) | |
Creates a new topology when there is only one process. | |
topology (gang_description const &desc) | |
Creates a new topology based on the gang_description and the current process id. More... | |
id | get_id (void) const noexcept |
id | root_id (void) const noexcept |
id | parent_id (void) const noexcept |
container_type const & | children (void) const noexcept |
auto | children_and_root (void) const noexcept -> decltype(boost::join(m_children, boost::counting_range(m_root,(m_root+1)))) |
bool | is_root (void) const noexcept |
bool | is_leaf (void) const noexcept |
Public Types | |
using | id = process_id |
using | size_type = gang_description::size_type |
using | container_type = std::vector< id > |
Describes the topology of the processes of a gang.
This class offers a partial view of the topology. Each process knows only the root of the topology, its parent and its children to keep it scalable.
stapl::runtime::topology::topology | ( | gang_description const & | desc | ) |
Creates a new topology based on the gang_description and the current process id.
This function calls gang_description::get_process_id_index() to figure out the index of myid
in the set of processes that define the gang.