This section describes basic concepts in LCI.
More...
|
enum class | lci::errorcode_t {
lci::errorcode_t::done_min
, lci::errorcode_t::done
, lci::errorcode_t::done_backlog
, lci::errorcode_t::done_max
,
lci::errorcode_t::posted_min
, lci::errorcode_t::posted
, lci::errorcode_t::posted_backlog
, lci::errorcode_t::posted_max
,
lci::errorcode_t::retry_min
, lci::errorcode_t::retry
, lci::errorcode_t::retry_init
, lci::errorcode_t::retry_lock
,
lci::errorcode_t::retry_nopacket
, lci::errorcode_t::retry_nomem
, lci::errorcode_t::retry_backlog
, lci::errorcode_t::retry_max
,
lci::errorcode_t::fatal
} |
| The actual error code for LCI API functions. More...
|
|
enum class | lci::net_opcode_t {
lci::net_opcode_t::SEND
, lci::net_opcode_t::RECV
, lci::net_opcode_t::WRITE
, lci::net_opcode_t::REMOTE_WRITE
,
lci::net_opcode_t::READ
} |
| The Type of network communication operation codes. More...
|
|
enum class | lci::broadcast_algorithm_t { lci::broadcast_algorithm_t::none
, lci::broadcast_algorithm_t::direct
, lci::broadcast_algorithm_t::tree
, lci::broadcast_algorithm_t::ring
} |
| The type of broadcast algorithm. More...
|
|
enum class | lci::reduce_scatter_algorithm_t { lci::reduce_scatter_algorithm_t::none
, lci::reduce_scatter_algorithm_t::direct
, lci::reduce_scatter_algorithm_t::tree
, lci::reduce_scatter_algorithm_t::ring
} |
| The type of reduce scatter algorithm. More...
|
|
enum class | lci::allreduce_algorithm_t { lci::allreduce_algorithm_t::none
, lci::allreduce_algorithm_t::direct
, lci::allreduce_algorithm_t::tree
, lci::allreduce_algorithm_t::ring
} |
| The type of allreduce algorithm. More...
|
|
enum class | lci::direction_t { lci::direction_t::OUT
, lci::direction_t::IN
} |
| The enum class of comunication direction. More...
|
|
enum class | lci::matching_entry_type_t : unsigned { lci::matching_entry_type_t::send = 0
, lci::matching_entry_type_t::recv = 1
} |
| The type of matching entry. More...
|
|
enum class | lci::matching_policy_t : unsigned {
lci::matching_policy_t::none = 0
, lci::matching_policy_t::rank_only = 1
, lci::matching_policy_t::tag_only = 2
, lci::matching_policy_t::rank_tag = 3
,
lci::matching_policy_t::max = 4
} |
| Enum class for matching policy. More...
|
|
enum class | lci::comp_semantic_t { lci::comp_semantic_t::buffer
, lci::comp_semantic_t::network
} |
| The enum class of completion semantic. More...
|
|
This section describes basic concepts in LCI.
◆ comp_handler_t
Function Signature for completion handler.
◆ graph_edge_run_cb_t
Initial value: void (*)(
status_t status,
void* src_value,
void* dst_value)
The type of the completion desciptor for a posted communication.
Definition lci.hpp:604
The function signature for a edge funciton in the completion graph.
◆ graph_node_free_cb_t
The function signature for a callback that will be triggered when the node was freed.
◆ graph_node_run_cb_t
The function signature for a node function in the completion graph.
The function should return true if the node is considered completed.
◆ graph_node_t
The node type for the completion graph.
◆ matching_entry_key_t
The type of matching engine entry key.
◆ matching_entry_val_t
The type of matching engine entry value.
◆ net_imm_data_t
The type of network-layer immediate data field.
The immediate data field is used to carry small data in the network
◆ rcomp_t
The type of remote completion handler.
A remote completion handler is used to address a completion object on a remote process.
◆ reduce_op_t
Initial value: void (*)(const void* left, const void* right, void* dst,
size_t n)
The user-defined reduction operation.
right
and dst
can be the same pointer.
◆ tag_t
◆ allreduce_algorithm_t
The type of allreduce algorithm.
Enumerator |
---|
none | automatically select the best algorithm
|
direct | direct algorithm
|
tree | reduce followed by broadcast
|
ring | ring algorithm
|
◆ broadcast_algorithm_t
The type of broadcast algorithm.
Enumerator |
---|
none | automatically select the best algorithm
|
direct | direct algorithm
|
tree | binomial tree algorithm
|
ring | ring algorithm
|
◆ comp_semantic_t
The enum class of completion semantic.
The completion semantic is used to define when a posted communication with OUT direction is considered as completed. For IN direction, a communication is considered as completed when the data has been written into the local buffer.
Enumerator |
---|
buffer | When the local buffers can be written or freed
|
network | When the associated network-layer operation is completed.
|
◆ direction_t
The enum class of comunication direction.
Enumerator |
---|
OUT | push data out, such as send/active message/put
|
IN | pull data in, such as receive/get
|
◆ errorcode_t
The actual error code for LCI API functions.
The error code is used to indicate the status of certain LCI operations. It has three categories: done, posted, and retry. The done category indicates that the operation has been completed. The posted category indicates that the operation is posted and the completion will be reported later. The retry category indicates that the operation temporarily failed and the user should retry the operation. Within each category, there are multiple sub error codes offering additional information.
Enumerator |
---|
done_min | boundary marker
|
done | the operation has been completed
|
done_backlog | the operation has been pushed into a backlog queue and can be considered as completed by users
|
done_max | boundary marker
|
posted_min | boundary marker
|
posted | the operation is posted and the completion will be reported later
|
posted_backlog | the operation has been pushed into a backlog queue and can be considered as posted by users
|
posted_max | boundary marker
|
retry_min | boundary marker
|
retry | the operation temporarily failed and the user should retry the operation
|
retry_init | the default value for the error code
|
retry_lock | the operation temporarily failed due to lock contention
|
retry_nopacket | the operation temporarily failed due to the lack of packets
|
retry_nomem | the operation temporarily failed because the network queue is full
|
retry_backlog | the operation temporarily failed because the backlog queue is not empty
|
retry_max | boundary marker
|
fatal | placeholder. Not used for now. All fatal error are reported through C++ std::runtime_error.
|
◆ matching_entry_type_t
The type of matching entry.
A matching entry can be an incoming send or a posted receive.
Enumerator |
---|
send | incoming send
|
recv | posted receive
|
◆ matching_policy_t
Enum class for matching policy.
Enumerator |
---|
none | match any send with any receive
|
rank_only | match by rank
|
tag_only | match by tag
|
rank_tag | match by rank and tag
|
max | boundary marker
|
◆ net_opcode_t
The Type of network communication operation codes.
Enumerator |
---|
SEND | send
|
RECV | receive
|
WRITE | write
|
REMOTE_WRITE | remote write
|
READ | read
|
◆ reduce_scatter_algorithm_t
The type of reduce scatter algorithm.
Enumerator |
---|
none | automatically select the best algorithm
|
direct | direct algorithm
|
tree | reduce followed by broadcast
|
ring | ring algorithm
|
◆ graph_add_node_op()
Add a functor as a node to the completion graph.
- Template Parameters
-
T | The type of the functor. |
- Parameters
-
graph | The completion graph. |
op | The functor to be added. |
- Returns
- The node added to the completion graph.
◆ ANY_SOURCE
const int lci::ANY_SOURCE = -1 |
Special rank value for any-source receive.
◆ ANY_TAG
Special tag value for any-tag receive.
◆ COMP_NULL
Special completion object setting allow_posted
to false.
◆ COMP_NULL_EXPECT_DONE
const comp_t lci::COMP_NULL_EXPECT_DONE |
Initial value:=
Completion object implementation base type.
Definition lci.hpp:673
The actual implementation for RESOURCE comp.
Definition lci_binding_pre.hpp:128
Deprecated. Same as COMP_NULL.
◆ COMP_NULL_EXPECT_DONE_OR_RETRY
const comp_t lci::COMP_NULL_EXPECT_DONE_OR_RETRY |
Initial value:
Deprecated. Same as COMP_NULL_RETRY.
◆ COMP_NULL_RETRY
Special completion object setting allow_posted
and allow_retry
to false.
◆ GRAPH_NODE_DUMMY_CB
A dummy callback function for a graph node.
This function can be used as a placeholder for a graph node that does not perform any operation.
◆ GRAPH_START
The start node of the completion graph.
◆ MR_DEVICE
const mr_t lci::MR_DEVICE = mr_t(reinterpret_cast<void*>(0x1)) |
A special mr_t value for device memory.
◆ MR_HOST
A special mr_t value for host memory.
◆ MR_UNKNOWN
const mr_t lci::MR_UNKNOWN = mr_t(reinterpret_cast<void*>(0x2)) |
A special mr_t value for unknown memory. LCI will detect the memory type automatically.
◆ RMR_NULL
The NULL value of rkey_t.