fi_mrail(7)
okay so bestie, welcome to fi_mrail(7) from Libfabric v2.5.1 β the Multi-Rail Utility Provider. itβs literally here to let you use multiple network ports (rails) at once, and itβs giving main character energy for bandwidth. buckle up π
β¨ NAME β¨
fi_mrail β The Multi-Rail Utility Provider. periodt.
π OVERVIEW π
The mrail provider (ofi_mrail) is an utility provider that layers over an underlying provider to enable the use of multiple network ports (rails). This increases the total available bandwidth of an underlying provider. Current status of mrail provider? experimental β not all libfabric features are supported and performance is not guaranteed. no cap, read that again π
π§ REQUIREMENTS π§
Requirements for underlying provider
mrail provider requires the underlying provider to support these capabilities / modes:
- Buffered receive (
FI_BUFFERED_RECV) FI_SOURCEFI_AV_TABLE
Requirements for applications
Applications need to:
- Support
FI_MR_RAWMR mode bit to make use ofFI_RMAcapability. - Set
FI_OFI_MRAIL_ADDRenv variable (see RUNTIME PARAMETERS section below).
π SUPPORTED FEATURES π
Endpoint types
The provider supports only FI_EP_RDM. thatβs the one, bestie π
Endpoint capabilities
The following data transfer interface is supported: FI_MSG, FI_TAGGED, FI_RMA.
LIMITATIONS
Limitations of the underlying provider may show up as that of mrail provider. mrail provider doesnβt allow pass-through of any mode bits to the underlying provider. so donβt try it π
Unsupported features
The following are the major libfabric features that are not supported. Any other feature not listed in βSupported featuresβ can be assumed as unsupported.
FI_ATOMIC- Scalable endpoints
- Shared contexts
FABRIC_DIRECT- Multicast
- Triggered operations
lowkey if itβs not in the supported list, assume itβs a no. π
π₯ FUNCTIONALITY OVERVIEW π₯
For messages (FI_MSG, FI_TAGGED), the provider uses different policies to send messages over one or more rails based on message size (See FI_OFI_MRIAL_CONFIG in the RUNTIME PARAMETERS section). Ordering is guaranteed through the use of sequence numbers. π’
For RMA, the data is striped equally across all rails. π
π RUNTIME PARAMETERS π
The ofi_mrail provider checks for the following environment variables.
FI_OFI_MRAIL_ADDRβ Comma delimited list of individual rail addresses. Each address can be an address inFI_ADDR_STRformat, a host name, an IP address, or a netdev interface name.FI_OFI_MRAIL_ADDR_STRCβ Deprecated. Replaced byFI_OFI_MRAIL_ADDR.FI_OFI_MRAIL_CONFIGβ Comma separated list of<max_size>:<policy>pairs, sorted in ascending order of<max_size>. Each pair tells you the rail sharing policy to be used for messages up to the size<max_size>and not covered by all previous pairs. The value of<policy>can befixed(a fixed rail is used),round-robin(one rail per message, selected in round-robin fashion), orstriping(striping across all the rails). The default configuration is16384:fixed,ULONG_MAX:striping. The valueULONG_MAXcan be input as-1.
πΈ SEE ALSO πΈ
fabric(7), fi_provider(7), fi_getinfo(3)
π AUTHORS π
OpenFabrics.
thatβs the whole fi_mrail(7) vibe π
β straight from the Libfabric Programmerβs Manual, dated 2024-12-10, Libfabric v2.5.1. bye bestie π«Ά
π¦ where this page comes from
- centos-stream 10: libfabric-devel 2.5.1-1.el10 Β· BSD-2-Clause OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms