opa2rm(8)

opa2rm πŸ’…βœ¨

okay bestie, pull up a chair because this one is literally the glow-up your fabric config has been waiting for 🫢

This is the opa2rm page from the IFSFFCLIRG manual set β€” section 8, admin commands only, no casuals allowed πŸ‘‘


NAME πŸŽ€

opa2rm

Permits the generation of configuration files for FastFabric or resource managers from a topology xml file. no cap, that's the whole job πŸ’–

When you're using a topology spreadsheet and opaxlattopology to design and prepare for deployment verification of a fabric, opa2rm may be used to generate resource manager configuration from the planned cluster design. Using this approach will allow the resulting configuration files to be complete, even if some nodes in the fabric have not yet been installed or made operational. lowkey iconic β€” you can plan the whole thing before the hardware even shows up πŸ¦‹

Alternatively, opareport -o topology can be used to generate a topology XML file for input to opa2rm. In this case, only the currently present nodes will be included. (so like… vibe check on what actually exists rn, not the dream 😭)

When working with SLURM, the opa2rm -o slurm option should typically be used. This option will generate a SLURM configuration file that lists the hosts directly connected to each switch in a syntax that can be used by SLURM's topology/tree plugin. It also generates a single "fake" switch shown as connecting all the other switches together. This approach allows for SLURM job placement to be improved while avoiding undo overhead in SLURM. This option also allows for topologies that are not a pure fat-tree. slay, flexible πŸ’…

When the configuration is a pure fat tree or oversubscribed fat tree, the opa2rm -o slurmfull option may be used to generate the full description of the fabric, including all intermediate and core switches in the fat tree topology. This option may permit better job placement optimization than the output from the opa2rm -o slurm option. However for larger fabrics, it may also increase the overhead within SLURM. so like… more detail, more overhead, pick your fighter βš–οΈ


Syntax ✨

opa2rm [-v] [-q] -o  output [-g|-u|-t] [-F  point] [-p  prefix] [-s  suffix] topology_input

Options πŸ’œ

  • --help β€” Produces full help text. your lil safety net fr fr 🫢
  • -v, --verbose β€” Specifies verbose output. tell me EVERYTHING, bestie πŸ—£οΈ
  • -q, --quiet β€” Disables progress reports. silence… but make it on purpose πŸ™ˆ
  • -o, --output output β€” Specifies the output type:
    • slurm β€” SLURM tree nodes. Supports a variety of topologies.
    • slurmful β€” SLURM fat tree nodes and ISLs. Only supports pure trees.
    • hosts β€” FastFabric hosts file omitting this host
  • -g, --guid β€” Specifies the output switch GUIDs instead of names. numbers era πŸ”’
  • -u, --underscore β€” Changes spaces in switch names to underscores.
  • -t, --trunc β€” Truncates switch names at first space.

This will treat large Director switches as a single, big switch.

If -g, -u or -t are not specified, the switch name's suffix, after the first space, will be placed at the start of the name. For example, 'core5 Leaf 101' becomes 'Leaf101_core5'. the way it just ✨rearranges✨ your name, obsessed 😭

  • -F, --focus point β€” Specifies the focus area for output. Limits the scope of output to links that match any of the given focus points. tunnel vision, but on purpose πŸ‘‘
  • -p, --prefix prefix β€” Specifies the prefix to prepend to all FI hostnames.
  • -s, --suffix suffix β€” Specifies the suffix to append to all FI hostnames.
  • topology_input β€” Specifies the topology_input file to use. '-' may be used to specify stdin. (yes bestie, you can just pipe it in πŸ’–)

Point Syntax 🧚

  • node:value β€” value is node description (node name).
  • node:value1:port:value2 β€” value1 is node description (node name); value2 is port number.
  • nodepat:value β€” value is glob pattern for node description (node name).
  • nodepat:value1:port:value2 β€” value1 is glob pattern for node description (node name); value2 is port number.
  • nodetype:value β€” value is node type (SW or FI).
  • nodetype:value1:port:value2 β€” value1 is node type (SW or FI); value2 is port number.
  • rate:value β€” value is string for rate (25g, 50g, 75g, 100g).
  • mtucap:value β€” value is MTU size (2048, 4096, 8192, 10240); omits switch mgmt port 0.
  • labelpat:value β€” value is glob pattern for cable label.
  • lengthpat:value β€” value is glob pattern for cable length.
  • cabledetpat:value β€” value is glob pattern for cable details.
  • linkdetpat:value β€” value is glob pattern for link details.
  • portdetpat:value β€” value is glob pattern for port details to value.

Examples 🌸

copy these, they ate πŸ”₯

opa2rm -o slurm topology.xml

opa2rm -o slurm -p 'opa-' topology.xml

opa2rm -o slurm -s '-opa' topology.xml

opa2rm -o slurm -F 'nodepat:compute*' -F 'nodepat:opacore1 *'
topology.xml

opa2rm -o nodes -F 'nodedetpat:compute*' topology.xml

opa2rm -o hosts topology.xml

and that's the whole page bestie, you're officially a resource-manager-config-generating icon πŸ‘‘πŸ’–

this one came to you straight from the IFSFFCLIRG manual set, copyright Copyright(C) 2015-2019 Intel Corporation, and the vibes are dated accordingly. stay slaying, drink water, and always read your topology xml before you feed it to anything πŸŽ€βœ¨πŸ¦‹