Hermes  0.9.5-beta
Hierarchical Distributed I/O Buffering System
hermes::CommunicationContext Struct Reference

#include <communication.h>

Public Attributes

BarrierFunc world_barrier
 
BarrierFunc sub_barrier
 
FinalizeFunc finalize
 
void * state
 
i32 world_proc_id
 
i32 sub_proc_id
 
i32 world_size
 
i32 hermes_size
 
i32 app_size
 
i32 num_nodes
 
i32 node_id
 
ProcessKind proc_kind
 
bool first_on_node
 

Detailed Description

A structure to represent MPI communication context

Member Data Documentation

◆ world_barrier

BarrierFunc hermes::CommunicationContext::world_barrier

MPI communication world barrier

◆ sub_barrier

BarrierFunc hermes::CommunicationContext::sub_barrier

MPI communication subset barrier

◆ finalize

FinalizeFunc hermes::CommunicationContext::finalize

MPI communication finalize

◆ state

void* hermes::CommunicationContext::state

Details relative to the backing communciation implementation.

◆ world_proc_id

i32 hermes::CommunicationContext::world_proc_id

A unique identifier for each rank, relative to all ranks.

◆ sub_proc_id

i32 hermes::CommunicationContext::sub_proc_id

a unique identifier for each rank, releative to each ProcessKind.

◆ world_size

i32 hermes::CommunicationContext::world_size

The total number of ranks.

◆ hermes_size

i32 hermes::CommunicationContext::hermes_size

The total number of Hermes cores. Currently this is only defined on ranks that have ProcessKind::kHermes

◆ app_size

i32 hermes::CommunicationContext::app_size

The total number of application cores. Currently this is only defined on ranks that have ProcessKind::kApp

◆ num_nodes

i32 hermes::CommunicationContext::num_nodes

The total number of nodes.

◆ node_id

i32 hermes::CommunicationContext::node_id

A unique index for each node. Starts at 1, not 0.

◆ proc_kind

ProcessKind hermes::CommunicationContext::proc_kind

Distinguishes between Hermes ranks and application ranks.

◆ first_on_node

bool hermes::CommunicationContext::first_on_node

True if this rank is the lowest numbered rank on the current node. Lowest is not relative to all ranks, but to each ProcessKind. This is useful for operations that only need to happen once per node.


The documentation for this struct was generated from the following file: