Upgrade MPIs on linux

This commit is contained in:
Bassem Girgis
2025-03-19 12:53:34 -05:00
parent d29ef955f5
commit a6198ecc7b
5503 changed files with 962014 additions and 56494 deletions

View File

@@ -0,0 +1,291 @@
.\" -*- nroff -*-
.\" Copyright © 2013-2021 Inria. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-ANNOTATE "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-annotate \- Modify attributes in a XML topology
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.B hwloc-annotate
[\fIoptions\fR]
\fI<input.xml>\fR
\fI<output.xml>\fR
-- \fI<location1>\fR \fI<location2>\fR ... --
\fI<mode>\fR
\fI<annotation>\fR
.
.B hwloc-annotate
[\fIoptions\fR]
\fI<input.xml>\fR
\fI<output.xml>\fR
\fI<location>\fR
\fI<mode>\fR
\fI<annotation>\fR
.
.PP
Note that hwloc(7) provides a detailed explanation of the hwloc system
and of valid <location> formats;
it should be read before reading this man page.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.
.TP 10
\fB\-\-ri\fR
Remove all info attributes that exist with the same name before adding the new one.
This option is only accepted in "info" mode.
If the info value is omitted, existing infos are replaced with nothing.
.TP
\fB\-\-ci\fR
Clear the existing info attributes in the target objects before annotating.
If no new annotation has to be added after clearing, \fImode\fR should be
set to \fInone\fR.
.TP
\fB\-\-cu\fR
Clear the existing userdata from the target objects.
If nothing else has to be performed after clearing, \fImode\fR should be
set to \fInone\fR.
.
.TP
\fB\-\-cd\fR
Clear the existing distances from the topology.
If nothing else has to be performed after clearing, \fImode\fR should be
set to \fInone\fR.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
hwloc-annotate loads a topology from a XML file, adds some annotations,
and export the resulting topology to another XML file.
The input and output files may be the same.
.
.PP
The annotation may be string info attributes.
This is specified by the \fImode\fR:
.
.TP
.B info <name> <value>
Specifies a new string info attribute whose name is \fIname\fR and
value is \fIvalue\fR.
.TP
.B subtype <subtype>
Specifies that the subtype attribute of the object should now be \fIsubtype\fR.
If an empty string is given, the subtype is removed.
.TP
.B size <size>
Specifies the size of a cache or NUMA node.
The value may be suffixed with \fBkB\fR, \fBMB\fR, \fBGB\fR or \fBTB\fR.
.TP
.B misc <name>
Specifies a new Misc object name.
.TP
.B memattr <name> <flags>
Register a new memory attribute whose name is \fIname\fR and
flags is \fIflags\fR.
\fIlocation\fR is ignored in this mode.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_memattr_register()\fR.
Those names may be substrings of actual flag names as long as a single one matches.
For instance, a value of \fB1\fR (or \fBhigher\fR) means that
highest values are considered best for this attribute.
.TP
.B memattr <name> <initiator> <value>
Set the memory attribute (whose name is \fIname\fR)
from initiator \fIinitiator\fR (either an object or a CPU-set)
to target NUMA node \fIlocation\fR
to value \fIvalue\fR.
If this attribute does not require specific initiators,
\fIinitiator\fR is ignored.
Standard attribute names are \fICapacity\fR, \fILocality\fR,
\fIBandwidth\fR, and \fILatency\fR.
All existing attributes in the input topology may be listed with
$ lstopo --memattrs -i input.xml
.TP
.B cpukind <cpuset> <efficiency> <flags> [<infoname> <infovalue>]
Specifies the kind of CPU for PUs listed in the given cpuset.
\fIlocation\fR is ignored in this mode.
\fIefficiency\fR is an abstracted efficiency value that will enforce
ranking of kinds. It should be -1 if unknown.
\fIflags\fR must be 0 for now.
If \fIinfoname\fR and \fIinfovalue\fR are given and non-empty,
they are added as info attributes to this kind of CPU.
See the function hwloc_cpukinds_register() for details.
.TP
.B distances <filename> [<flags>]
Specifies new distances to be added to the topology using specifications in \fI<filename>\fR.
The optional \fIflags\fR (0 unless specified) corresponds to the flags
given to the function \fBhwloc_distances_set()\fR.
\fIlocation\fR is ignored in this mode.
The real first line of the pointed file must be a integer representing
a distances \fBkind\fR as defined in \fBhwloc/distances.h\fR.
The second line is the number of objects involved in the distances.
The next lines contain one object each.
The next lines contain one distance value each,
or a single line may be given with a integer combination of format \fBx*y\fR or \fBx*y*z\fR.
An optional line before all others may start with \fBname=\fR
to specify the name of the distances structure if any.
.TP
.B distances-transform <name> links
Transform a bandwidth distances structure named <name> into links.
See the documentation of HWLOC_DISTANCES_TRANSFORM_LINKS in hwloc/distances.h for details.
.TP
.B distances-transform <name> merge-switch-ports
When switches appear in the matrix as different ports, merge all of them
into a single port for clarity.
This currently only applies to the NVLinkBandwidth matrix between NVIDIA GPUs.
See the documentation of HWLOC_DISTANCES_TRANSFORM_MERGE_SWITCH_PORTS in hwloc/distances.h for details.
.TP
.B distances-transform <name> transitive-closure
If objects are connected across a switch, apply a transitive-closure
to report the bandwidth through that switch.
This currently only applies to the NVLinkBandwidth matrix between NVIDIA GPUs.
The bandwidth between all pairs of GPUs will be exposed instead of
bandwidths between single GPUs and single NVSwitch ports.
See the documentation of HWLOC_DISTANCES_TRANSFORM_TRANSITIVE_CLOSURE in hwloc/distances.h for details.
.TP
.B distances-transform <name> remove-obj <obj>
Remove the given object from the distances structure named <name>.
.TP
.B distances-transform <name> replace-objs <oldtype> <newtype>
Replace objects of type <oldtype> in distances structure named <name>
with objects of type <newtype> with same locality.
If <oldtype> or <newtype> are not object types, they are assumed
subtypes of OS devices, e.g. "NVML" or "OpenCL".
See the documentation of hwloc_get_obj_with_same_locality() in hwloc/helper.h for details.
If <newtype> is "NULL", objects are removed from the distances structure.
.TP
.B none
No new annotation is added. This is useful when clearing existing attributes.
.
.PP
Annotations may be added to one specific object in the topology,
all of them, or all of a given type.
This is specified by the \fIlocation\fR (see also EXAMPLES below).
Multiple locations may be affected if they are specified between \fB--\fR.
Objects may be specified as location tuples, as explained in hwloc(7).
However hexadecimal bitmasks are not accepted since they may correspond to multiple objects.
.
.PP
.B NOTE:
The existing annotations may be listed with hwloc-info.
.PP
.B NOTE:
It is highly recommended that you read the hwloc(7) overview page
before reading this man page. Most of the concepts described in
hwloc(7) directly apply to the hwloc-annotate utility.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
hwloc-annotate's operation is best described through several examples.
.
.PP
Add an info attribute to all Core and PU objects:
$ hwloc-annotate input.xml output.xml -- Core:all PU:all -- info infoname infovalue
Only add to all Core objects:
$ hwloc-annotate input.xml output.xml Core:all info infoname infovalue
Add a Misc object named "foobar" under the root object of the topology
and modify the input XML directly:
$ hwloc-annotate file.xml file.xml root misc foobar
Add an info attribute to OS device #2 and #3:
$ hwloc-annotate input.xml output.xml os:2-3 info infoname infovalue
Change package objects to green with red text in the lstopo graphical output:
$ hwloc-annotate topo.xml topo.xml package:all info lstopoStyle "Background=#00ff00;Text=#ff0000"
$ lstopo -i topo.xml
Set the memory attribute latency to 123 nanoseconds from the PUs in the first package to the first NUMA node:
$ hwloc-annotate topo.xml topo.xml numanode:0 memattr Latency $(hwloc-calc package:0) 123
Register a memory attribute \fBMyApplicationPerformance\fR
(with flags specifying that it requires an initiator and reports higher values first)
and set its value for initiator CPU-set 0x11 to NUMA node #2 to 2345:
$ hwloc-annotate topo.xml topo.xml ignored memattr MyApplicationPerformance need_init,higher
$ hwloc-annotate topo.xml topo.xml numanode:2 memattr MyApplicationPerformance 0x11 2345
To clarify that NUMA node #0 is DDR while NUMA node #1 is HBM:
$ hwloc-annotate topo.xml topo.xml numa:0 subtype DDR
$ hwloc-annotate topo.xml topo.xml numa:1 subtype HBM
Specify that PU 0-3 and PU 4-7 are of different kinds, and the latter is more efficient:
$ hwloc-annotate topo.xml topo.xml dummy cpukind 0x0f 0 0 CoreType Small
$ hwloc-annotate topo.xml topo.xml dummy cpukind 0xf0 1 0 CoreType Big
Replace NUMA nodes with Packages in the NUMALatency distances matrix,
when they have the exact same locality.
$ hwloc-annotate topo.xml topo.xml -- dummy -- distances-transform NUMALatency replace-objs numanode packages
Remove NUMA node #3 from the NUMALatency distances matrix:
$ hwloc-annotate topo.xml topo.xml -- dummy -- distances-transform NUMALatency remove-obj numa:3
Merge all NVSwitch ports bandwidth information into a single port in the NVLinkBandwidth matrix:
$ hwloc-annotate topo.xml topo.xml -- dummy -- distances-transform NVLinkBandwidth merge-switch-ports
Apply a transitive closure to get inter-GPU bandwidth across NVSwitches in the NVLinkBandwidth matrix:
$ hwloc-annotate topo.xml topo.xml -- dummy -- distances-transform NVLinkBandwidth transitive-closure
.
.\" **************************
.\" Return value section
.\" **************************
.SH RETURN VALUE
Upon successful execution, hwloc-annotate generates the output topology.
The return value is 0.
.
.PP
hwloc-annotate will return nonzero if any kind of error occurs, such as
(but not limited to) failure to parse the command line.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1), hwloc-info(1)
.sp

View File

@@ -0,0 +1,388 @@
.\" -*- nroff -*-
.\" Copyright © 2009-2021 Inria. All rights reserved.
.\" Copyright © 2010 Université of Bordeaux
.\" Copyright © 2009-2020 Cisco Systems, Inc. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-BIND "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-bind \- Launch a command that is bound to specific processors
and/or memory, or consult the binding of an existing program
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.B hwloc-bind
[\fItopology options\fR] [\fIoptions\fR] \fI<location1> [<location2> [...] ] [--] <command> \fR...
.
.PP
Note that hwloc(7) provides a detailed explanation of the hwloc system
and of valid <location> formats;
it should be read before reading this man page.
.\" **************************
.\" Options Section
.\" **************************
.SH TOPOLOGY OPTIONS
.
All topology options must be given before all other options.
.
.TP 10
\fB\-\-no\-smt\fR, \fB\-\-no\-smt=<N>\fR
Only keep the first PU per core before binding.
If \fI<N>\fR is specified, keep the <N>-th instead, if any.
PUs are ordered by physical index during this filtering.
.TP
\fB\-\-restrict\fR <cpuset>
Restrict the topology to the given cpuset.
.TP
\fB\-\-restrict\fR nodeset=<nodeset>
Restrict the topology to the given nodeset, unless \fB\-\-restrict\-flags\fR specifies something different.
.TP
\fB\-\-restrict\-flags\fR <flags>
Enforce flags when restricting the topology.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_topology_restrict()\fR.
Those names may be substrings of actual flag names as long as a single one matches,
for instance \fBbynodeset,memless\fR.
The default is \fB0\fR (or \fBnone\fR).
.TP
\fB\-\-disallowed\fR
Include objects disallowed by administrative limitations.
.TP
\fB\-\-best\-memattr\fR <name>
Select the best NUMA node among the given memory binding set by looking
at the memory attribute given by \fI<name>\fR (or as an index).
If the memory attribute values depend on the initiator, the CPU binding
set is used as the initiator.
Standard attribute names are \fICapacity\fR, \fILocality\fR,
\fIBandwidth\fR, and \fILatency\fR.
All existing attributes in the current topology may be listed with
$ lstopo --memattrs
.TP
\fB\-\-hbm\fR
Only take high bandwidth memory nodes (Intel Xeon Phi MCDRAM)
in account when looking for NUMA nodes in the input locations.
This option must be combined with NUMA node locations,
such as \fI--hbm numa:1\fR for binding on the second HBM node.
It may also be written as \fIhbm:1\fR.
.TP
\fB\-\-no\-hbm\fR
Ignore high bandwidth memory nodes (Intel Xeon Phi MCDRAM)
when looking for NUMA nodes in the input locations.
.
.SH OPTIONS
.
All these options must be given after all topology options above.
.
.TP 10
\fB\-\-cpubind\fR
Use following arguments for CPU binding (default).
.TP
\fB\-\-membind\fR
Use following arguments for memory binding.
If \fB\-\-mempolicy\fR is not also given,
the default policy is bind.
.TP
\fB\-\-mempolicy\fR <policy>
Change the memory binding policy.
The available policies are default, firsttouch, bind, interleave
and nexttouch.
This option is only meaningful when an actual binding is also given
with \fB\-\-membind\fR.
If \fB\-\-membind\fR is given without \fB\-\-mempolicy\fR,
the default policy is bind.
.TP
\fB\-\-get\fR
Report the current bindings.
The output is an opaque bitmask that may be translated into objects with hwloc-calc
(see EXAMPLES below).
.TP
\
When a command is given, the binding is displayed before executing
the command. When no command is given, the program exits after
displaying the current binding.
.TP
\
When combined with \fB\-\-membind\fR, report the memory binding
instead of CPU binding.
.TP
\
No location may be given since no binding is performed.
.TP
\fB\-\-nodeset\fR
Report binding as a NUMA memory node set instead of a CPU set
if \-\-get was given.
This is useful for manipulating CPU-less NUMA nodes since their
cpuset is empty while their nodeset is correct.
.TP
\
Also parse input bitmasks as nodesets instead of cpusets.
.TP
\
When this option is not passed, individual input bitmasks may
still be parsed as nodesets if they are prefixed with \fInodeset=\fR.
.TP
\fB\-e\fR \fB\-\-get\-last\-cpu\-location\fR
Report the last processors where the process ran.
The output is an opaque bitmask that may be translated into objects with hwloc-calc
(see EXAMPLES below).
.TP
\
Note that the result may already be outdated when reported since
the operating system may move the process to other processors
at any time according to the binding.
.TP
\
When a command is given, the last processors is displayed before
executing the command. When no command is given, the program exits
after displaying the last processors.
.TP
\
This option cannot be combined with \fB\-\-membind\fR.
.TP
\
No location may be given since no binding is performed.
.TP
\fB\-\-single\fR
Bind on a single CPU to prevent migration.
.TP
\fB\-\-strict\fR
Require strict binding.
.TP
\fB\-\-pid\fR <pid>
Operate on pid <pid>
.TP
\fB\-\-tid\fR <tid>
Operate on thread <tid> instead of on an entire process.
The feature is only supported on Linux for thread CPU binding,
or for reporting the last processor where the thread ran if \fB\-e\fR was also passed.
.TP
\fB\-p\fR \fB\-\-physical\fR
Interpret input locations with OS/physical indexes instead of logical indexes.
This option does not apply to the output, see \fB\-\-get\fR above.
.TP
\fB\-l\fR \fB\-\-logical\fR
Interpret input locations with logical indexes instead of physical/OS indexes (default).
This option does not apply to the output, see \fB\-\-get\fR above.
.TP
\fB\-\-taskset\fR
Display CPU set strings in the format recognized by the taskset command-line
program instead of hwloc-specific CPU set string format.
This option has no impact on the format of input CPU set strings,
both formats are always accepted.
.TP
\fB\-f\fR \fB\-\-force\fR
Launch the executable even if binding failed.
.TP
\fB\-q\fR \fB\-\-quiet\fR
Hide non-fatal error messages.
It includes locations pointing to non-existing objects,
as well as failure to bind.
This is usually useful in addition to \fB\-\-force\fR.
.TP
\fB\-v\fR \fB\-\-verbose\fR
Verbose output.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
hwloc-bind execs an executable (with optional command line arguments)
that is bound to the specified location (or list of locations).
Location specification is described in hwloc(7).
Upon successful execution, hwloc-bind simply sets bindings and then execs
the executable over itself.
.
.PP
If a bitmask location is given with prefix \fInodeset=\fR, then it
is considered a nodeset instead of a CPU set. See also \fB\-\-nodeset\fR.
.
.PP
If multiple locations are given, they are combined in the sense that
the binding will be wider. The process will be allowed to run on every
location inside the combination.
.
.PP
The list of input locations may be explicitly ended with "--".
.
.PP
If binding fails, or if the binding set is empty, and \fB\-\-force\fR
was not given, hwloc-bind returns with an error instead of launching
the executable.
.
.PP
.B NOTE:
It is highly recommended that you read the hwloc(7) overview page
before reading this man page. Most of the concepts described in
hwloc(7) directly apply to the hwloc-bind utility.
.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
hwloc-bind's operation is best described through several examples.
More details about how locations are specified on the hwloc-bind
command line are described in hwloc(7).
.
.PP
To run the echo command on the first logical processor of the second
package:
$ hwloc-bind package:1.pu:0 -- echo hello
which is exactly equivalent to the following line as long as there is
no ambiguity between hwloc-bind option names and the executed command name:
$ hwloc-bind package:1.pu:0 echo hello
To bind the "echo" command to the first core of the second package and
the second core of the first package:
$ hwloc-bind package:1.core:0 package:0.core:1 -- echo hello
To bind on the first PU of all cores of the first package:
$ hwloc-bind package:0.core:all.pu:0 -- echo hello
$ hwloc-bind --no-smt package:0 -- echo hello
To bind on the memory node local to a PU with largest capacity:
$ hwloc-bind --best-memattr capacity --cpubind pu:23 --membind pu:23 -- echo hello
To bind memory on the first high-bandwidth memory node on Intel Xeon Phi:
$ hwloc-bind --membind hbm:0 -- echo hello
$ hwloc-bind --hbm --membind numa:0 -- echo hello
Note that binding the "echo" command to multiple processors is
probably meaningless (because "echo" is likely implemented as a
single-threaded application); these examples just serve to show what
hwloc-bind can do.
.
.PP
To run on the first three packages on the second and third nodes:
$ hwloc-bind node:1-2.package:0:3 -- echo hello
which is also equivalent to:
$ hwloc-bind node:1-2.package:0-2 -- echo hello
Note that if you attempt to bind to objects that do not exist,
hwloc-bind will not warn unless
.I -v
was specified.
To run on processor with physical index 2 in package with physical index 1:
$ hwloc-bind --physical package:1.core:2 -- echo hello
To run on odd cores within even packages:
$ hwloc-bind package:even.core:odd -- echo hello
To run on the first package, except on its second and fifth cores:
$ hwloc-bind package:0 ~package:0.core:1 ~package:0.core:4 -- echo hello
To run anywhere except on the first package:
$ hwloc-bind all ~package:0 -- echo hello
To run on a core near the network interface named eth0:
$ hwloc-bind os=eth0 -- echo hello
To run on a core near the PCI device whose bus ID is 0000:01:02.0:
$ hwloc-bind pci=0000:01:02.0 -- echo hello
To bind memory on second memory node and run on first node (when supported by the OS):
$ hwloc-bind --cpubind node:1 --membind node:0 -- echo hello
The --get option can report current bindings. This example shows
nesting hwloc-bind invocations to set a binding and then report it:
$ hwloc-bind node:1.package:2 -- hwloc-bind --get
0x00004444,0x44000000
hwloc-calc can also be used to convert cpu mask strings to
human-readable package/core/PU strings; see the description of -H in
hwloc-calc(1) for more details. The following example binds to all
the PUs in a specific core, uses the --get option to retrieve where
the process was actually bound, and then uses hwloc-calc to display
the resulting cpu mask in space-delimited list of human-readable
locations:
$ hwloc-bind package:1.core:2 -- hwloc-bind --get | hwloc-calc -H package.core.pu
Package:1.Core:2.PU:0 Package:1.Core:2.PU:1
hwloc-calc may convert this output into actual objects, either with logical or physical indexes:
$ hwloc-calc --physical -I pu `hwloc-bind --get`
26,30,34,38,42,46
$ hwloc-calc --logical -I pu `hwloc-bind --get` --sep " "
24 25 26 27 28 29
.
.PP
Locations may also be specified as a hex bit mask (typically generated
by hwloc-calc). For example:
$ hwloc-bind 0x00004444,0x44000000 -- echo hello
$ hwloc-bind `hwloc-calc node:1.package:2` -- echo hello
The current memory binding may also be reported:
$ hwloc-bind --membind node:1 --mempolicy interleave -- hwloc-bind --get --membind
0x000000f0 (interleave)
.SH HINT
If the graphics-enabled lstopo is available, use for instance
$ hwloc-bind core:2 -- lstopo --pid 0
to check what the result of your binding command actually is.
lstopo will graphically show where it is bound to by hwloc-bind.
.
.\" **************************
.\" Return value section
.\" **************************
.SH RETURN VALUE
Upon successful execution, hwloc-bind execs the command over itself.
The return value is therefore whatever the return value of the command
is.
.
.PP
hwloc-bind will return nonzero if any kind of error occurs, such as
(but not limited to): failure to parse the command line, failure to
retrieve process bindings, or lack of a command to execute.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1), hwloc-calc(1), hwloc-distrib(1)
.sp

View File

@@ -0,0 +1,443 @@
.\" -*- nroff -*-
.\" Copyright © 2010-2021 Inria. All rights reserved.
.\" Copyright © 2009-2020 Cisco Systems, Inc. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-CALC "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-calc \- Operate on cpu mask strings and objects
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.B hwloc-calc
[\fItopology options\fR] [\fIoptions\fR] \fI<location1> [<location2> [...] ]
.
.PP
Note that hwloc(7) provides a detailed explanation of the hwloc system
and of valid <location> formats;
it should be read before reading this man page.
.
.\" **************************
.\" Options Section
.\" **************************
.SH TOPOLOGY OPTIONS
.
All topology options must be given before all other options.
.
.TP 10
\fB\-\-no\-smt\fR, \fB\-\-no\-smt=<N>\fR
Only keep the first PU per core in the input locations.
If \fI<N>\fR is specified, keep the <N>-th instead, if any.
PUs are ordered by physical index during this filtering.
.TP
\fB\-\-cpukind\fR <n>
\fB\-\-cpukind\fR <infoname>=<infovalue>
Only keep PUs whose CPU kind match.
Either a single CPU kind is specified as an index,
or the info name/value keypair will select matching kinds.
When specified by index, it corresponds to hwloc ranking of CPU kinds
which returns energy-efficient cores first, and high-performance
power-hungry cores last.
The full list of CPU kinds may be seen with \fIlstopo --cpukinds\fR.
.TP
\fB\-\-restrict\fR <cpuset>
Restrict the topology to the given cpuset.
.TP
\fB\-\-restrict\fR nodeset=<nodeset>
Restrict the topology to the given nodeset, unless \fB\-\-restrict\-flags\fR specifies something different.
.TP
\fB\-\-restrict\-flags\fR <flags>
Enforce flags when restricting the topology.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_topology_restrict()\fR.
Those names may be substrings of actual flag names as long as a single one matches,
for instance \fBbynodeset,memless\fR.
The default is \fB0\fR (or \fBnone\fR).
.TP
\fB\-\-disallowed\fR
Include objects disallowed by administrative limitations.
.TP
\fB\-i\fR <file>, \fB\-\-input\fR <file>
Read topology from XML file <file> (instead of discovering the
topology on the local machine). If <file> is "\-", the standard input
is used. XML support must have been compiled in to hwloc for this
option to be usable.
.TP
\fB\-i\fR <directory>, \fB\-\-input\fR <directory>
Read topology from <directory> instead of discovering the topology
of the local machine.
On Linux, the directory may contain the topology files
gathered from another machine topology with hwloc-gather-topology.
On x86, the directory may contain a cpuid dump gathered
with hwloc-gather-cpuid.
.TP
\fB\-i\fR <specification>, \fB\-\-input\fR <specification>
Simulate a fake hierarchy (instead of discovering the topology on the
local machine). If <specification> is "node:2 pu:3", the topology will
contain two NUMA nodes with 3 processing units in each of them.
The <specification> string must end with a number of PUs.
.TP
\fB\-\-if\fR <format>, \fB\-\-input\-format\fR <format>
Enforce the input in the given format, among \fBxml\fR, \fBfsroot\fR,
\fBcpuid\fR and \fBsynthetic\fR.
.
.SH OPTIONS
.
All these options must be given after all topology options above.
.
.TP 10
\fB\-p\fR \fB\-\-physical\fR
Use OS/physical indexes instead of logical indexes for both input and output.
.TP
\fB\-l\fR \fB\-\-logical\fR
Use logical indexes instead of physical/OS indexes for both input and output (default).
.TP
\fB\-\-pi\fR \fB\-\-physical\-input\fR
Use OS/physical indexes instead of logical indexes for input.
.TP
\fB\-\-li\fR \fB\-\-logical\-input\fR
Use logical indexes instead of physical/OS indexes for input (default).
.TP
\fB\-\-po\fR \fB\-\-physical\-output\fR
Use OS/physical indexes instead of logical indexes for output.
.TP
\fB\-\-lo\fR \fB\-\-logical\-output\fR
Use logical indexes instead of physical/OS indexes for output (default, except for cpusets which are always physical).
.TP
\fB\-n\fR \fB\-\-nodeset\fR
Interpret both input and output sets as nodesets instead of CPU sets.
See \fB\-\-nodeset\-output\fR and \fB\-\-nodeset\-input\fR below for details.
.TP
\fB\-\-no\fR \fB\-\-nodeset\-output\fR
Report nodesets instead of CPU sets.
This output is more precise than the default CPU set output when memory
locality matters because it properly describes CPU-less NUMA nodes,
as well as NUMA-nodes that are local to multiple CPUs.
.TP
\fB\-\-ni\fR \fB\-\-nodeset\-input\fR
Interpret input sets as nodesets instead of CPU sets.
.TP
\fB\-N \-\-number\-of <type|depth>\fR
Report the number of objects of the given type or depth that intersect the CPU set.
This is convenient for finding how many cores, NUMA nodes or PUs are available
in a machine.
When combined with \fB\-\-nodeset\fR or \fB\-\-nodeset-output\fR,
the nodeset is considered instead of the CPU set for finding matching objects.
This is useful when reporting the output as a number or set of NUMA nodes.
.TP
\fB\-I \-\-intersect <type|depth>\fR
Find the list of objects of the given type or depth that intersect the CPU set and
report the comma-separated list of their indexes instead of the cpu mask string.
This may be used for determining the list of objects above or below the input
objects.
When combined with \fB\-\-physical\fR, the list is convenient to pass to external
tools such as taskset or numactl \fB\-\-physcpubind\fR or \fB\-\-membind\fR.
This is different from \-\-largest since the latter requires that all reported
objects are strictly included inside the input objects.
When combined with \fB\-\-nodeset\fR or \fB\-\-nodeset-output\fR,
the nodeset is considered instead of the CPU set for finding matching objects.
This is useful when reporting the output as a number or set of NUMA nodes.
.TP
\fB\-H \-\-hierarchical <type1>.<type2>...\fR
Find the list of objects of type <type2> that intersect the CPU set and
report the space-separated list of their hierarchical indexes with respect
to <type1>, <type2>, etc.
For instance, if \fIpackage.core\fR is given, the output would be
\fIPackage:1.Core:2 Package:2.Core:3\fR if the input contains the third
core of the second package and the fourth core of the third package.
Only normal CPU-side object types may be used. NUMA nodes cannot.
.TP
\fB\-\-largest\fR
Report (in a human readable format) the list of largest objects which exactly
include all input objects (by looking at their CPU sets).
None of these output objects intersect each other, and the sum of them is
exactly equivalent to the input. No largest object is included in the input
This is different from \-\-intersect where reported objects may not be
strictly included in the input.
.TP
\fB\-\-local\-memory\fR
Report the list of NUMA nodes that are local to the input objects.
This option is similar to \fB\-I numa\fR but the way nodes are selected
is different:
The selection performed by \fB\-\-local\-memory\fR may be precisely
configured with \fB\-\-local\-memory\-flags\fR,
while \fB\-I numa\fR just selects all nodes that are somehow local to
any of the input objects.
.TP
\fB\-\-local\-memory\-flags\fR
Change the flags used to select local NUMA nodes.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_get_local_numanode_objs()\fR.
Those names may be substrings of actual flag names as long as a single one matches.
The default is \fB3\fR (or \fBsmaller,larger\fR)
which means NUMA nodes are displayed
if their locality either contains or is contained
in the locality of the given object.
This option enables \fB\-\-local\-memory\fR.
.TP
\fB\-\-best\-memattr\fR <name>
Enable the listing of local memory nodes with \fB\-\-local\-memory\fR,
but only display the local node that has the best value for the memory
attribute given by \fI<name>\fR (or as an index).
If the memory attribute values depend on the initiator, the hwloc-calc
input objects are used as the initiator.
Standard attribute names are \fICapacity\fR, \fILocality\fR,
\fIBandwidth\fR, and \fILatency\fR.
All existing attributes in the current topology may be listed with
$ lstopo --memattrs
.TP
\fB\-\-sep <sep>\fR
Change the field separator in the output.
By default, a space is used to separate output objects
(for instance when \fB\-\-hierarchical\fR or \fB\-\-largest\fR is given)
while a comma is used to separate indexes
(for instance when \fB\-\-intersect\fR is given).
.TP
\fB\-\-single\fR
Singlify the output to a single CPU.
.TP
\fB\-\-taskset\fR
Display CPU set strings in the format recognized by the taskset command-line
program instead of hwloc-specific CPU set string format.
This option has no impact on the format of input CPU set strings,
both formats are always accepted.
.TP
\fB\-q\fR \fB\-\-quiet\fR
Hide non-fatal error messages.
It mostly includes locations pointing to non-existing objects.
.TP
\fB\-v\fR \fB\-\-verbose\fR
Verbose output.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
hwloc-calc generates and manipulates CPU mask strings or objects.
Both input and output may be either objects (with physical or logical
indexes), CPU lists (with physical or logical indexes), or CPU mask strings
(always physically indexed).
Input location specification is described in hwloc(7).
.
.PP
If objects or CPU mask strings are given on the command-line,
they are combined and a single output is printed.
If no object or CPU mask strings are given on the command-line,
the program will read the standard input.
It will combine multiple objects or CPU mask strings that are
given on the same line of the standard input line with spaces
as separators.
Different input lines will be processed separately.
.
.PP
Command-line arguments and options are processed in order.
First topology configuration options should be given.
Then, for instance, changing the type of input indexes
with \fB\-\-li\fR or changing the input topology with \fB\-i\fR
only affects the processing the following arguments.
.
.PP
.B NOTE:
It is highly recommended that you read the hwloc(7) overview page
before reading this man page. Most of the concepts described in
hwloc(7) directly apply to the hwloc-calc utility.
.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
hwloc-calc's operation is best described through several examples.
.
.PP
To display the (physical) CPU mask corresponding to the second package:
$ hwloc-calc package:1
0x000000f0
To display the (physical) CPU mask corresponding to the third pacakge, excluding
its even numbered logical processors:
$ hwloc-calc package:2 ~PU:even
0x00000c00
To convert a cpu mask to human-readable output, the -H option can be
used to emit a space-delimited list of locations:
$ echo 0x000000f0 | hwloc-calc -H package.core
Package:1.Core1 Package:1.Core:1 Package:1.Core:2 Package:1.Core:3
To use some other character (e.g., a comma) instead of spaces in
output, use the --sep option:
$ echo 0x000000f0 | hwloc-calc -H package.core --sep ,
Package:1.Core1,Package:1.Core:1,Package:1.Core:2,Package:1.Core:3
To combine two (physical) CPU masks:
$ hwloc-calc 0x0000ffff 0xff000000
0xff00ffff
To display the list of logical numbers of processors included in the second
package:
$ hwloc-calc --intersect PU package:1
4,5,6,7
To bind GNU OpenMP threads logically over the whole machine, we need to use
physical number output instead:
$ export GOMP_CPU_AFFINITY=`hwloc-calc --physical-output --intersect PU all`
$ echo $GOMP_CPU_AFFINITY
0,4,1,5,2,6,3,7
To display the list of NUMA nodes, by physical indexes, that intersect a given (physical) CPU mask:
$ hwloc-calc --physical --intersect NUMAnode 0xf0f0f0f0
0,2
To find how many cores are in the second CPU kind
(those cores are likely higher-performance and more power-hungry than cores of the first kind):
$ hwloc-calc --cpukind 1 -N core all
4
To display the list of NUMA nodes, by physical indexes,
whose locality is exactly equal to a Package:
$ hwloc-calc --local-memory-flags 0 pack:1
4,7
To display the best-capacity NUMA node, by physical indexe,
whose locality is exactly equal to a Package:
$ hwloc-calc --local-memory-flags 0 --best-memattr capacity pack:1
4
Converting object logical indexes (default) from/to physical/OS indexes
may be performed with \fB--intersect\fR combined with either \fB--physical-output\fR
(logical to physical conversion) or \fB--physical-input\fR (physical to logical):
$ hwloc-calc --physical-output PU:2 --intersect PU
3
$ hwloc-calc --physical-input PU:3 --intersect PU
2
One should add \fB--nodeset\fR when converting indexes of memory objects
to make sure a single NUMA node index is returned on platforms
with heterogeneous memory:
$ hwloc-calc --nodeset --physical-output node:2 --intersect node
3
$ hwloc-calc --nodeset --physical-input node:3 --intersect node
2
To display the set of CPUs near network interface eth0:
$ hwloc-calc os=eth0
0x00005555
To display the indexes of packages near PCI device whose bus ID is 0000:01:02.0:
$ hwloc-calc pci=0000:01:02.0 --intersect Package
1
To display the list of per-package cores that intersect the input:
$ hwloc-calc 0x00003c00 --hierarchical package.core
Package:2.Core:1 Package:3.Core:0
To display the (physical) CPU mask of the entire topology except the third package:
$ hwloc-calc all ~package:3
0x0000f0ff
To combine both physical and logical indexes as input:
$ hwloc-calc PU:2 --physical-input PU:3
0x0000000c
To synthetize a set of cores into largest objects on a 2-node 2-package 2-core machine:
$ hwloc-calc core:0 --largest
Core:0
$ hwloc-calc core:0-1 --largest
Package:0
$ hwloc-calc core:4-7 --largest
NUMANode:1
$ hwloc-calc core:2-6 --largest
Package:1 Package:2 Core:6
$ hwloc-calc pack:2 --largest
Package:2
$ hwloc-calc package:2-3 --largest
NUMANode:1
To get the set of first threads of all cores:
$ hwloc-calc core:all.pu:0
$ hwloc-calc --no-smt all
This can also be very useful in order to make GNU OpenMP use exactly one thread
per core, and in logical core order:
$ export OMP_NUM_THREADS=`hwloc-calc --number-of core all`
$ echo $OMP_NUM_THREADS
4
$ export GOMP_CPU_AFFINITY=`hwloc-calc --physical-output --intersect PU --no-smt all`
$ echo $GOMP_CPU_AFFINITY
0,2,1,3
To export bitmask in a format that is acceptable by the resctrl Linux subsystem
(for configuring cache partitioning, etc), apply a sed regexp to the output of hwloc-calc:
$ hwloc-calc pack:all.core:7-9.pu:0
0x00000380,,0x00000380 <this format cannot be given to resctrl>
$ hwloc-calc pack:all.core:7-9.pu:0 | sed -e 's/0x//g' -e 's/,,/,0,/g' -e 's/,,/,0,/g'
00000380,0,00000380
# echo 00000380,0,00000380 > /sys/fs/resctrl/test/cpus
# cat /sys/fs/resctrl/test/cpus
00000000,00000380,00000000,00000380 <the modified bitmask was corrected parsed by resctrl>
.
.\" **************************
.\" Return value section
.\" **************************
.SH RETURN VALUE
Upon successful execution, hwloc-calc displays the (physical) CPU mask string,
(physical or logical) object list, or (physical or logical) object number list.
The return value is 0.
.
.
.PP
hwloc-calc will return nonzero if any kind of error occurs, such as
(but not limited to): failure to parse the command line.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1), hwloc-info(1)
.sp

View File

@@ -0,0 +1,91 @@
.\" -*- nroff -*-
.\" Copyright © 2013-2021 Inria. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-COMPRESS-DIR "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-compress-dir \- Compress a directory of XML topologies
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.B hwloc-compress-dir
[\fIoptions\fR]
<inputdir>
<outputdir>
\fR
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.TP
\fB\-R \-\-reverse\fR
Uncompress a previously compressed directory.
.TP
\fB\-v \-\-verbose\fR
Display verbose messages.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
hwloc-compress-dir takes an input directory containing XML exports
and tries to compress it by computing topology diffs between them
(with the hwloc-diff program).
Each file is copied in the output directory either as a diff if it
could be compressed, or as its original entire file otherwise.
.
.PP
hwloc-compress-dir may recompress a directory that was previously
compressed. All input files that are already in the output directory,
either compressed or not, are ignored. New input files are compressed
as much as possible as usual.
.
.PP
For each file of the directory, the output filename is
the same as the original if not compressed,
otherwise its extension is changed to \fB.diff.xml\fR.
.
.PP
Compressed files are based on another non-compressed topology.
Its name is stored in the \fBrefname\fR topology diff attribute.
.
.PP
The generated output diff files may be used with hwloc-patch
just like any file generated by hwloc-diff.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
To compress the input files from directory in into directory out:
$ hwloc-compress-dir in out
.
.\" **************************
.\" Return value section
.\" **************************
.SH RETURN VALUE
Upon successful execution, hwloc-compress-dir returns 0.
.
.PP
hwloc-compress-dir will return nonzero if any kind of error occurs,
such as (but not limited to) failure to parse the command line.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1), hwloc-diff(1), hwloc-patch(1)
.sp

View File

@@ -0,0 +1,129 @@
.\" -*- nroff -*-
.\" Copyright © 2013-2018 Inria. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-DIFF "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-diff \- Compute differences between two XML topologies
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.PP
.B hwloc-diff
[\fIoptions\fR]
\fI<input1.xml>\fR
\fI<input2.xml>\fR
.PP
.B hwloc-diff
[\fIoptions\fR]
\fI<input1.xml>\fR
\fI<input2.xml>\fR
\fI<output.xml>\fR
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.
.TP 10
\fB\-\-refname\fR <name>
Use <name> as the identifier for the reference topology
in the output XML difference.
It is meant to tell which topology should be used when applying
the resulting difference.
hwloc-patch may use that name to automatically load the relevant
reference topology XML.
By default, <input1.xml> is used without its full path.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
hwloc-diff computes the difference between two XML topologies
and stores the result into <output.xml> if any, or dumps it
to stdout otherwise.
.
.PP
The output difference may later be applied to another topology
with hwloc-patch.
.
.PP
hwloc-compress-dir may be used for computing the diffs between
all XML files in a directory.
.
.PP
.B NOTE:
If some application-specific userdata were been exported to the input XMLs,
they will be ignored and discarded from the output because hwloc has no way
to understand and compare them.
.
.PP
.B NOTE:
It is highly recommended that you read the hwloc(7) overview page
before reading this man page. Most of the concepts described in
hwloc(7) directly apply to the hwloc-diff utility.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
hwloc-diff's operation is best described through several examples.
.
.PP
Compute the difference between two XML topologies and output it to stdout:
$ hwloc-diff fourmi023.xml fourmi024.xml
Found 11 differences, exporting to stdout
<?xml version="1.0" encoding="UTF-8"?>
...
Output the difference to file diff.xml instead:
$ hwloc-diff fourmi023.xml fourmi024.xml diff.xml
Found 11 differences, exporting to diff.xml
When the difference is too complex to be represented:
$ hwloc-diff fourmi023.xml avakas-frontend1.xml
Found 1 differences, including 1 too complex ones.
Cannot export differences to stdout
Directly compute the difference between two topologies and apply it
to another one:
$ hwloc-diff fourmi023.xml fourmi024.xml | hwloc-patch fourmi025.xml -
.
.\" **************************
.\" Return value section
.\" **************************
.SH RETURN VALUE
Upon successful execution, hwloc-diff outputs the difference.
The return value is 0.
.
.PP
If the difference is too complex to be represented, an error is returned
and the output is not generated.
.
.PP
hwloc-diff also returns nonzero if any kind of error occurs, such as
(but not limited to) failure to parse the command line.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1), hwloc-patch(1), hwloc-compress-dir(1)
.sp

View File

@@ -0,0 +1,196 @@
.\" -*- nroff -*-
.\" Copyright © 2010-2020 Inria. All rights reserved.
.\" Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-DISTRIB "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-distrib \- Build a number of cpu masks distributed on the system
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.B hwloc-distrib
[\fIoptions\fR] \fI<integer>\fR
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.TP
\fB\-\-single\fR
Singlify each output to a single CPU.
.TP
\fB\-\-taskset\fR
Show CPU set strings in the format recognized by the taskset command-line
program instead of hwloc-specific CPU set string format.
.TP
\fB\-v\fR \fB\-\-verbose\fR
Verbose messages.
.TP
\fB\-i\fR <file>, \fB\-\-input\fR <file>
Read topology from XML file <file> (instead of discovering the
topology on the local machine). If <file> is "\-", the standard input
is used. XML support must have been compiled in to hwloc for this
option to be usable.
.TP
\fB\-i\fR <directory>, \fB\-\-input\fR <directory>
Read topology from <directory> instead of discovering the topology
of the local machine.
On Linux, the directory may contain the topology files
gathered from another machine topology with hwloc-gather-topology.
On x86, the directory may contain a cpuid dump gathered
with hwloc-gather-cpuid.
.TP
\fB\-i\fR <specification>, \fB\-\-input\fR <specification>
Simulate a fake hierarchy (instead of discovering the topology on the
local machine). If <specification> is "node:2 pu:3", the topology will
contain two NUMA nodes with 3 processing units in each of them.
The <specification> string must end with a number of PUs.
.TP
\fB\-\-if\fR <format>, \fB\-\-input\-format\fR <format>
Enforce the input in the given format, among \fBxml\fR, \fBfsroot\fR,
\fBcpuid\fR and \fBsynthetic\fR.
.TP
\fB\-\-ignore\fR <type>
Ignore all objects of type <type> in the topology.
.TP
\fB\-\-from\fR <type>
Distribute starting from objects of the given type instead of from
the top of the topology hierarchy, i.e. ignoring the structure given by objects
above.
<type> cannot be among NUMANode, I/O or Misc types.
.TP
\fB\-\-to\fR <type>
Distribute down to objects of the given type instead of down to the bottom of
the topology hierarchy, i.e. ignoring the structure given by objects below.
This may be useful if some latitude is desired for the binding, e.g. just bind
several processes to each package without specifying a single core for each
of them.
<type> cannot be among NUMANode, I/O or Misc types.
.TP
\fB\-\-at\fR <type>
Distribute among objects of the given type. This is equivalent to specifying
both \fB\-\-from\fR and \fB\-\-to\fR at the same time.
.TP
\fB\-\-reverse\fR
Distribute by starting with the last objects first,
and singlify CPU sets by keeping the last bit (instead of the first bit).
.TP
\fB\-\-restrict\fR <cpuset>
Restrict the topology to the given cpuset.
.TP
\fB\-\-restrict\fR nodeset=<nodeset>
Restrict the topology to the given nodeset, unless \fB\-\-restrict\-flags\fR specifies something different.
.TP
\fB\-\-restrict\-flags\fR <flags>
Enforce flags when restricting the topology.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_topology_restrict()\fR.
Those names may be substrings of actual flag names as long as a single one matches,
for instance \fBbynodeset,memless\fR.
The default is \fB0\fR (or \fBnone\fR).
.TP
\fB\-\-disallowed\fR
Include objects disallowed by administrative limitations.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
hwloc-distrib generates a series of CPU masks corresponding to a distribution of
a given number of elements over the topology of the machine. The distribution
is done recursively from the top of the hierarchy (or from the level specified
by option \fB\-\-from\fR) down to the bottom of the hierarchy (or down to the
level specified by option \fB\-\-to\fR, or until only one element remains),
splitting the number of elements at each encountered hierarchy level not ignored
by options \fB\-\-ignore\fR.
.
.PP
This can e.g. be used to distribute a set of processes hierarchically according
to the topology of a machine. These masks can be used with hwloc-bind(1).
.
.PP
.B NOTE:
It is highly recommended that you read the hwloc(7) overview page
before reading this man page. Most of the concepts described in
hwloc(7) directly apply to the hwloc-bind utility.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
hwloc-distrib's operation is best described through several examples.
.
.PP
If 4 processes have to be distributed across a machine, their CPU masks
may be obtained with:
$ hwloc-distrib 4
0x0000000f
0x00000f00
0x000000f0
0x0000f000
To distribute only among the second package, the topology should be restricted:
$ hwloc-distrib --restrict $(hwloc-calc package:1) 4
0x00000010
0x00000020
0x00000040
0x00000080
To get a single processor of each CPU masks (prevent migration in case
of binding)
$ hwloc-distrib 4 --single
0x00000001
0x00000100
0x00000010
0x00001000
Each output line may be converted independently with hwloc-calc:
$ hwloc-distrib 4 --single | hwloc-calc --taskset
0x1
0x100
0x10
0x1000
To convert the output into a list of processors that may be passed to
dplace -c inside a mpirun command line:
$ hwloc-distrib 4 --single | xargs hwloc-calc --pulist
0,8,4,16
.
.
.\" **************************
.\" Return value section
.\" **************************
.SH RETURN VALUE
Upon successful execution, hwloc-distrib displays one or more CPU mask
strings. The return value is 0.
.
.
.PP
hwloc-distrib will return nonzero if any kind of error occurs, such as
(but not limited to) failure to parse the command line.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7)
.sp

View File

@@ -0,0 +1,75 @@
.\" -*- nroff -*-
.\" Copyright © 2015-2021 Inria. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-DUMP-HWDATA "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-dump-hwdata \- Dump topology and locality information from hardware tables
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.B hwloc-dump-hwdata
[\fIoptions\fR]
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.
.TP 10
\fB\-o <dir>\fR
save output files to directory <dir> instead of the default
\fI/home/admin/Documents/code/projects/cpp-thirdparty-src/mpi/openmpi/install/5.0.7/var/run/hwloc/\fR that was specified at configure time.
You may want to set the HWLOC_DUMPED_HWDATA_DIR environment variable
as well so that the hwloc library looks for dumped files in that same
directory.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
hwloc may benefit from some locality and topology information from
SMBIOS or ACPI tables.
They are accessible from raw hardware files under directories such
/sys/firmware/dmi/ or /sys/firmware/acpi/ on Linux.
These files are usually only accessible to root,
and they only exist when there is \fIdmi-sysfs\fR support in the Linux kernel.
.
.PP
The hwloc-dump-hwdata tool dumps the useful contents of such files into
human-readable and world-accessible files. The intent is to run the tool
once during boot and have the main (non-privileged) hwloc library gather
information from these human-readable files.
.
.PP
\fBhwloc-dump-hwdata is currently only useful for Intel Xeon Phi processors\fR
(Knights Landing and Knights Mill).
.
.PP
The current list of dumped information is:
.
.TP 5
\fBIntel Xeon Phi processor memory, cache and clustering configuration\fR
gathered from specific SMBIOS entries such as
\fI/sys/firmware/dmi/entries/14-*\fR and
\fI/sys/firmware/dmi/entries/160-*\fR,
and saved in file \fIknl_memoryside_cache\fR.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1)
.sp

View File

@@ -0,0 +1,110 @@
.\" -*- nroff -*-
.\" Copyright © 2015-2021 Inria. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-GATHER-CPUID "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-gather-cpuid \- Dumps the relevant x86 cpuid values
for later (possibly offline) usage
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.B hwloc-gather-cpuid [\fIoptions\fR] [\fI<outdir>\fR]
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.
.TP
\fB\-c <idx>
Only gather cpuid values for logical processor whose OS/physical index
is <idx>.
.TP
\fB\-s\fR \fB\-\-silent\fR
Do not show verbose messages.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
\fBhwloc-gather-cpuid\fR dumps all the relevant x86 cpuid values into
subdirectory \fIcpuid\fR of current directory,
or in \fB<outdir>\fR if specified.
.
.PP
These files can be used later to explore the machine topology offline,
for instance by setting the environment variable \fIHWLOC_CPUID_PATH\fR
to the directory containing all output files,
and by forcing the x86 backend with \fIHWLOC_COMPONENTS=x86,stop\fR.
.
.PP
The directory contents may also be submitted to hwloc developers
to debug issues remotely.
.
.PP
If \fB-\fR is used as <outdir>, the output is dumped to the standard
output, but a unique logical processor must have been given with \fB-c\fR.
.
.PP
\fBhwloc-gather-cpuid\fR is a x86 specific tool, it cannot be used
on other platforms.
.
.PP
.B NOTE:
\fBhwloc-gather-cpuid\fR gathers many hardware details about the platform.
Output files should not be posted on public lists or websites
unless it is clear that they contain no sensitive information.
.
.PP
.B NOTE:
The output of \fBhwloc-gather-cpuid\fR is included in the tarball
saved by \fBhwloc-gather-topology\fR on Linux/x86.
.
.PP
.B NOTE:
It is highly recommended that you read the hwloc(7) overview page
before reading this man page.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
To store cpuid information of all logical processors of the current machine:
$ hwloc-gather-cpuid
Gathering in directory ./cpuid ...
Gathering CPUID of PU P#0 in path ./hwloc-x86-cpuid/pu0 ...
Gathering CPUID of PU P#1 in path ./hwloc-x86-cpuid/pu1 ...
Gathering CPUID of PU P#2 in path ./hwloc-x86-cpuid/pu2 ...
Gathering CPUID of PU P#3 in path ./hwloc-x86-cpuid/pu3 ...
Summary written to ./cpuid/hwloc-cpuid-info
.
.\" **************************
.\" Return value section
.\" **************************
.SH RETURN VALUE
Upon successful execution, \fBhwloc-gather-cpuid\fR will exit with the code 0.
.
.PP
\fBhwloc-gather-cpuid\fR will return nonzero exit status if any kind of error occurs,
such as (but not limited to) failure to create the output files.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), hwloc-gather-topology(1), lstopo(1)
.sp

View File

@@ -0,0 +1,159 @@
.\" -*- nroff -*-
.\" Copyright © 2010 Jirka Hladky
.\" Copyright © 2010-2021 Inria. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-GATHER-TOPOLOGY "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-gather-topology \- Saves the relevant Linux and x86 topology files
and the lstopo textual and XML outputs for later (possibly offline) usage
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.B hwloc-gather-topology [\fIoptions\fR] \fI<path>\fR
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.
.TP
\fB\-\-io\fR
Also gather I/O related files.
The gathering may be much slower, and the generated archive may be much bigger.
.
.TP
\fB\-\-dmi\fR
Also gather DMI/SMBIOS related files.
The gathering requires root access, and the dmi-sysfs kernel module should be loaded.
.
.TP
\fB\-\-no\-cpuid\fR
Do not gather x86 CPUID dump using \fIhwloc\-gather\-cpuid\fR.
.
.TP
\fB\-\-keep\fR
Keep the temporary copy of dumped files instead of destroying it.
.
.TP
\fB\-\-version\fR
Report version and exit.
.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
\fBhwloc-gather-topology\fR saves all the relevant topology files into an
archive (\fB<path>.tar.bz2\fR), the lstopo output (\fB<path>.output\fR),
and the lstopo XML (\fB<path>.xml\fR).
The utility for example stores the \fB/proc/cpuinfo\fR file and the entire
\fB/sys/devices/system/node/\fR directory tree.
.
.PP
These files can be used later to explore the machine topology offline.
Once the tarball has been extracted, it may for instance be given to
some hwloc command-line utilities through their \fB\-\-input\fR option.
It is also possible to override the default topology that the hwloc
library will read by setting the extracted path in the \fBHWLOC_FSROOT\fR
environment variable.
.
.PP
The archive and the lstopo textual and XML outputs may also be submitted to hwloc developers
to debug issues remotely.
.
.PP
\fBhwloc-gather-topology\fR is a Linux specific tool, it is not installed
on other operating systems.
.
.PP
.B NOTE:
\fBhwloc-gather-topology\fR gathers many hardware details about the platform.
The outputs and tarball should not be posted on public lists or websites
unless it is clear that they contain no sensitive information.
.
.PP
.B NOTE:
The gathering may take several minutes, especially on large nodes.
.
.PP
.B NOTE:
It is highly recommended that you read the hwloc(7) overview page
before reading this man page.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
To store topology information to be used later (possibly on
a different host) please run:
hwloc-gather-topology /tmp/myhost
It will store all relevant topology files in the \fB/tmp/myhost.tar.bz2\fR
archive, the lstopo output in the \fB/tmp/myhost.output\fR file,
and the lstopo XML in the \fB/tmp/myhost.xml\fR file.
.
These files can be transferred on another host for later/offline
analysis and/or as the input to various hwloc utilities.
.PP
To use these data with hwloc utilities you have to unpack
\fBmyhost.tar.bz2\fR archive first:
tar jxvf /tmp/myhost.tar.bz2
A new directory named \fBmyhost\fR now contains all topology files.
Then you ask various hwloc utilities to use this topology instead
of the one of the real machine by passing \fB\-\-input myhost\fR.
To display the topology just run:
lstopo --input ./myhost
It is not necessary that the topology is extracted in the current
directory, absolute or relative paths are also supported:
lstopo --input /path/to/remote/host/extracted/topology/
To see how hwloc would distribute 8 parallel jobs on the original host:
hwloc-distrib --input myhost --single 8
To get the corresponding physical indexes in the previous command:
hwloc-calc --input myhost --po --li --proclist $(hwloc-distrib --input myhost --single 8)
Any program may actually override the default topology with a given
archived one even if it does not have a \fB\-\-input\fR option.
The \fBHWLOC_FSROOT\fR environment variable should be used to do so:
HWLOC_FSROOT=myhost hwloc-calc --po --li --proclist $(hwloc-distrib --single 8)
All these commands will produce the same output as if executed
directly on the host on which the topology information was
originally gathered by the \fBhwloc-gather-topology\fR script.
.
.\" **************************
.\" Return value section
.\" **************************
.SH RETURN VALUE
Upon successful execution, \fBhwloc-gather-topology\fR will exit with the code 0.
.
.PP
\fBhwloc-gather-topology\fR will return nonzero exit status if any kind of error occurs,
such as (but not limited to) failure to create the archive or output files.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1), hwloc-gather-cpuid(1), hwloc-calc(1), hwloc-distrib(1)
.sp

View File

@@ -0,0 +1,275 @@
.\" -*- nroff -*-
.\" Copyright © 2009-2020 Inria. All rights reserved.
.\" Copyright © 2009-2010 Université of Bordeaux
.\" Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-INFO "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-info \- Show some information about some objects or about a topology or about support features
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.PP
.B hwloc-info
[ \fIoptions \fR]...
\fI<object>\fR...
.PP
.B hwloc-info
[ \fIoptions \fR]...
.
.PP
Note that hwloc(7) provides a detailed explanation of the hwloc system
and of valid <object> formats;
it should be read before reading this man page.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.
.TP
\fB\-\-objects\fR
Report information specific objects.
This is the default if some objects are given on the command-line.
.TP
\fB\-\-topology\fR
Report a summary of the topology instead of about some specific objects.
This is the default if no object is given on the command-line.
.TP
\fB\-\-support\fR
Report the features that are supported by hwloc on the topology.
The features are those available through the \fBhwloc_topology_get_support()\fR function.
This is useful for verifying which CPU or memory binding options are supported
by the current hwloc installation.
.TP
\fB\-i\fR <file>, \fB\-\-input\fR <file>
Read topology from XML file <file> (instead of discovering the
topology on the local machine). If <file> is "\-", the standard input
is used. XML support must have been compiled in to hwloc for this
option to be usable.
.TP
\fB\-i\fR <directory>, \fB\-\-input\fR <directory>
Read topology from <directory> instead of discovering the topology
of the local machine.
On Linux, the directory may contain the topology files
gathered from another machine topology with hwloc-gather-topology.
On x86, the directory may contain a cpuid dump gathered
with hwloc-gather-cpuid.
.TP
\fB\-i\fR <specification>, \fB\-\-input\fR <specification>
Simulate a fake hierarchy (instead of discovering the topology on the
local machine). If <specification> is "node:2 pu:3", the topology will
contain two NUMA nodes with 3 processing units in each of them.
The <specification> string must end with a number of PUs.
.TP
\fB\-\-if\fR <format>, \fB\-\-input\-format\fR <format>
Enforce the input in the given format, among \fBxml\fR, \fBfsroot\fR,
\fBcpuid\fR and \fBsynthetic\fR.
.TP
\fB\-v\fR \fB\-\-verbose\fR
Include additional detail.
.TP
\fB\-s\fR \fB\-\-silent\fR
Reduce the amount of details to show.
A single summary line per object is displayed.
.TP
\fB\-\-ancestors\fR
Display information about the object as well as
about all its ancestors up to the root of the topology.
.TP
\fB\-\-ancestor\fR <type>
Only display the object ancestors that match the given type.
.TP
\fB\-\-children\fR
Display information about the object children.
.TP
\fB\-\-descendants\fR <type>
Display information about the object descendants that match the given type.
.TP
\fB\-\-local\-memory\fR
Display information about the NUMA nodes that are local to the given object.
.TP
\fB\-\-local\-memory\-flags\fR
Change the flags used to select local NUMA nodes.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_get_local_numanode_objs()\fR.
Those names may be substrings of actual flag names as long as a single one matches.
The default is \fB3\fR (or \fBsmaller,larger\fR)
which means NUMA nodes are displayed
if their locality either contains or is contained
in the locality of the given object.
This option enables \fB\-\-local\-memory\fR.
.TP
\fB\-\-best\-memattr\fR <name>
Enable the listing local memory nodes with \fB\-\-local\-memory\fR,
but only display the local node that has the best value for the memory
attribute given by \fI<name>\fR (or as an index).
If the memory attribute values depend on the initiator, the object given
to hwloc-info is used as the initiator.
.TP
\fB\-n\fR
When outputting object information, prefix each line with the index
of the considered object within the input.
For instance, if three cores were given in input, the output
lines will be prefixed with "0: ", "1: " or "2: ".
If \fB\-\-ancestor\fR is also used, the prefix will be "X.Y: "
where X is the index of the considered object within the input,
and Y is the parent index (0 for the object itself, increasing
towards the root of the topology).
.TP
\fB\-\-disallowed\fR
Include objects disallowed by administrative limitations.
.TP
\fB\-\-restrict\fR <cpuset>
Restrict the topology to the given cpuset.
.TP
\fB\-\-restrict\fR nodeset=<nodeset>
Restrict the topology to the given nodeset, unless \fB\-\-restrict\-flags\fR specifies something different.
.TP
\fB\-\-restrict\fR binding
Restrict the topology to the current process binding.
This option requires the use of the actual current machine topology
(or any other topology with \fB\-\-thissystem\fR or with
HWLOC_THISSYSTEM set to 1 in the environment).
.TP
\fB\-\-restrict\-flags\fR <flags>
Enforce flags when restricting the topology.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_topology_restrict()\fR.
Those names may be substrings of actual flag names as long as a single one matches,
for instance \fBbynodeset,memless\fR.
The default is \fB0\fR (or \fBnone\fR).
.TP
\fB\-\-filter\fR <type>:<kind>, \fB\-\-filter\fR <type>
Filter objects of type <type>, or of any type if <type> is "all".
"io", "cache" and "icache" are also supported.
<kind> specifies the filtering behavior.
If "none" or not specified, all objects of the given type are removed.
If "all", all objects are kept as usual.
If "structure", objects are kept when they bring structure to the topology.
If "important" (only applicable to I/O and Misc), only important objects are kept.
See hwloc_topology_set_type_filter() for more details.
.TP
\fB\-\-no\-icaches\fR
Do not show Instruction caches, only Data and Unified caches are considered.
This is identical to \fB-\-filter icache:none\fR.
.TP
\fB\-\-no\-io\fB
Do not show any I/O device or bridge.
This is identical to \fB\-\-filter io:none\fR.
By default, common devices (GPUs, NICs, block devices, ...) and
interesting bridges are shown.
.TP
\fB\-\-no\-bridges\fB
Do not show any I/O bridge except hostbridges.
This is identical to \fB\-\-filter bridge:none\fR.
By default, common devices (GPUs, NICs, block devices, ...) and
interesting bridges are shown.
.TP
\fB\-\-whole\-io\fB
Show all I/O devices and bridges.
This is identical to \fB\-\-filter io:all\fR.
By default, only common devices (GPUs, NICs, block devices, ...) and
interesting bridges are shown.
.TP
\fB\-\-thissystem\fR
Assume that the selected backend provides the topology for the
system on which we are running.
This is useful when using \fB\-\-restrict\fR binding and loading
a custom topology such as an XML file.
.TP
\fB\-\-pid\fR <pid>
Detect topology as seen by process <pid>, i.e. as if process <pid> did the
discovery itself.
Note that this can for instance change the set of allowed processors.
Also show this process current CPU binding by marking the corresponding
PUs (in Green in the graphical output, see the COLORS section below,
or by appending \fI(binding)\fR to the verbose text output).
If 0 is given as pid, the current binding for the lstopo process will be shown.
.TP
\fB\-p\fR \fB\-\-physical\fR
Use OS/physical indexes instead of logical indexes for input.
.TP
\fB\-l\fR \fB\-\-logical\fR
Use logical indexes instead of physical/OS indexes for input (default).
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
hwloc-info displays information about the specified object.
It is intended to be used with tools such as grep for filtering
certain attribute lines.
When no object is specified, or when \fB\-\-topology\fR is passed,
hwloc-info prints a summary of the topology.
When \fB\-\-support\fR is passed, hwloc-info lists the supported
features for the topology.
.
.PP
Objects may be specified as location tuples, as explained in hwloc(7).
However hexadecimal bitmasks are not accepted since they may correspond
to multiple objects.
.
.PP
.B NOTE:
It is highly recommended that you read the hwloc(7) overview page
before reading this man page. Most of the concepts described in
hwloc(7) directly apply to the hwloc-calc utility.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
To display information about each package:
$ hwloc-info package:all
Package L#0
logical index = 0
...
To display information about the core whose physical index is 2:
$ hwloc-info -p core:2
Core L#1
logical index = 1
os index = 2
...
To list the NUMA nodes that are local a PU:
$ hwloc-info --local-memory pu:25
NUMANode L#6 = local memory #0 of PU L#25
type = NUMANode
...
NUMANode L#7 = local memory #1 of PU L#25
type = NUMANode
...
To show the best-bandwidth node among NUMA nodes local to a PU:
$ hwloc-info --local-memory --best-memattr bandwidth pu:25
NUMANode L#7 = local memory #1 of PU L#25
type = NUMANode
...
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1), hwloc-calc(1), hwloc-bind(1), hwloc-ps(1)
.sp

View File

@@ -0,0 +1 @@
lstopo-no-graphics.1

View File

@@ -0,0 +1,123 @@
.\" -*- nroff -*-
.\" Copyright © 2013-2018 Inria. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-PATCH "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-patch \- Apply a topology difference to an existing XML topology
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.PP
.B hwloc-patch
[\fIoptions\fR]
\fI[<topology.xml> | refname]\fR
\fI[<diff.xml> | -]\fR
\fI<output.xml>\fR
.PP
.B hwloc-patch
[\fIoptions\fR]
\fI[<topology.xml> | refname]\fR
\fI[<diff.xml> | -]\fR
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.
.TP 10
\fB\-R \-\-reverse\fR
Reverse the sense the difference file.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
hwloc-patch loads the difference between two topologies from a XML file
(or from the standard input) and applies it to an
existing topology, generating a new, modified one.
.
.PP
The XML difference may have been computed earlier with hwloc-diff
or hwloc-compress-dir.
.
.PP
If <output.xml> is given, the new, modified topology is stored in that
new file. Otherwise, <topology.xml> is modified in place.
.
.PP
If \fBrefname\fR is given instead of <topology.xml>, the input topology filename
is automatically guessed by reading the refname field of the XML diff file.
By default hwloc-diff generates XML diffs with the right reference topology
filename (without any path prefix).
.
.PP
If \fB-\fR is given instead of <diff.xml>, the topology difference is read from
the standard input.
.
.PP
.B NOTE:
If some application-specific userdata were been exported to the input XMLs,
they will be ignored and discarded from the output because hwloc has no way
to understand and patch them.
.
.PP
.B NOTE:
It is highly recommended that you read the hwloc(7) overview page
before reading this man page. Most of the concepts described in
hwloc(7) directly apply to the hwloc-patch utility.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
hwloc-patch's operation is best described through several examples.
.
.PP
Apply a XML topology difference file to an existing topology:
$ hwloc-patch fourmi023.xml diff.xml fourmi023-new.xml
Apply a XML topology difference file whole refname field contains the right input topology:
$ hwloc-patch refname diff.xml fourmi023-new.xml
Apply a XML topology from the standard intput:
$ cat diff.xml | hwloc-patch fourmi023.xml - fourmi023-new.xml
Directly compute the difference between two topologies and apply it
to another one, in place:
$ hwloc-diff fourmi023.xml fourmi024.xml | hwloc-patch fourmi025.xml -
.
.\" **************************
.\" Return value section
.\" **************************
.SH RETURN VALUE
Upon successful execution, hwloc-patch outputs the modified topology.
The return value is 0.
.
.PP
hwloc-patch also returns nonzero if any kind of error occurs, such as
(but not limited to) failure to parse the command line.
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1), hwloc-diff(1), hwloc-compress-dir(1)
.sp

View File

@@ -0,0 +1,216 @@
.\" -*- nroff -*-
.\" Copyright © 2010-2021 Inria. All rights reserved.
.\" Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
.\" See COPYING in top-level directory.
.TH HWLOC-PS "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
hwloc-ps \- List currently-running processes or threads that are bound
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.B hwloc-ps
[\fIoptions\fR]
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.
.TP 10
\fB\-a\fR
List all processes, even those that are not bound to any
specific part of the machine.
.TP
\fB\-\-pid <pid>\fR
Only show process of PID \fI<pid>\fR,
even if it is not bound to any specific part of the machine.
.TP
\fB\-\-name <name>\fR
Only show processes whose name contains \fI<name>\fR,
even if they are not bound to any specific part of the machine.
This is not supported on all operating systems.
.TP
\fB\-\-uid <uid>\fR
Only show processes of the user whose UID is \fI<uid>\fR,
or processes of all users if \fIall\fR is given.
By default, only processes of the current user are displayed.
This is currently only supported on Linux.
.TP
\fB\-p\fR \fB\-\-physical\fR
Report OS/physical indexes instead of logical indexes
.TP
\fB\-l\fR \fB\-\-logical\fR
Report logical indexes instead of physical/OS indexes (default)
.TP
\fB\-c\fR \fB\-\-cpuset\fR
Show process bindings as cpusets instead of objects.
.TP
\fB\-t\fR \fB\-\-threads\fR
Show threads inside processes.
If \fB\-a\fR is given as well, list all threads within each process.
Otherwise, show all threads inside each process where at least one
thread is bound.
This is currently only supported on Linux.
.TP
\fB\-\-single\-ancestor\fR
When the object is bound to different objects,
report their common ancestor (even if it may be larger than the actual binding).
.TP
\fB\-e\fR \fB\-\-get\-last\-cpu\-location\fR
Report the last processors where the process/thread ran.
Note that the result may already be outdated when reported
since the operating system may move the tasks to other processors
at any time according to the binding.
.TP
\fB\-\-disallowed\fR
Include objects disallowed by administrative limitations.
.TP
\fB\-\-pid\-cmd <cmd>\fR
Append the output of the given command to each PID line.
For each displayed process ID, execute the command \fI<cmd> <pid>\fR
and append \fBthe first line\fR of its output to the regular hwloc-ps
line.
.TP
\fB\-\-pid\-cmd env=<name>\fR
On Linux, try to read the value of environment variable \fIname\fR
in each process and display it at the end of the line.
.TP
\fB\-\-pid\-cmd mpirank\fR
On Linux, try to find the process MPI rank (by querying some widespread
environment variables) and display it at the end of the line.
.TP
\fB\-\-json\-server\fR
Run the tool as a JSON server that waits for other process' requests
on a port and sends back binding information.
See contrib/hwloc-ps.www/ for details.
.TP
\fB\-\-json\-port <port>\fR
Use the given port number instead of the default 8888.
.TP
\fB\-v\fR \fB\-\-verbose\fR
Increase verbosity of the JSON server.
.TP
\fB\-\-short\-name\fR
Show only the process short name instead of the path.
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
By default, hwloc-ps lists only those currently-running processes that
are bound. If \fB-t\fR is given, processes that are not bound but contain
at least one bound thread are also displayed, as well as all their threads.
.
.PP
hwloc-ps displays process identifier, command-line and
binding. The binding may be reported as objects or cpusets.
.
.PP
By default, process bindings are restricted to the currently available
topology. If some processes are bound to processors that are not available
to the current process, they are ignored unless \fB\-\-disallowed\fR
is given.
.
.PP
The output is a plain list. If you wish to annotate the hierarchical
topology with processes so as to see how they are actual distributed
on the machine, you might want to use lstopo --ps instead (which also
only shows processes that are bound).
.
.PP
The
.I -a
switch can be used to show
.I all
processes, if desired.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.PP
If a process is bound, it appears in the default output:
$ hwloc-ps
4759 Core:0 myprogram
If a process is bound on two cores of a larger package,
the output will show these cores.
Option \-\-single\-ancestor will rather return the package
even if it is actually larger than the binding here
(the process is not bound to Core:0 of Package:0):
$ hwloc-ps
4863 Core:1 Core:2 myprogram
$ hwloc-ps --single-ancestor
4863 Package:0 myprogram
If a process is not bound but 3 of his 4 threads are bound,
it only appears in the thread-aware output (or if explicitly selected):
$ hwloc-ps
$ hwloc-ps -t
4759 Machine:0 myprogram
4759 Machine:0
4761 PU:0
4762 PU:2
4765 PU:1
$ hwloc-ps --pid 4759
4759 Machine:0 myprogram
On Linux, hwloc-ps may also display some process specific environment
variable at the end of the line. This is for instance useful
for identify MPI ranks among processes:
$ hwloc-ps --pid-cmd env=OMPI_COMM_WORLD_RANK
29093 PU:0 myprogram OMPI_COMM_WORLD_RANK=0
29094 PU:2 myprogram OMPI_COMM_WORLD_RANK=1
29095 PU:1 myprogram OMPI_COMM_WORLD_RANK=2
29096 PU:3 myprogram OMPI_COMM_WORLD_RANK=3
Some widespread MPI specific environment variables
(OMPI_COMM_WORLD_RANK, PMIX_RANK, PMI_RANK and SLURM_PROCID)
are actually directly recognized by hwloc-ps when requesting the \fImpirank\fR command:
$ hwloc-ps --pid-cmd mpirank
29093 PU:0 myprogram PMIX_RANK=0
29094 PU:2 myprogram PMIX_RANK=1
29095 PU:1 myprogram PMIX_RANK=2
29096 PU:3 myprogram PMIX_RANK=3
Beside reading environment variables, hwloc-ps may also append
the output of a custom program. Again, for reading the Open MPI
process rank:
$ hwloc-ps --pid-cmd myscript
29093 PU:0 myprogram OMPI_COMM_WORLD_RANK=0
29094 PU:2 myprogram OMPI_COMM_WORLD_RANK=1
29095 PU:1 myprogram OMPI_COMM_WORLD_RANK=2
29096 PU:3 myprogram OMPI_COMM_WORLD_RANK=3
where \fBmyscript\fR is a shell script doing:
#!/bin/sh
cat /proc/$1/environ 2>/dev/null | xargs --null --max-args=1 echo | grep OMPI_COMM_WORLD_RANK
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), lstopo(1), hwloc-calc(1), hwloc-distrib(1), and hwloc-ps.www/README
.sp

View File

@@ -0,0 +1,857 @@
.\" -*- nroff -*-
.\" Copyright © 2009-2022 Inria. All rights reserved.
.\" Copyright © 2009-2010 Université of Bordeaux
.\" Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
.\" Copyright © 2020 Hewlett Packard Enterprise. All rights reserved.
.\" See COPYING in top-level directory.
.TH LSTOPO "1" "Mar 20, 2022" "2.7.1" "hwloc"
.SH NAME
lstopo, lstopo-no-graphics, hwloc-ls \- Show the topology of the system
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.B lstopo
[ \fIoptions \fR]... [ \fIfilename \fR]
.
.PP
.B lstopo-no-graphics
[ \fIoptions \fR]... [ \fIfilename \fR]
.
.PP
.B hwloc-ls
[ \fIoptions \fR]... [ \fIfilename \fR]
.
.PP
Note that hwloc(7) provides a detailed explanation of the hwloc system; it
should be read before reading this man page
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.
.TP
\fB\-\-of\fR <format>, \fB\-\-output\-format\fR <format>
Enforce the output in the given format.
See the OUTPUT FORMATS section below.
.TP
\fB\-i\fR <file>, \fB\-\-input\fR <file>
Read topology from XML file <file> (instead of discovering the
topology on the local machine). If <file> is "\-", the standard input
is used. XML support must have been compiled in to hwloc for this
option to be usable.
.TP
\fB\-i\fR <directory>, \fB\-\-input\fR <directory>
Read topology from <directory> instead of discovering the topology
of the local machine.
On Linux, the directory may contain the topology files
gathered from another machine topology with hwloc-gather-topology.
On x86, the directory may contain a cpuid dump gathered
with hwloc-gather-cpuid.
.TP
\fB\-i\fR <specification>, \fB\-\-input\fR <specification>
Simulate a fake hierarchy (instead of discovering the topology on the
local machine). If <specification> is "node:2 pu:3", the topology will
contain two NUMA nodes with 3 processing units in each of them.
The <specification> string must end with a number of PUs.
.TP
\fB\-\-if\fR <format>, \fB\-\-input\-format\fR <format>
Enforce the input in the given format, among \fBxml\fR, \fBfsroot\fR,
\fBcpuid\fR and \fBsynthetic\fR.
.TP
\fB\-\-export\-xml\-flags\fR <flags>
Enforce flags when exporting to the XML format.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_topology_export_xml()\fR.
Those names may be substrings of actual flag names as long as a single one matches.
A value of \fB1\fR (or \fBv1\fR) reverts to the format of hwloc v1.x.
The default is \fB0\fR (or \fBnone\fR).
.TP
\fB\-\-export\-synthetic\-flags\fR <flags>
Enforce flags when exporting to the synthetic format.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_topology_export_synthetic()\fR.
Those names may be substrings of actual flag names as long as a single one matches.
A value of \fB2\fR (or \fBno_attr\fR) reverts to the format of hwloc v1.9.
A value of \fB3\fR (or \fBno_ext,no_attr\fR) reverts to the original minimalistic format (before v1.9).
The default is \fB0\fR (or \fBnone\fR).
.TP
\fB\-v\fR \fB\-\-verbose\fR
Include additional detail.
The hwloc-info tool may be used to display even more information
about specific objects.
.TP
\fB\-s\fR \fB\-\-silent\fR
Reduce the amount of details to show.
.TP
\fB\-\-distances\fR
Only display distance matrices.
.TP
\fB\-\-distances-transform\fR <links|merge-switch-ports|transitive-closure>
Try applying a transformation to distances structures before displaying them.
See hwloc_distances_transform() for details.
More transformations may be applied using hwloc-annotate(1)
(and it may save their output to XML).
.TP
\fB\-\-memattrs\fR
Only display memory attributes.
All of them are displayed (while the default textual output selects
memory attribute details depending on the verbosity level).
.TP
\fB\-\-cpukinds\fR
Only display CPU kinds.
CPU kinds are displayed in order, starting from the most energy efficient
ones up to the rather higher performance and power hungry ones.
.TP
\fB\-\-windows\-processor\-groups\fR
On Windows, only show information about processor groups.
All of them are displayed, while the default verbose output
only shows them if there are more than one.
.TP
\fB\-f\fR \fB\-\-force\fR
If the destination file already exists, overwrite it.
.TP
\fB\-l\fR \fB\-\-logical\fR
Display hwloc logical indexes of all objects, with prefix "L#".
.
By default, both logical and physical/OS indexes are displayed for PUs and NUMA nodes,
logical only for cores, dies and packages, and no index for other types.
.TP
\fB\-p\fR \fB\-\-physical\fR
Display OS/physical indexes of all objects, with prefix "P#".
.
By default, both logical and physical/OS indexes are displayed for PUs and NUMA nodes,
logical only for cores, dies and packages, and no index for other types.
.TP
\fB\-c\fR \fB\-\-cpuset\fR
Display the cpuset of each object.
.TP
\fB\-C\fR \fB\-\-cpuset\-only\fR
Only display the cpuset of each object; do not display anything else
about the object.
.TP
\fB\-\-taskset\fR
Show CPU set strings in the format recognized by the taskset command-line
program instead of hwloc-specific CPU set string format.
This option should be combined with \fB\-\-cpuset\fR or \fB\-\-cpuset\-only\fR,
otherwise it will imply \fB\-\-cpuset\fR.
.TP
\fB\-\-only\fR <type>
Only show objects of the given type in the textual output.
.TP
\fB\-\-filter\fR <type>:<kind>, \fB\-\-filter\fR <type>
Filter objects of type <type>, or of any type if <type> is "all".
"io", "cache" and "icache" are also supported.
<kind> specifies the filtering behavior.
If "none" or not specified, all objects of the given type are removed.
If "all", all objects are kept as usual.
If "structure", objects are kept when they bring structure to the topology.
If "important" (only applicable to I/O), only important objects are kept.
See hwloc_topology_set_type_filter() for more details.
hwloc supports filtering any type except PUs and NUMA nodes.
lstopo also offers PU and NUMA node filtering by hiding them in the graphical and textual outputs,
but any object included in them (for instance Misc) will be hidden as well.
Note that PUs and NUMA nodes may not be ignored in the XML output.
Note also that the top-level object type cannot be ignored (usually Machine or System).
.TP
\fB\-\-ignore\fR <type>
This is the old way to specify \fB-\-filter <type>:none\fR.
.TP
\fB\-\-no\-smt\fR
Ignore PUs.
This is identical to \fB-\-filter PU:none\fR.
.TP
\fB\-\-no\-caches\fR
Do not show caches.
This is identical to \fB-\-filter cache:none\fR.
.TP
\fB\-\-no\-useless\-caches\fR
This is identical to \fB-\-filter cache:structure\fR.
.TP
\fB\-\-no\-icaches\fR
This is identical to \fB-\-filter icache:none\fR.
.TP
\fB\-\-disallowed\fR
Include objects disallowed by administrative limitations (e.g Cgroups on Linux).
Offline PUs and NUMA nodes are still ignored.
.TP
\fB\-\-allow\fR <all|local|0xff|nodeset=0xf0>
Include objects disallowed by administrative limitations (implies \fB\-\-disallowed\fR)
and also change the set of allowed ones.
If \fBlocal\fR is given, only objects available to the current process are allowed
(default behavior when loading from the native operating system backend).
It may be useful if the topology was created by another process (with different
administrative restrictions such as Linux Cgroups) and loaded here loaded from XML
or synthetic.
This case implies \fB\-\-thissystem\fR.
If \fBall\fR, all objects are allowed.
If a bitmap is given as a hexadecimal string, it is used as the set of allowed PUs.
If a bitmap is given after prefix \fBnodeset=\fR, it is the set of allowed NUMA nodes.
.TP
\fB\-\-flags\fR <flags>
Enforce topology flags.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_topology_set_flags()\fR.
Those names may be substrings of actual flag names as long as a single one matches,
for instance \fBdisallowed,thissystem_allowed\fR.
The default is \fB8\fR (or \fBimport\fR).
.TP
\fB\-\-merge\fR
Do not show levels that do not have a hierarchical impact.
This sets HWLOC_TYPE_FILTER_KEEP_STRUCTURE for all object types.
This is identical to \fB\-\-filter all:structure\fR.
.TP
\fB\-\-no\-factorize\fR \fB\-\-no\-factorize\fR=<type>
Never factorize identical objects in the graphical output.
If an object type is given, only factorizing of these objects is disabled.
This only applies to normal CPU-side objects, it is independent from PCI collapsing.
.TP
\fB\-\-factorize\fR \fB\-\-factorize\fR=[<type>,]<N>[,<L>[,<F>]
Factorize identical children in the graphical output (enabled by default).
If <N> is specified (4 by default), factorizing only occurs when there are strictly
more than N identical children.
If <L> and <F> are specified, they set the numbers of first and last children to keep
after factorizing.
If an object type is given, only factorizing of these objects is configured.
This only applies to normal CPU-side object, it is independent from PCI collapsing.
.TP
\fB\-\-no\-collapse\fR
Do not collapse identical PCI devices.
By default, identical sibling PCI devices (such as many virtual functions
inside a single physical device) are collapsed.
.TP
\fB\-\-no\-cpukinds\fR
Do not show different kinds of CPUs in the graphical output.
By default, when supported, different types of lines, thickness
and bold font may be used to display PU boxes of different kinds.
.TP
\fB\-\-restrict\fR <cpuset>
Restrict the topology to the given cpuset.
.TP
\fB\-\-restrict\fR nodeset=<nodeset>
Restrict the topology to the given nodeset, unless --restrict-flags specifies something different.
.TP
\fB\-\-restrict\fR binding
Restrict the topology to the current process binding.
This option requires the use of the actual current machine topology
(or any other topology with \fB\-\-thissystem\fR or with
HWLOC_THISSYSTEM set to 1 in the environment).
.TP
\fB\-\-restrict\-flags\fR <flags>
Enforce flags when restricting the topology.
Flags may be given as numeric values or as a comma-separated list of flag names
that are passed to \fIhwloc_topology_restrict()\fR.
Those names may be substrings of actual flag names as long as a single one matches,
for instance \fBbynodeset,memless\fR.
The default is \fB0\fR (or \fBnone\fR).
.TP
\fB\-\-no\-io\fB
Do not show any I/O device or bridge.
This is identical to \fB\-\-filter io:none\fR.
By default, common devices (GPUs, NICs, block devices, ...) and
interesting bridges/switches are shown.
.TP
\fB\-\-no\-bridges\fB
Do not show any I/O bridge except hostbridges.
This is identical to \fB\-\-filter bridge:none\fR.
By default, common devices (GPUs, NICs, block devices, ...) and
interesting bridges/switches are shown.
.TP
\fB\-\-whole\-io\fB
Show all I/O devices and bridges.
This is identical to \fB\-\-filter io:all\fR.
By default, only common devices (GPUs, NICs, block devices, ...) and
interesting bridges/switches are shown.
.TP
\fB\-\-thissystem\fR
Assume that the selected backend provides the topology for the
system on which we are running.
This is useful when loading a custom topology such as an XML file
and using \fB\-\-restrict binding\fR or \fB\-\-allow all\fR.
.TP
\fB\-\-pid\fR <pid>
Detect topology as seen by process <pid>, i.e. as if process <pid> did the
discovery itself.
Note that this can for instance change the set of allowed processors.
Also show this process current CPU and Memory binding by marking the corresponding
PUs and NUMA nodes (in Green in the graphical output, see the COLORS section below,
or by appending \fI(binding)\fR to the verbose text output).
If 0 is given as pid, the current binding for the lstopo process will be shown.
.TP
\fB\-\-ps\fR \fB\-\-top\fR
Show existing processes as misc objects in the output. To avoid uselessly
cluttering the output, only processes that are restricted to some part of the
machine are shown. On Linux, kernel threads are not shown.
If many processes appear, the output may become hard to read anyway,
making the hwloc-ps program more practical.
.TP
\fB\-\-children\-order\fR <order>
Change the order of the different kinds of children with respect to
their parent in the graphical output.
\fI<order>\fR may be a comma-separated list of keywords among:
\fImemory:above\fR displays memory children above other children
(and above the parent if it is a cache).
PUs are therefore below their local NUMA nodes, like hwloc 1.x did.
\fIio:right\fR and \fImisc:right\fR place I/O or Misc children
on the right of CPU children.
\fIio:below\fR and \fImisc:below\fR place I/O or Misc children
below CPU children.
\fIplain\fR places everything not specified together with
normal CPU children.
If only \fIplain\fR is specified, lstopo displays the topology
in a basic manner that strictly matches the actual tree:
Memory, I/O and Misc children are listed below their parent just like any other child.
PUs are therefore on the side of their local NUMA nodes,
below a common ancestor.
This output may result in strange layouts since the size of Memory,
CPU and I/O children may be very different, causing the placement
algorithm to poorly arrange them in rows.
The default order is \fImemory:above,io:right,misc:right\fR which means
Memory children are above CPU children while I/O and Misc are together
on the right.
Up to hwloc 2.5, the default was rather to \fImemory:above,plain\fR.
Additionally, \fIio:right\fR, \fIio:below\fR, \fImisc:right\fR
and \fImisc:below\fR may be suffixed with
\fI:horiz\fR, \fI:vert\fR or \fI:rect\fR to force the horizontal,
vertical or rectangular layout of children inside these sections.
See also the GRAPHICAL OUTPUT and LAYOUT sections below.
.TP
\fB\-\-fontsize\fR <size>
Set the size of text font in the graphical output.
The default is 10.
Boxes are scaled according to the text size.
The \fILSTOPO_TEXT_XSCALE\fR environment variable may be used
to further scale the width of boxes (its default value is 1.0).
The \fB\-\-fontsize\fR option is ignored in the ASCII backend.
.TP
\fB\-\-gridsize\fR <size>
Set the margin between elements in the graphical output.
The default is 7. It was 10 prior to hwloc 2.1.
This option is ignored in the ASCII backend.
.TP
\fB\-\-linespacing\fR <size>
Set the spacing between lines of text in the graphical output.
The default is 4.
The option was included in \fB\-\-gridsize\fR prior to hwloc 2.1 (and its default was 10).
This option is ignored in the ASCII backend.
.TP
\fB\-\-thickness\fR <size>
Set the thickness of lines and boxes in the graphical output.
The default is 1.
This option is ignored in the ASCII backend.
.TP
\fB\-\-horiz\fR, \fB\-\-horiz\fR=<type1,...>
Force a horizontal graphical layout instead of nearly 4/3 ratio in the graphical output.
If a comma-separated list of object types is given, the layout only
applies to the corresponding \fIcontainer\fR objects.
Ignored for bridges since their children are always vertically aligned.
.TP
\fB\-\-vert\fR, \fB\-\-vert\fR=<type1,...>
Force a vertical graphical layout instead of nearly 4/3 ratio in the graphical output.
If a comma-separated list of object types is given, the layout only
applies to the corresponding \fIcontainer\fR objects.
.TP
\fB\-\-rect\fR, \fB\-\-rect\fR=<type1,...>
Force a rectangular graphical layout with nearly 4/3 ratio in the graphical output.
If a comma-separated list of object types is given, the layout only
applies to the corresponding \fIcontainer\fR objects.
Ignored for bridges since their children are always vertically aligned.
.TP
\fB\-\-no\-text\fR, \fB\-\-no\-text\fR=<type1,...>
Do not display any text in boxes in the graphical output.
If a comma-separated list of object types is given, text is disabled for the corresponding objects.
This is mostly useful for removing text from Group objects.
.TP
\fB\-\-text\fR, \fB\-\-text\fR=<type1,...>
Display text in boxes in the graphical output (default).
If a comma-separated list of object types is given, text is reenabled for the corresponding objects
(if it was previously disabled with \fB\-\-no\-text\fR).
.TP
\fB\-\-no\-index\fR, \fB\-\-no\-index\fR=<type1,...>
Do not show object indexes in the graphical output.
If a comma-separated list of object types is given, indexes are disabled for the corresponding objects.
.TP
\fB\-\-index\fR, \fB\-\-index=\fR<type1,...>
Show object indexes in the graphical output (default).
If a comma-separated list of object types is given, indexes are reenabled for the corresponding objects
(if they were previously disabled with \fB\-\-no\-index\fR).
.TP
\fB\-\-no\-attrs\fR, \fB\-\-no\-attrs\fR=<type1,...>
Do not show object attributes (such as memory size, cache size, PCI bus ID, PCI link speed, etc.)
in the graphical output.
If a comma-separated list of object types is given, attributes are disabled for the corresponding objects.
.TP
\fB\-\-attrs\fR, \fB\-\-attrs=\fR<type1,...>
Show object attributes (such as memory size, cache size, PCI bus ID, PCI link speed, etc.)
in the graphical output (default).
If a comma-separated list of object types is given, attributes are reenabled for the corresponding objects
(if they were previously disabled with \fB\-\-no\-attrs\fR).
.TP
\fB\-\-no\-legend\fR
Remove all text legend lines at the bottom of the graphical output.
.TP
\fB\-\-no\-default\-legend\fR
Remove default text legend lines at the bottom of the graphical output.
User-added legend lines with \fB\-\-append\-legend\fB or the "lstopoLegend" info
are still displayed if any.
.TP
\fB\-\-append\-legend\fR <line>
Append the line of text to the bottom of the legend in the graphical output.
If adding multiple lines, each line should be given separately by
passing this option multiple times.
Additional legend lines may also be specified inside the topology using the
"lstopoLegend" info attributes on the topology root object.
.TP
\fB\-\-grey\fR, \fB\-\-greyscale\fR
Use greyscale instead of colors in the graphical output.
.TP
\fB\-\-palette\fR <grey|greyscale|defaut|colors|white|none>
Change the color palette.
Passing \fIgrey\fR or \fIgreyscale\fR is identical to passing \fB\-\-grey\fR or \fB\-\-greyscale\fR.
Passing \fIwhite\fR or \fInone\fR uses white instead of colors for all box backgrounds.
Passing \fIdefault\fR or \fIcolors\fR reverts back to the default color palette.
.TP
\fB\-\-palette\fR type=#rrggbb
Replace the color of the given box type with the given 3x8bit hexadecimal RGB combination (e.g. \fI#ff0000\fR is red).
Existing types are \fImachine\fR, \fIgroup\fR, \fIpackage\fR, \fIgroup_in_package\fR, \fIdie\fR, \fIcore\fR, \fIpu\fR, \fInumanode\fR, \fImemories\fR (box containing multiple memory children), \fIcache\fR, \fIpcidev\fR, \fIosdev\fR, \fIbridge\fR, and \fImisc\fR.
See also CUSTOM COLOR below for customizing individual objects.
.TP
\fB\-\-binding\-color\fR <none|#rrggbb>
Do not colorize PUs and NUMA nodes according to the binding in the graphical output.
Or change the color to the given 3x8bit hexadecimal RGB combination (e.g. \fI#ff0000\fR is red).
.TP
\fB\-\-disallowed\-color\fR <none|#rrggbb>
Do not colorize disallowed PUs and NUMA nodes in the graphical output.
Or change the color to the given 3x8bit hexadecimal RGB combination (e.g. \fI#00ff00\fR is green).
.TP
\fB\-\-top\-color\fR <none|#rrggbb>
Do not colorize task objects in the graphical output when \-\-top is given.
Or change the color to the given 3x8bit hexadecimal RGB combination (e.g. \fI#0000ff\fR is blue).
.TP
\fB\-\-version\fR
Report version and exit.
.TP
\fB\-h\fR \fB\-\-help\fR
Display help message and exit.
.
.\" --shmem-output-addr is undocumented on purpose
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
lstopo and lstopo-no-graphics are capable of displaying a topological map of
the system in a variety of different output formats. The only difference
between lstopo and lstopo-no-graphics is that graphical outputs are only
supported by lstopo, to reduce dependencies on external libraries.
hwloc-ls is identical to lstopo-no-graphics.
.
.PP
The filename specified directly implies the output format that will be
used; see the OUTPUT FORMATS section, below. Output formats that
support color will indicate specific characteristics about individual
CPUs by their color; see the COLORS section, below.
.
.\" **************************
.\" Output Formats Section
.\" **************************
.SH OUTPUT FORMATS
.
.PP
By default, if no output filename is specific, the output is sent
to a graphical window if possible in the current environment
(DISPLAY environment variable set on Unix, etc.).
Otherwise, a text summary is displayed in the console.
.
.PP
The filename on the command line usually determines the format of the output.
There are a few filenames that indicate specific output formats and
devices (e.g., a filename of "-" will output a text summary to
stdout), but most filenames indicate the desired output format by
their suffix (e.g., "topo.png" will output a PNG-format file).
.PP
The format of the output may also be changed with "\-\-of".
For instance, "\-\-of pdf" will generate a PDF-format file on the standard
output, while "\-\-of fig toto" will output a Xfig-format file named "toto".
.
.PP
The list of currently supported formats is given below. Any of them may
be used with "\-\-of" or as a filename suffix.
.TP
.B default
Send the output to a window or to the console depending on the environment.
.
.TP
.B console
Send a text summary to stdout.
Binding or unallowed processors are only annotated in this mode
if verbose; see the COLORS section, below.
.
.TP
.B ascii
Output an ASCII art representation of the map
(formerly called \fBtxt\fR).
If outputting to stdout and if colors are supported on the terminal,
the output will be colorized.
.
.TP
\fBtikz\fR or \fBtex\fR
Output a LaTeX tikzpicture representation of the map that can be
compiled with a LaTeX compiler.
.
.TP
.B fig
Output a representation of the map that can be loaded in Xfig.
.
.TP
.B svg
Output a SVG representation of the map,
using Cairo (by default, if supported)
or a native SVG backend (fallback, always supported).
See \fBcairosvg\fR and \fBnativesvg\fR below.
.
.TP
\fBcairosvg\fR or \fBsvg(cairo)\fR
If lstopo was compiled with the proper support,
output a SVG representation of the map using Cairo.
.
.TP
\fBnativesvg\fR or \fBsvg(native)\fR
Output a SVG representation of the map using the native SVG backend.
It may be less pretty than the Cairo output, but it is always supported,
and SVG objects have attributes for identifying and manipulating them.
See dynamic_SVG_example.html for an example.
.
.TP
.B pdf
If lstopo was compiled with the proper
support, lstopo outputs a PDF representation of the map.
.
.TP
.B ps
If lstopo was compiled with the proper
support, lstopo outputs a Postscript representation of the map.
.
.TP
.B png
If lstopo was compiled with the proper
support, lstopo outputs a PNG representation of the map.
.
.TP
.B synthetic
If the topology is symmetric
(which requires that the root object has its symmetric_subtree field set),
lstopo outputs a synthetic description string.
This output may be reused as an input synthetic topology
description later.
See also the Synthetic topologies section in the documentation.
Note that Misc and I/O devices are ignored during this export.
.
.TP
.B xml
If lstopo was compiled with the proper
support, lstopo outputs an XML representation of the map.
It may be reused later, even on another machine, with lstopo \-\-input,
the HWLOC_XMLFILE environment variable, or the hwloc_topology_set_xml()
function.
.PP
The following special names may be used:
.TP
.B \-
Send a text summary to stdout.
.
.TP
.B /dev/stdout
Send a text summary to stdout. It is effectively the same as
specifying "\-".
.
.TP
.B \-.<format>
If the entire filename is "\-.<format>", lstopo behaves as if
"\-\-of <format> -" was given, which means a file of the given format
is sent to the standard output.
.PP
See the output of "lstopo \-\-help" for a specific list of what
graphical output formats are supported in your hwloc installation.
.
.\" **************************
.\" Graphical Section
.\" **************************
.
.SH GRAPHICAL OUTPUT
The graphical output is made of nested boxes representing
the inclusion of objects in the hierarchy of resources.
Usually a Machine box contains one or several Package boxes,
that contain multiple Core boxes, with one or several PUs each.
.SS Caches
Caches are displayed in a slightly different manner because
they do not actually include computing resources such as cores.
For instance, a L2 Cache shared by a pair of Cores is drawn
as a Cache box on top of two Core boxes
(instead of having Core boxes inside the Cache box).
.SS NUMA nodes and Memory-side Caches
By default, NUMA nodes boxes are drawn on top of their local
computing resources.
For instance, a processor Package containing one NUMA node
and four Cores is displayed as a Package box containing
the NUMA node box above four Core boxes.
If a NUMA node is local to the L3 Cache, the NUMA node is displayed
above that Cache box.
All this specific drawing strategy for memory objects may be disabled
by passing command-line option \fB\-\-children\-order plain\fR.
If multiple NUMA nodes are attached to the same parent object,
they are displayed inside an additional unnamed memory box.
If some Memory-side Caches exist in front of some NUMA nodes,
they are drawn as boxes immediately above them.
.SS PCI bridges, PCI devices and OS devices
The PCI hierarchy is not drawn as a set of included boxes but rather
as a tree of bridges (that may actually be switches) with links between them.
The tree starts with a small square on the left for the
hostbridge or root complex.
It ends with PCI device boxes on the right.
Intermediate PCI bridges/switches may appear as additional small
squares in the middle.
PCI devices on the right of the tree are boxes containing
their PCI bus ID (such as 00:02.3).
They may also contain sub-boxes for OS device objects
such as a network interface \fIeth0\fR or a CUDA GPU \fIcuda0\fR.
The datarate of a PCI link may be written (in GB/s) right below
its drawn line (if the operating system and/or libraries are able
to report that information).
This datarate is the currently configured PCI datarate.
It may change during execution since some devices are able to
slow their PCI links down when idle.
When there is a single link (horizontal line) on the right of a
PCI bridge, it means that a single device or bridge is connected
on the secondary PCI bus behind that bridge.
When there is a vertical line, it means that multiple devices
and/or bridges are connected to the same secondary PCI bus.
.
.\" **************************
.\" Layout Section
.\" **************************
.SH LAYOUT
In its graphical output, lstopo uses simple rectangular heuristics
to try to achieve a 4/3 ratio between width and height.
Although the hierarchy of resources is properly reflected,
the exact physical organization (NUMA distances, rings,
complete graphs, etc.) is currently ignored.
The layout of a level may be changed with \fB\-\-vert\fR, \fB\-\-horiz\fR,
and \fB\-\-rect\fR to force a parent object to arrange its children
in vertical, horizontal or rectangular manners respectively.
The position of Memory, I/O and Misc children with respect to other
children objects may be changed using \fB\-\-children\-order\fR.
This effectivement divides children into multiple sections.
The layout of children is first computed inside each section,
before sections are placed inside (or below) the parent box.
The vertical/horizontal/rectangular layout of these additional
sections may also be configured through \fB\-\-children\-order\fR.
.
.\" **************************
.\" Colors Section
.\" **************************
.SH COLORS
Individual CPUs and NUMA nodes are colored in the graphical output
formats to indicate different characteristics:
.TP
Green
The topology is reported as seen by a specific process (see \fB\-\-pid\fR),
and the given CPU or NUMA node is in this process CPU or Memory binding mask.
.TP
White
The CPU or NUMA node is in the allowed set (see below).
If the topology is reported as seen by a specific process (see \fB\-\-pid\fR),
the object is also not in this process binding mask.
.TP
Red
The CPU or NUMA node is not in the allowed set (see below).
.
.PP
The "allowed set" is the set of CPUs or NUMA nodes to which the current process is
allowed to bind. The allowed set is usually either inherited from the
parent process or set by administrative qpolicies on the system. Linux
cpusets are one example of limiting the allowed set for a process and
its children to be less than the full set of CPUs or NUMA nodes on the system.
.PP
Different processes may therefore have different CPUs or NUMA nodes in the allowed
set. Hence, invoking lstopo in different contexts and/or as different
users may display different colors for the same individual CPUs (e.g.,
running lstopo in one context may show a specific CPU as red, but
running lstopo in a different context may show the same CPU as white).
.PP
Some lstopo output modes, e.g. the console mode (default non-graphical output),
do not support colors at all.
The console mode displays the above characteristics by appending text
to each PU line if verbose messages are enabled.
.
.SH CUSTOM COLORS
The colors of different kinds of boxes may be configured with \fB\-\-palette\fR.
The color of each object in the graphical output may also be enforced by
specifying a "lstopoStyle" info attribute in that object.
Its value should be a semi-colon separated list of "<attribute>=#rrggbb"
where rr, gg and bb are the RGB components of a color,
each between 0 and 255, in hexadecimal (00 to ff).
.
<attribute> may be
.TP
\fBBackground\fR
Sets the background color of the main object box.
.TP
\fBText\fR
Sets the color of the text showing the object name, type, index, etc.
.TP
\fBText2\fB
Sets the color of the additional text near the object,
for instance the link speed behind a PCI bridge.
.PP
The "lstopoStyle" info may be added to a temporarily-saved XML topologies
with hwloc-annotate, or with hwloc_obj_add_info().
.
For instance, to display all core objects in blue (with white names):
lstopo save.xml
hwloc-annotate save.xml save.xml core:all info lstopoStyle "Background=#0000ff;Text=#ffffff"
lstopo -i save.xml
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.
To display the machine topology in textual mode:
lstopo-no-graphics
To display the machine topology in ascii-art mode:
lstopo-no-graphics -.ascii
To display in graphical mode (assuming that the DISPLAY environment
variable is set to a relevant value):
lstopo
To export the topology to a PNG file:
lstopo file.png
To export an XML file on a machine and later display the corresponding
graphical output on another machine:
machine1$ lstopo file.xml
<transfer file.xml from machine1 to machine2>
machine2$ lstopo --input file.xml
To save the current machine topology to XML and later reload it faster
while still considering it as the current machine:
$ lstopo file.xml
<...>
$ lstopo --input file.xml --thissystem
To restrict an XML topology to only physical processors 0, 1, 4 and 5:
lstopo --input file.xml --restrict 0x33 newfile.xml
To restrict an XML topology to only numa node whose logical index is 1:
lstopo --input file.xml --restrict $(hwloc-calc --input file.xml node:1) newfile.xml
To display a summary of the topology:
lstopo -s
To get more details about the topology:
lstopo -v
To only show cores:
lstopo --only core
To show cpusets:
lstopo --cpuset
To only show the cpusets of package:
lstopo --only package --cpuset-only
Simulate a fake hierarchy; this example shows with 2 NUMA nodes of 2
processor units:
lstopo --input "node:2 2"
To count the number of logical processors in the system
lstopo --only pu | wc -l
To append the kernel release and version to the graphical legend:
lstopo --append-legend "Kernel release: $(uname -r)" --append-legend "Kernel version: $(uname -v)"
.
.\" **************************
.\" Notes Section
.\" **************************
.SH NOTES
.
lstopo displays memory and cache sizes with units such as
\fBkB\fR (1 kilobyte = 1000 bytes) or \fBGB\fR (1 gigabyte = 1000*1000*1000 bytes)
while it actually means
\fBKiB\fR (1 kibibyte = 1024 bytes) or \fBGiB\fR (1 gibibytes = 1024*1024*1024 bytes) .
.
.\" **************************
.\" See also section
.\" **************************
.SH SEE ALSO
.
.ft R
hwloc(7), hwloc-info(1), hwloc-bind(1), hwloc-annotate(1), hwloc-ps(1), hwloc-gather-topology(1), hwloc-gather-cpuid(1)
.sp

View File

@@ -0,0 +1 @@
lstopo-no-graphics.1

View File

@@ -1,265 +1 @@
.\" Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
.\" Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
.TH mpic++ 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.
.SH NAME
mpic++ -- Open MPI C++ wrapper compiler
.
.SH SYNTAX
mpic++ [-showme|-showme:compile|-showme:link] ...
.
.SH OPTIONS
.TP
--showme
This option comes in several different variants (see below). None of
the variants invokes the underlying compiler; they all provide
information on how the underlying compiler would have been invoked had
.I --showme
not been used.
The basic
.I --showme
option outputs the command line that would be executed to compile the
program. \fBNOTE:\fR If a non-filename argument is passed on the
command line, the \fI-showme\fR option will \fInot\fR display any
additional flags. For example, both "mpic++ --showme" and
"mpic++ --showme my_source.c" will show all the wrapper-supplied
flags. But "mpic++ --showme -v" will only show the underlying
compiler name and "-v".
.TP
--showme:compile
Output the compiler flags that would have been supplied to the
C++ compiler.
.TP
--showme:link
Output the linker flags that would have been supplied to the
C++ compiler.
.TP
--showme:command
Outputs the underlying C++ compiler command (which may be one
or more tokens).
.TP
--showme:incdirs
Outputs a space-delimited (but otherwise undecorated) list of
directories that the wrapper compiler would have provided to the
underlying C++ compiler to indicate where relevant header files
are located.
.TP
--showme:libdirs
Outputs a space-delimited (but otherwise undecorated) list of
directories that the wrapper compiler would have provided to the
underlying linker to indicate where relevant libraries are located.
.TP
--showme:libs
Outputs a space-delimited (but otherwise undecorated) list of library
names that the wrapper compiler would have used to link an
application. For example: "mpi open-rte open-pal util".
.TP
--showme:version
Outputs the version number of Open MPI.
.TP
--showme:help
Output a brief usage help message.
.PP
See the man page for your underlying C++ compiler for other
options that can be passed through mpic++.
.
.
.SH DESCRIPTION
.PP
Conceptually, the role of these commands is quite simple:
transparently add relevant compiler and linker flags to the user's
command line that are necessary to compile / link Open MPI
programs, and then invoke the underlying compiler to actually perform
the command.
.
.PP
As such, these commands are frequently referred to as "wrapper"
compilers because they do not actually compile or link applications
themselves; they only add in command line flags and invoke the
back-end compiler.
.
.
.SS Background
Open MPI is comprised of three software layers: OPAL (Open Portable
Access Layer), ORTE (Open Run-Time Environment), and OMPI (Open MPI).
There are wrapper compilers for each layer; each layer's wrapper only
links in the libraries relevant for that layer. Specifically, each
layer provides the following wrapper compilers:
.
.TP 4
OPAL
\fIopalcc\fR and \fIopalc++\fR
.
.TP
ORTE
\fIortecc\fR and \fIortec++\fR
.
.TP
OMPI
\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
case-senstive file systems), and \fImpifort\fR (and its legacy/deprecated
names \fImpif77\fR and \fImpif90\fR). Note
that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
underlying C++ compiler with the same options. All are provided as
compatibility with other MPI implementations.
.
.
.SS Fortran Notes
.PP
The Fortran wrapper compiler for MPI (\fImpifort\fR, and its
legacy/deprecated names \fImpif77\fR and \fImpif90\fR) can compile and
link MPI applications that use any/all of the MPI Fortran bindings:
.IR mpif.h ,
the
.I mpi
module, and the
.I mpi_f08
module (assuming Open MPI was installed with support for each of these
Fortran bindings). Specifically: it is no longer necessary to use
different wrapper compilers for applications that use
.I mpif.h
vs. applications that use the
.I mpi
module -- just use
.I mpifort
for all Fortran MPI applications.
.
.PP
Note, however, that the Fortran compiler may require additional
command-line options to enforce a specific Fortran dialect. For
example, in some versions of the IBM XLF compiler, if xlf90 is the
underlying Fortran compiler,
.IR -qfixed
may be necessary to compile fixed-format Fortran source files.
.
.PP
Finally, note that
.I mpifort
will be inoperative and will return an error on use if Fortran support
was not built into the MP Ilayer.
.
.
.SS Overview
\fImpic++\fR is a convenience wrappers for the underlying
C++ compiler. Translation of an Open MPI program requires the
linkage of the Open MPI-specific libraries which may not reside in
one of the standard search directories of ld(1). It also often
requires the inclusion of header files what may also not be found in a
standard location.
.
.PP
\fImpic++\fR passes its arguments to the underlying C++
compiler along with the -I, -L and -l options required by Open MPI
programs.
.
.PP
The Open MPI Team \fIstrongly\fR encourages using the wrapper
compilers instead of attempting to link to the Open MPI libraries
manually. This allows the specific implementation of Open MPI to
change without forcing changes to linker directives in users'
Makefiles. Indeed, the specific set of flags and libraries used by
the wrapper compilers depends on how Open MPI was configured and
built; the values can change between different installations of the
same version of Open MPI.
.
.PP
Indeed, since the wrappers are simply thin shells on top of an
underlying compiler, there are very, very few compelling reasons
\fInot\fR to use \fImpic++\fR. When it is not possible to use the
wrappers directly, the \fI-showme:compile\fR and \fI-showme:link\fR
options should be used to determine what flags the wrappers would have
used. For example:
.
.PP
shell$ cc -c file1.c `mpicc -showme:compile`
.
.PP
shell$ cc -c file2.c `mpicc -showme:compile`
.
.PP
shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
.
.
.SH NOTES
.PP
It is possible to make the wrapper compilers multi-lib aware. That
is, the libraries and includes specified may differ based on the
compiler flags specified (for example, with the GNU compilers on
Linux, a different library path may be used if -m32 is seen versus
-m64 being seen). This is not the default behavior in a standard
build, but can be activated (for example, in a binary package
providing both 32 and 64 bit support). More information can be found
at:
.PP
https://github.com/open-mpi/ompi/wiki/compilerwrapper3264
.
.
.SH FILES
.PP
The string that the wrapper compilers insert into the command line
before invoking the underlying compiler are stored in a text file
created by Open MPI and installed to
\fI$pkgdata/mpic++-wrapper-data.txt\fR, where \fI$pkgdata\fR
is typically \fI$prefix/share/openmpi\fR, and \fI$prefix\fR is the top
installation directory of Open MPI.
.
.PP
It is rarely necessary to edit this file, but it can be examined to
gain insight into what flags the wrappers are placing on the command
line.
.
.
.SH ENVIRONMENT VARIABLES
.PP
By default, the wrappers use the compilers that were selected when
Open MPI was configured. These compilers were either found
automatically by Open MPI's "configure" script, or were selected by
the user in the CC, CXX, F77, and/or FC environment variables
before "configure" was invoked. Additionally, other arguments
specific to the compiler may have been selected by configure.
.
.PP
These values can be selectively overridden by either editing the text
files containing this configuration information (see the \fBFILES\fR
section), or by setting selected environment variables of the
form "OMPI_value".
.
.PP
Valid value names are:
.
.TP
CPPFLAGS
Flags added when invoking the preprocessor (C or C++)
.
.TP
LDFLAGS
Flags added when invoking the linker (C, C++, or Fortran)
.
.TP
LIBS
Libraries added when invoking the linker (C, C++, or Fortran)
.
.TP
CC
C compiler
.
.TP
CFLAGS
C compiler flags
.
.TP
CXX
C++ compiler
.
.TP
CXXFLAGS
C++ compiler flags
.
.
.TP
FC
Fortran compiler
.
.TP
FCFLAGS
Fortran compiler flags
.so man1/ompi-wrapper-compiler.1

View File

@@ -0,0 +1 @@
.so man1/ompi-wrapper-compiler.1

View File

@@ -1,265 +1 @@
.\" Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
.\" Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
.TH mpicxx 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.
.SH NAME
mpicxx -- Open MPI C++ wrapper compiler
.
.SH SYNTAX
mpicxx [-showme|-showme:compile|-showme:link] ...
.
.SH OPTIONS
.TP
--showme
This option comes in several different variants (see below). None of
the variants invokes the underlying compiler; they all provide
information on how the underlying compiler would have been invoked had
.I --showme
not been used.
The basic
.I --showme
option outputs the command line that would be executed to compile the
program. \fBNOTE:\fR If a non-filename argument is passed on the
command line, the \fI-showme\fR option will \fInot\fR display any
additional flags. For example, both "mpicxx --showme" and
"mpicxx --showme my_source.c" will show all the wrapper-supplied
flags. But "mpicxx --showme -v" will only show the underlying
compiler name and "-v".
.TP
--showme:compile
Output the compiler flags that would have been supplied to the
C++ compiler.
.TP
--showme:link
Output the linker flags that would have been supplied to the
C++ compiler.
.TP
--showme:command
Outputs the underlying C++ compiler command (which may be one
or more tokens).
.TP
--showme:incdirs
Outputs a space-delimited (but otherwise undecorated) list of
directories that the wrapper compiler would have provided to the
underlying C++ compiler to indicate where relevant header files
are located.
.TP
--showme:libdirs
Outputs a space-delimited (but otherwise undecorated) list of
directories that the wrapper compiler would have provided to the
underlying linker to indicate where relevant libraries are located.
.TP
--showme:libs
Outputs a space-delimited (but otherwise undecorated) list of library
names that the wrapper compiler would have used to link an
application. For example: "mpi open-rte open-pal util".
.TP
--showme:version
Outputs the version number of Open MPI.
.TP
--showme:help
Output a brief usage help message.
.PP
See the man page for your underlying C++ compiler for other
options that can be passed through mpicxx.
.
.
.SH DESCRIPTION
.PP
Conceptually, the role of these commands is quite simple:
transparently add relevant compiler and linker flags to the user's
command line that are necessary to compile / link Open MPI
programs, and then invoke the underlying compiler to actually perform
the command.
.
.PP
As such, these commands are frequently referred to as "wrapper"
compilers because they do not actually compile or link applications
themselves; they only add in command line flags and invoke the
back-end compiler.
.
.
.SS Background
Open MPI is comprised of three software layers: OPAL (Open Portable
Access Layer), ORTE (Open Run-Time Environment), and OMPI (Open MPI).
There are wrapper compilers for each layer; each layer's wrapper only
links in the libraries relevant for that layer. Specifically, each
layer provides the following wrapper compilers:
.
.TP 4
OPAL
\fIopalcc\fR and \fIopalc++\fR
.
.TP
ORTE
\fIortecc\fR and \fIortec++\fR
.
.TP
OMPI
\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
case-senstive file systems), and \fImpifort\fR (and its legacy/deprecated
names \fImpif77\fR and \fImpif90\fR). Note
that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
underlying C++ compiler with the same options. All are provided as
compatibility with other MPI implementations.
.
.
.SS Fortran Notes
.PP
The Fortran wrapper compiler for MPI (\fImpifort\fR, and its
legacy/deprecated names \fImpif77\fR and \fImpif90\fR) can compile and
link MPI applications that use any/all of the MPI Fortran bindings:
.IR mpif.h ,
the
.I mpi
module, and the
.I mpi_f08
module (assuming Open MPI was installed with support for each of these
Fortran bindings). Specifically: it is no longer necessary to use
different wrapper compilers for applications that use
.I mpif.h
vs. applications that use the
.I mpi
module -- just use
.I mpifort
for all Fortran MPI applications.
.
.PP
Note, however, that the Fortran compiler may require additional
command-line options to enforce a specific Fortran dialect. For
example, in some versions of the IBM XLF compiler, if xlf90 is the
underlying Fortran compiler,
.IR -qfixed
may be necessary to compile fixed-format Fortran source files.
.
.PP
Finally, note that
.I mpifort
will be inoperative and will return an error on use if Fortran support
was not built into the MP Ilayer.
.
.
.SS Overview
\fImpicxx\fR is a convenience wrappers for the underlying
C++ compiler. Translation of an Open MPI program requires the
linkage of the Open MPI-specific libraries which may not reside in
one of the standard search directories of ld(1). It also often
requires the inclusion of header files what may also not be found in a
standard location.
.
.PP
\fImpicxx\fR passes its arguments to the underlying C++
compiler along with the -I, -L and -l options required by Open MPI
programs.
.
.PP
The Open MPI Team \fIstrongly\fR encourages using the wrapper
compilers instead of attempting to link to the Open MPI libraries
manually. This allows the specific implementation of Open MPI to
change without forcing changes to linker directives in users'
Makefiles. Indeed, the specific set of flags and libraries used by
the wrapper compilers depends on how Open MPI was configured and
built; the values can change between different installations of the
same version of Open MPI.
.
.PP
Indeed, since the wrappers are simply thin shells on top of an
underlying compiler, there are very, very few compelling reasons
\fInot\fR to use \fImpicxx\fR. When it is not possible to use the
wrappers directly, the \fI-showme:compile\fR and \fI-showme:link\fR
options should be used to determine what flags the wrappers would have
used. For example:
.
.PP
shell$ cc -c file1.c `mpicc -showme:compile`
.
.PP
shell$ cc -c file2.c `mpicc -showme:compile`
.
.PP
shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
.
.
.SH NOTES
.PP
It is possible to make the wrapper compilers multi-lib aware. That
is, the libraries and includes specified may differ based on the
compiler flags specified (for example, with the GNU compilers on
Linux, a different library path may be used if -m32 is seen versus
-m64 being seen). This is not the default behavior in a standard
build, but can be activated (for example, in a binary package
providing both 32 and 64 bit support). More information can be found
at:
.PP
https://github.com/open-mpi/ompi/wiki/compilerwrapper3264
.
.
.SH FILES
.PP
The string that the wrapper compilers insert into the command line
before invoking the underlying compiler are stored in a text file
created by Open MPI and installed to
\fI$pkgdata/mpicxx-wrapper-data.txt\fR, where \fI$pkgdata\fR
is typically \fI$prefix/share/openmpi\fR, and \fI$prefix\fR is the top
installation directory of Open MPI.
.
.PP
It is rarely necessary to edit this file, but it can be examined to
gain insight into what flags the wrappers are placing on the command
line.
.
.
.SH ENVIRONMENT VARIABLES
.PP
By default, the wrappers use the compilers that were selected when
Open MPI was configured. These compilers were either found
automatically by Open MPI's "configure" script, or were selected by
the user in the CC, CXX, F77, and/or FC environment variables
before "configure" was invoked. Additionally, other arguments
specific to the compiler may have been selected by configure.
.
.PP
These values can be selectively overridden by either editing the text
files containing this configuration information (see the \fBFILES\fR
section), or by setting selected environment variables of the
form "OMPI_value".
.
.PP
Valid value names are:
.
.TP
CPPFLAGS
Flags added when invoking the preprocessor (C or C++)
.
.TP
LDFLAGS
Flags added when invoking the linker (C, C++, or Fortran)
.
.TP
LIBS
Libraries added when invoking the linker (C, C++, or Fortran)
.
.TP
CC
C compiler
.
.TP
CFLAGS
C compiler flags
.
.TP
CXX
C++ compiler
.
.TP
CXXFLAGS
C++ compiler flags
.
.
.TP
FC
Fortran compiler
.
.TP
FCFLAGS
Fortran compiler flags
.so man1/ompi-wrapper-compiler.1

File diff suppressed because it is too large Load Diff

View File

@@ -1,48 +1 @@
.\" Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
.\" Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
.TH "mpif77,mpif90" 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.
.SH NAME
mpif77, mpif90 -- Deprecated Open MPI Fortran wrapper compilers
.
.SH SYNTAX
mpif90 ...
.
.\" **************************
.\" Description Section
.\" **************************
.
.SH DESCRIPTION
.PP
The
.I mpif77
and
.I mpif90
wrapper compiler names are deprecated, and will disappear in a future
version of Open MPI. You should use the
.I mpifort
wrapper compiler, instead. While they are deprecated,
.I mpif77
and
.I mpif90
accept all the same parameters as
.IR mpifort ,
and behaves the same as
.IR mpifort .
.
.PP
With
.IR mpifort ,
you can compile any Fortran program that uses the "mpif.h", "use mpi",
and/or "use mpi_f08" MPI Fortran interfaces.
.
.PP
See mpifort(1) for more details.
.
.\" **************************
.\" See Also Section
.\" **************************
.
.SH SEE ALSO
mpifort(1)
.
.so man1/ompi-wrapper-compiler.1

View File

@@ -1,48 +1 @@
.\" Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
.\" Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
.TH "mpif77,mpif90" 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.
.SH NAME
mpif77, mpif90 -- Deprecated Open MPI Fortran wrapper compilers
.
.SH SYNTAX
mpif90 ...
.
.\" **************************
.\" Description Section
.\" **************************
.
.SH DESCRIPTION
.PP
The
.I mpif77
and
.I mpif90
wrapper compiler names are deprecated, and will disappear in a future
version of Open MPI. You should use the
.I mpifort
wrapper compiler, instead. While they are deprecated,
.I mpif77
and
.I mpif90
accept all the same parameters as
.IR mpifort ,
and behaves the same as
.IR mpifort .
.
.PP
With
.IR mpifort ,
you can compile any Fortran program that uses the "mpif.h", "use mpi",
and/or "use mpi_f08" MPI Fortran interfaces.
.
.PP
See mpifort(1) for more details.
.
.\" **************************
.\" See Also Section
.\" **************************
.
.SH SEE ALSO
mpifort(1)
.
.so man1/ompi-wrapper-compiler.1

View File

@@ -1,265 +1 @@
.\" Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
.\" Copyright (c) 2011-2012 Cisco Systems, Inc. All rights reserved.
.TH mpifort 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.
.SH NAME
mpifort -- Open MPI Fortran wrapper compiler
.
.SH SYNTAX
mpifort [-showme|-showme:compile|-showme:link] ...
.
.SH OPTIONS
.TP
--showme
This option comes in several different variants (see below). None of
the variants invokes the underlying compiler; they all provide
information on how the underlying compiler would have been invoked had
.I --showme
not been used.
The basic
.I --showme
option outputs the command line that would be executed to compile the
program. \fBNOTE:\fR If a non-filename argument is passed on the
command line, the \fI-showme\fR option will \fInot\fR display any
additional flags. For example, both "mpifort --showme" and
"mpifort --showme my_source.c" will show all the wrapper-supplied
flags. But "mpifort --showme -v" will only show the underlying
compiler name and "-v".
.TP
--showme:compile
Output the compiler flags that would have been supplied to the
Fortran compiler.
.TP
--showme:link
Output the linker flags that would have been supplied to the
Fortran compiler.
.TP
--showme:command
Outputs the underlying Fortran compiler command (which may be one
or more tokens).
.TP
--showme:incdirs
Outputs a space-delimited (but otherwise undecorated) list of
directories that the wrapper compiler would have provided to the
underlying Fortran compiler to indicate where relevant header files
are located.
.TP
--showme:libdirs
Outputs a space-delimited (but otherwise undecorated) list of
directories that the wrapper compiler would have provided to the
underlying linker to indicate where relevant libraries are located.
.TP
--showme:libs
Outputs a space-delimited (but otherwise undecorated) list of library
names that the wrapper compiler would have used to link an
application. For example: "mpi open-rte open-pal util".
.TP
--showme:version
Outputs the version number of Open MPI.
.TP
--showme:help
Output a brief usage help message.
.PP
See the man page for your underlying Fortran compiler for other
options that can be passed through mpifort.
.
.
.SH DESCRIPTION
.PP
Conceptually, the role of these commands is quite simple:
transparently add relevant compiler and linker flags to the user's
command line that are necessary to compile / link Open MPI
programs, and then invoke the underlying compiler to actually perform
the command.
.
.PP
As such, these commands are frequently referred to as "wrapper"
compilers because they do not actually compile or link applications
themselves; they only add in command line flags and invoke the
back-end compiler.
.
.
.SS Background
Open MPI is comprised of three software layers: OPAL (Open Portable
Access Layer), ORTE (Open Run-Time Environment), and OMPI (Open MPI).
There are wrapper compilers for each layer; each layer's wrapper only
links in the libraries relevant for that layer. Specifically, each
layer provides the following wrapper compilers:
.
.TP 4
OPAL
\fIopalcc\fR and \fIopalc++\fR
.
.TP
ORTE
\fIortecc\fR and \fIortec++\fR
.
.TP
OMPI
\fImpicc\fR, \fImpic++\fR, \fImpicxx\fR, \fImpiCC\fR (only on systems with
case-senstive file systems), and \fImpifort\fR (and its legacy/deprecated
names \fImpif77\fR and \fImpif90\fR). Note
that \fImpic++\fR, \fImpicxx\fR, and \fImpiCC\fR all invoke the same
underlying C++ compiler with the same options. All are provided as
compatibility with other MPI implementations.
.
.
.SS Fortran Notes
.PP
The Fortran wrapper compiler for MPI (\fImpifort\fR, and its
legacy/deprecated names \fImpif77\fR and \fImpif90\fR) can compile and
link MPI applications that use any/all of the MPI Fortran bindings:
.IR mpif.h ,
the
.I mpi
module, and the
.I mpi_f08
module (assuming Open MPI was installed with support for each of these
Fortran bindings). Specifically: it is no longer necessary to use
different wrapper compilers for applications that use
.I mpif.h
vs. applications that use the
.I mpi
module -- just use
.I mpifort
for all Fortran MPI applications.
.
.PP
Note, however, that the Fortran compiler may require additional
command-line options to enforce a specific Fortran dialect. For
example, in some versions of the IBM XLF compiler, if xlf90 is the
underlying Fortran compiler,
.IR -qfixed
may be necessary to compile fixed-format Fortran source files.
.
.PP
Finally, note that
.I mpifort
will be inoperative and will return an error on use if Fortran support
was not built into the MP Ilayer.
.
.
.SS Overview
\fImpifort\fR is a convenience wrappers for the underlying
Fortran compiler. Translation of an Open MPI program requires the
linkage of the Open MPI-specific libraries which may not reside in
one of the standard search directories of ld(1). It also often
requires the inclusion of header files what may also not be found in a
standard location.
.
.PP
\fImpifort\fR passes its arguments to the underlying Fortran
compiler along with the -I, -L and -l options required by Open MPI
programs.
.
.PP
The Open MPI Team \fIstrongly\fR encourages using the wrapper
compilers instead of attempting to link to the Open MPI libraries
manually. This allows the specific implementation of Open MPI to
change without forcing changes to linker directives in users'
Makefiles. Indeed, the specific set of flags and libraries used by
the wrapper compilers depends on how Open MPI was configured and
built; the values can change between different installations of the
same version of Open MPI.
.
.PP
Indeed, since the wrappers are simply thin shells on top of an
underlying compiler, there are very, very few compelling reasons
\fInot\fR to use \fImpifort\fR. When it is not possible to use the
wrappers directly, the \fI-showme:compile\fR and \fI-showme:link\fR
options should be used to determine what flags the wrappers would have
used. For example:
.
.PP
shell$ cc -c file1.c `mpicc -showme:compile`
.
.PP
shell$ cc -c file2.c `mpicc -showme:compile`
.
.PP
shell$ cc file1.o file2.o `mpicc -showme:link` -o my_mpi_program
.
.
.SH NOTES
.PP
It is possible to make the wrapper compilers multi-lib aware. That
is, the libraries and includes specified may differ based on the
compiler flags specified (for example, with the GNU compilers on
Linux, a different library path may be used if -m32 is seen versus
-m64 being seen). This is not the default behavior in a standard
build, but can be activated (for example, in a binary package
providing both 32 and 64 bit support). More information can be found
at:
.PP
https://github.com/open-mpi/ompi/wiki/compilerwrapper3264
.
.
.SH FILES
.PP
The string that the wrapper compilers insert into the command line
before invoking the underlying compiler are stored in a text file
created by Open MPI and installed to
\fI$pkgdata/mpifort-wrapper-data.txt\fR, where \fI$pkgdata\fR
is typically \fI$prefix/share/openmpi\fR, and \fI$prefix\fR is the top
installation directory of Open MPI.
.
.PP
It is rarely necessary to edit this file, but it can be examined to
gain insight into what flags the wrappers are placing on the command
line.
.
.
.SH ENVIRONMENT VARIABLES
.PP
By default, the wrappers use the compilers that were selected when
Open MPI was configured. These compilers were either found
automatically by Open MPI's "configure" script, or were selected by
the user in the CC, CXX, F77, and/or FC environment variables
before "configure" was invoked. Additionally, other arguments
specific to the compiler may have been selected by configure.
.
.PP
These values can be selectively overridden by either editing the text
files containing this configuration information (see the \fBFILES\fR
section), or by setting selected environment variables of the
form "OMPI_value".
.
.PP
Valid value names are:
.
.TP
CPPFLAGS
Flags added when invoking the preprocessor (C or C++)
.
.TP
LDFLAGS
Flags added when invoking the linker (C, C++, or Fortran)
.
.TP
LIBS
Libraries added when invoking the linker (C, C++, or Fortran)
.
.TP
CC
C compiler
.
.TP
CFLAGS
C compiler flags
.
.TP
CXX
C++ compiler
.
.TP
CXXFLAGS
C++ compiler flags
.
.
.TP
FC
Fortran compiler
.
.TP
FCFLAGS
Fortran compiler flags
.so man1/ompi-wrapper-compiler.1

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,80 @@
.\" Man page generated from reStructuredText.
.
.TH "MPISYNC" "1" "Feb 14, 2025" "" "Open MPI"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
mpisync — Open MPI timing tools
.SH SYNTAX
.sp
\fBmpisync [options]\fP
.sp
\fBmpirun_prof [options]\fP
.sp
\fBompi_timing_post [<timing\-file>] [<processed\-file>]\fP
.SH DESCRIPTION
.sp
\fBmpisync\fP: determines clock offsets relative to Head Node Process
(HNP). It accepts the following options:
.INDENT 0.0
.IP \(bu 2
\fB\-o\fP, \fB\-\-output\fP: The name of output file where offsets related
to HNP will be written
.IP \(bu 2
\fB\-h\fP, \fB\-\-help\fP: Print help information
.UNINDENT
.sp
\fBompi_timing_post\fP takes the timing output file as input parameter.
The events are sorted by the timestamps. Next, the timestamps are
replaced with time offsets relative to the \fBfirst\fP : \fBprevious\fP
event.
.sp
\fBmpirun_prof\fP is a wrapper around \fI\%mpirun\fP that
performs clock synchronisation and post\-processing of the timing
output file.
.SH NOTES
.sp
The mpisync code was derived from MPIPerf project:
\fI\%http://mpiperf.cpct.sibsutis.ru/index.php/Main/Documentation\fP
.SH FILES
.sp
The output file has following format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
<hostname> <round\-trip\-time> <offset\-from\-hnp>
.ft P
.fi
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2003-2025, The Open MPI Community
.\" Generated by docutils manpage writer.
.

View File

@@ -1,120 +0,0 @@
.\"
.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
.\" University Research and Technology
.\" Corporation. All rights reserved.
.\" Copyright 2007-2008 Sun Microsystems, Inc.
.\"
.TH orte-clean 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.SH NAME
\fBorte-clean\fP - Cleans up any stale processes and files leftover
from Open MPI jobs.
.sp
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.ft R
.nf
orte-clean [--verbose]
.br
mpirun --pernode [--host | --hostfile \fIfile\fP] orte-clean [--verbose]
.fi
.sp
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.ft R
[-v | --verbose] This argument will run the command in verbose
mode and print out the universes that are getting cleaned up
as well as processes that are being killed.
.sp
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.ft R
\fIorte-clean\fR attempts to clean up any processes and files
left over from Open MPI jobs that were run in the past as well as any
currently running jobs. This includes OMPI infrastructure and helper
commands, any processes that were spawned as part of the job, and any
temporary files. orte-clean will only act upon processes and files
that belong to the user running the orte-clean command. If run as
root, it will kill off processes belonging to any users.
.sp
When run from the command line, orte-clean will attempt to clean up
the local node it is run from. When launched via mpirun, it will
clean up the nodes selected by mpirun.
.sp
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.ft R
Example 1: Clean up local node only.
.sp
.nf
example% orte-clean
.fi
.sp
Example 2: To clean up on a specific set of nodes specified on
command line, it is recommended to use the pernode option. This
will run one orte-clean for each node.
.sp
.nf
example% mpirun --pernode --host node1,node2,node3 orte-clean
.fi
.sp
To clean up on a specific set of nodes from a file.
.sp
.nf
example% mpirun --pernode --hostfile nodes_file orte-clean
.fi
.sp
Example 3: Within a resource managed environment like N1GE,
SLURM, or Torque. The following example is from N1GE.
.sp
First, we see that we have two nodes with two CPUs each.
.sp
.nf
example% qsh -pe orte 4
.br
example% mpirun -np 4 hostname
.br
node1
.br
node1
.br
node2
.br
node2
.fi
.sp
Clean up all the nodes in the cluster.
.sp
.nf
example% mpirun --pernode orte-clean
.fi
.sp
Clean up a subset of the nodes in the cluster.
.sp
.nf
example% mpirun --pernode --host node1 orte-clean
.fi
.sp
.\" **************************
.\" See Also Section
.\" **************************
.
.SH SEE ALSO
.ft R
orterun(1), orte-ps(1)
.sp

View File

@@ -1,72 +0,0 @@
.\"
.\" Copyright (c) 2007 Los Alamos National Security, LLC
.\" All rights reserved.
.\" Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved.
.\"
.\" Man page for OMPI's ompi-server command
.\"
.\" .TH name section center-footer left-footer center-header
.TH OMPI-SERVER 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.\" **************************
.\" Name Section
.\" **************************
.SH NAME
.
ompi-server \- Server for supporting name publish/lookup operations.
.
.PP
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.BR ompi-server " [ options ]"
.
.\" **************************
.\" Options Section
.\" **************************
.SH Options
.
\fIompi-server\fR acts as a data server for Open MPI jobs to exchange
contact information in support of MPI-2's Publish_name and Lookup_name
functions.
.
.TP 10
.B -h | --help
Display help for this command
.
.
.TP
.B -d | --debug
Enable verbose output for debugging
.
.
.TP
.B -r | --report-uri \fR<value>\fP
Report the Open MPI contact information for the server. This information is
required for MPI jobs to use the data server. Three parameter values are supported:
(a) '-', indicating that the uri is to be printed to stdout; (b) '+', indicating that
the uri is to be printed to stderr; and (c) "file:path-to-file", indicating that
the uri is to be printed to the specified file. The "path-to-file" can be either
absolute or relative, but must be in a location where the user has write
permissions. Please note that the resulting file must be read-accessible to
expected users of the server.
.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
.PP
\fIompi-server\fR acts as a data server for Open MPI jobs to exchange
contact information in support of MPI-2's Publish_name and Lookup_name
functions.
.
.\" **************************
.\" See Also Section
.\" **************************
.
.SH SEE ALSO
.

View File

@@ -0,0 +1,280 @@
.\" Man page generated from reStructuredText.
.
.TH "OMPI-WRAPPER-COMPILER" "1" "Feb 14, 2025" "" "Open MPI"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
mpicc, mpic++, mpicxx, mpifort, mpijavac — Open MPI wrapper compilers
.SH SYNTAX
.sp
\fBmpicc [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP
.sp
\fBmpic++ [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP
.sp
\fBmpicxx [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP
.sp
\fBmpifort [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP
.sp
\fBmpijavac [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP
.sp
The following deprecated commands are also available — but
\fBmpifort\fP should be used instead:
.sp
\fBmpif77 [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP
.sp
\fBmpif90 [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP
.sp
On case\-sensitive filesystems, the following command will also be
available:
.sp
\fBmpiCC [\-\-showme | \-\-showme:compile | \-\-showme:link] ...\fP
.SH OPTIONS
.sp
The options below apply to all of the wrapper compilers:
.INDENT 0.0
.IP \(bu 2
\fB\-\-showme\fP: This option comes in several different variants (see
below). None of the variants invokes the underlying compiler; they
all provide information on how the underlying compiler would have
been invoked had \fB\-\-showme\fP not been used. The basic \fB\-\-showme\fP
option outputs the command line that would be executed to compile
the program.
.sp
\fBNOTE:\fP
.INDENT 2.0
.INDENT 3.5
If a non\-filename argument is passed on the command line,
the \fB\-\-showme\fP option will \fInot\fP display any additional
flags. For example, both \fB"mpicc \-\-showme\fP and
\fBmpicc \-\-showme my_source.c\fP will show all the
wrapper\-supplied flags. But \fBmpicc
\-\-showme \-v\fP will only show the underlying compiler name
and \fB\-v\fP\&.
.UNINDENT
.UNINDENT
.IP \(bu 2
\fB\-\-showme:compile\fP: Output the compiler flags that would have been
supplied to the underlying compiler.
.IP \(bu 2
\fB\-\-showme:link\fP: Output the linker flags that would have been
supplied to the underlying compiler.
.IP \(bu 2
\fB\-\-showme:command\fP: Outputs the underlying compiler
command (which may be one or more tokens).
.IP \(bu 2
\fB\-\-showme:incdirs\fP: Outputs a space\-delimited (but otherwise
undecorated) list of directories that the wrapper compiler would
have provided to the underlying compiler to indicate
where relevant header files are located.
.IP \(bu 2
\fB\-\-showme:libdirs\fP: Outputs a space\-delimited (but otherwise
undecorated) list of directories that the wrapper compiler would
have provided to the underlying linker to indicate where relevant
libraries are located.
.IP \(bu 2
\fB\-\-showme:libs\fP Outputs a space\-delimited (but otherwise
undecorated) list of library names that the wrapper compiler would
have used to link an application. For example: \fBmpi open\-pal
util\fP\&.
.IP \(bu 2
\fB\-\-showme:version\fP: Outputs the version number of Open MPI.
.IP \(bu 2
\fB\-\-showme:help\fP: Output a brief usage help message.
.UNINDENT
.sp
See the man page for your underlying compiler for other options that
can be passed through mpicc.
.SH DESCRIPTION
.sp
Conceptually, the role of these commands is quite simple:
transparently add relevant compiler and linker flags to the user’s
command line that are necessary to compile / link Open MPI programs,
and then invoke the underlying compiler to actually perform the
command.
.sp
As such, these commands are frequently referred to as “wrapper”
compilers because they do not actually compile or link applications
themselves; they only add in command line flags and invoke the
back\-end compiler.
.SH BACKGROUND
.sp
Open MPI provides wrapper compilers for several languages:
.INDENT 0.0
.IP \(bu 2
\fBmpicc\fP: C
.IP \(bu 2
\fBmpic++\fP, \fBmpicxx\fP (and on systems with case\-sensitive file
systems, \fBmpiCC\fP): C++
.sp
\fBNOTE:\fP
.INDENT 2.0
.INDENT 3.5
\fBmpic++\fP, \fBmpicxx\fP, and \fBmpiCC\fP all invoke the same
underlying C++ compiler with the same options. All are
provided as compatibility with other MPI implementations.
.UNINDENT
.UNINDENT
.IP \(bu 2
\fBmpifort\fP (and its legacy/deprecated aliaes \fBmpif77\fP and
\fBmpif90\fP): Fortran
.IP \(bu 2
\fBmpijavac\fP: Java
.UNINDENT
.sp
The wrapper compilers for each of the languages are identical; they
can be use interchangeably. The different names are provided solely
for backwards compatibility.
.SH FORTRAN NOTES
.sp
The Fortran wrapper compiler for MPI (\fBmpifort\fP, and its
legacy/deprecated names \fBmpif77\fP and \fBmpif90\fP) can compile and
link MPI applications that use any/all of the MPI Fortran bindings:
\fBmpif.h\fP, the \fBmpi\fP module, and the \fBmpi_f08\fP module (assuming
Open MPI was installed with support for each of these Fortran
bindings). Specifically: it is no longer necessary to use different
wrapper compilers for applications that use \fBmpif.h\fP
vs. applications that use the \fBmpi\fP module — just use \fBmpifort\fP
for all Fortran MPI applications.
.sp
Note, however, that the Fortran compiler may require additional
command\-line options to enforce a specific Fortran dialect. For
example, in some versions of the IBM XLF compiler, if \fBxlf90\fP is the
underlying Fortran compiler, \fB\-qfixed\fP may be necessary to compile
fixed\-format Fortran source files.
.sp
Finally, note that \fBmpifort\fP will be inoperative and will return an
error on use if Fortran support was not built into the MPI layer.
.SH OVERVIEW
.sp
\fBmpicc\fP is a convenience wrappers for the underlying C compiler.
Translation of an Open MPI program requires the linkage of the Open
MPI\-specific libraries which may not reside in one of the standard
search directories of \fBld(1)\fP\&. It also often requires the inclusion
of header files what may also not be found in a standard location.
.sp
\fBmpicc\fP passes its arguments to the underlying C compiler along with
the \fB\-I\fP, \fB\-L\fP and \fB\-l\fP options required by Open MPI programs.
.sp
The same is true for all the other language wrapper compilers.
.sp
The Open MPI Team \fIstrongly\fP encourages using the wrapper compilers
instead of attempting to link to the Open MPI libraries manually. This
allows the specific implementation of Open MPI to change without
forcing changes to linker directives in users’ Makefiles. Indeed, the
specific set of flags and libraries used by the wrapper compilers
depends on how Open MPI was configured and built; the values can change
between different installations of the same version of Open MPI.
.sp
Indeed, since the wrappers are simply thin shells on top of an
underlying compiler, there are very, very few compelling reasons \fInot\fP
to use Open MPI’s wrapper compilers. When it is not possible to use
the wrappers directly, the \fB\-\-showme:compile\fP and \fB\-\-showme:link\fP
options should be used to determine what flags the wrappers would have
used. For example:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
shell$ cc \-c file1.c \(gampicc \-\-showme:compile\(ga
shell$ cc \-c file2.c \(gampicc \-\-showme:compile\(ga
shell$ cc file1.o file2.o \(gampicc \-\-showme:link\(ga \-o my_mpi_program
.ft P
.fi
.UNINDENT
.UNINDENT
.SH NOTES
.sp
It is possible to make the wrapper compilers multi\-lib aware. That is,
the libraries and includes specified may differ based on the compiler
flags specified (for example, with the GNU compilers on Linux, a
different library path may be used if \fB\-m32\fP is seen versus \fB\-m64\fP
being seen). This is not the default behavior in a standard build, but
can be activated (for example, in a binary package providing both 32
and 64 bit support). \fI\%More information can be found here\fP\&.
.SH FILES
.sp
The strings that the wrapper compilers insert into the command line
before invoking the underlying compiler are stored in a text file
created by Open MPI and installed to
\fB$pkgdata/NAME\-wrapper\-data.txt\fP, where:
.INDENT 0.0
.IP \(bu 2
\fB$pkgdata\fP is typically \fB$prefix/share/openmpi\fP
.IP \(bu 2
\fB$prefix\fP is the top installation directory of Open MPI
.IP \(bu 2
\fBNAME\fP is the name of the wrapper compiler (e.g.,
\fB$pkgdata/mpicc\-wrapper\-data.txt\fP)
.UNINDENT
.sp
It is rarely necessary to edit these files, but they can be examined to
gain insight into what flags the wrappers are placing on the command
line.
.SH ENVIRONMENT VARIABLES
.sp
By default, the wrappers use the compilers that were selected when
Open MPI was configured. These compilers were either found
automatically by Open MPI’s “configure” script, or were selected by
the user in the \fBCC\fP, \fBCXX\fP, and/or \fBFC\fP environment variables
before \fBconfigure\fP was invoked. Additionally, other arguments specific
to the compiler may have been selected by configure.
.sp
These values can be selectively overridden by either editing the text
files containing this configuration information (see the \fI\%FILES\fP section), or by setting selected
environment variables of the form \fBompi_value\fP\&.
.sp
Valid value names are:
.INDENT 0.0
.IP \(bu 2
\fBCPPFLAGS\fP: Flags added when invoking the preprocessor (C or C++)
.IP \(bu 2
\fBLDFLAGS\fP: Flags added when invoking the linker (C, C++, or
Fortran)
.IP \(bu 2
\fBLIBS\fP: Libraries added when invoking the linker (C, C++, or
Fortran)
.IP \(bu 2
\fBCC\fP: C compiler
.IP \(bu 2
\fBCFLAGS\fP: C compiler flags
.IP \(bu 2
\fBCXX\fP: C++ compiler
.IP \(bu 2
\fBCXXFLAGS\fP: C++ compiler flags
.IP \(bu 2
\fBFC\fP: Fortran compiler
.IP \(bu 2
\fBFCFLAGS\fP: Fortran compiler flags
.UNINDENT
.SH COPYRIGHT
2003-2025, The Open MPI Community
.\" Generated by docutils manpage writer.
.

View File

@@ -1,287 +1,313 @@
.\" Man page contributed by Dirk Eddelbuettel <edd@debian.org>
.\" and released under the BSD license
.\" Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
.\" Copyright (c) 2014 Cisco Systems, Inc. All rights reserved.
.TH OMPI_INFO 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.SH NAME
ompi_info - Display information about the Open MPI installation
.\" Man page generated from reStructuredText.
.
.\" **************************
.\" Synopsis Section
.\" **************************
.TH "OMPI_INFO" "1" "Feb 14, 2025" "" "Open MPI"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
ompi_info — Display information about the Open MPI installation
.SH SYNOPSIS
.B ompi_info [options]
.
.\" **************************
.\" Description Section
.\" **************************
.sp
\fBompi_info [options]\fP
.SH DESCRIPTION
.PP
.B ompi_info
provides detailed information about the Open MPI installation. It can
be useful for at least three common scenarios:
.PP
1. Checking local configuration and seeing how Open MPI was installed.
.PP
2. Submitting bug reports / help requests to the Open MPI community
(see
.IR http://www.open-mpi.org/community/help/ )
.PP
3. Seeing a list of installed Open MPI plugins and querying what
MCA parameters they support.
.PP
.B NOTE:
.B ompi_info
defaults to only showing a few MCA parameters by default (i.e., level
1 parameters). Use the
.B --level
option to enable showing more options (see the LEVELS section for more
information).
.
.\" **************************
.\" Options Section
.\" **************************
.sp
\fBompi_info\fP provides detailed information about the Open MPI
installation. It can be useful for at least three common scenarios:
.INDENT 0.0
.IP 1. 3
Checking local configuration and seeing how Open MPI was installed.
.IP 2. 3
Submitting bug reports / help requests to the Open MPI community
(see \fI\%Getting help\fP).
.IP 3. 3
Seeing a list of installed Open MPI plugins and querying what MCA
parameters they support.
.UNINDENT
.sp
\fBNOTE:\fP
.INDENT 0.0
.INDENT 3.5
\fBompi_info\fP defaults to only showing a few MCA parameters
by default (i.e., level 1 parameters). Use the \fB\-\-level\fP
option to enable showing more options (see the \fI\%LEVELS\fP section for more information).
.UNINDENT
.UNINDENT
.SH OPTIONS
.B ompi_info
accepts the following options:
.TP 8
.I \-a|\-\-all
Show all configuration options and MCA parameters. Also changes the
default MCA parameter level to 9, unless
.I --level
is also specified.
.TP 8
.I \-\-arch
Show architecture on which Open MPI was compiled.
.TP 8
.I \-c|\-\-config
Show configuration options
.TP 8
.I \-gmca|\-\-gmca <param> <value>
Pass global MCA parameters that are applicable to all contexts.
.TP 8
.I \-h|\-\-help
Shows help / usage message.
.TP 8
.I \-\-hostname
Show the hostname on which Open MPI was configured and built.
.TP 8
.I \-\-internal
Show internal MCA parameters (not meant to be modified by users).
.TP 8
.I \-\-level <level>
Show only variables with at most this level (1-9). The default is 1 unless
\-\-all is specified without \-\-level, in which case the default is 9. See
the LEVELS section for more information.
.TP 8
.I \-mca|\-\-mca <param> <value>
Pass context-specific MCA parameters; they are considered global if --gmca is
not used and only one context is specified.
.TP 8
.I \-\-param <type> <component>
Show MCA parameters. The first parameter is the type of the component
to display; the second parameter is the specific component to display
(or the keyword "all", meaning "display all components of this type").
.TP 8
.I \-t|\-\-type
Show MCA parameters of the type specified in the parameter. Accepts the
following parameters: unsigned_int, unsigned_long, unsigned_long_long,
size_t, string, version_string, bool, double. By default level
is 1 unless it is specified with \-\-level.
.TP 8
.I \-\-parsable
When used in conjunction with other parameters, the output is
displayed in a machine-parsable format
.I \-\-parseable
Synonym for --parsable
.TP 8
.I \-\-path <type>
Show paths that Open MPI was configured with. Accepts the following
parameters: prefix, bindir, libdir, incdir, pkglibdir, sysconfdir.
.TP 8
.I \-\-pretty
When used in conjunction with other parameters, the output is
displayed in 'prettyprint' format (default)
.TP 8
.I \-\-selected-only
Show only variables from selected components.
.TP 8
.I \-V|\-\-version
Show version of Open MPI.
.
.\" **************************
.\" Levels Section
.\" **************************
.sp
\fBompi_info\fP accepts the following options:
.INDENT 0.0
.IP \(bu 2
\fB\-a\fP, \fB\-\-all\fP: Show all configuration options and MCA
parameters. Also changes the default MCA parameter level to 9,
unless \fB\-\-level\fP is also specified.
.IP \(bu 2
\fB\-\-arch\fP: Show architecture on which Open MPI was compiled.
.IP \(bu 2
\fB\-c\fP, \fB\-\-config\fP: Show configuration options
.IP \(bu 2
\fB\-gmca\fP, \fB\-\-gmca <param> <value>\fP: Pass global MCA parameters
that are applicable to all contexts.
.IP \(bu 2
\fB\-h\fP, \fB\-\-help\fP: Shows help / usage message.
.IP \(bu 2
\fB\-\-hostname\fP: Show the hostname on which Open MPI was configured
and built.
.IP \(bu 2
\fB\-\-internal\fP: Show internal MCA parameters (not meant to be
modified by users).
.IP \(bu 2
\fB\-\-level <level>\fP: Show only variables with at most this level
(1\-9). The default is 1 unless \fB\-\-all\fP is specified without
\fB\-\-level\fP, in which case the default is 9. See the \fI\%LEVELS\fP section for more information.
.IP \(bu 2
\fB\-mca\fP, \fB\-\-mca <param> <value>\fP: Pass context\-specific MCA
parameters; they are considered global if \fB\-\-gmca\fP is not used and
only one context is specified.
.IP \(bu 2
\fB\-\-param <type> <component>\fP: Show MCA parameters. The first
parameter is the type of the component to display; the second
parameter is the specific component to display (or the keyword
\fBall\fP, meaning “display all components of this type”).
.IP \(bu 2
\fB\-t\fP, \fB\-\-type\fP: Show MCA parameters of the type specified in the
parameter. Accepts the following parameters: \fBunsigned_int\fP,
\fBunsigned_long\fP, \fBunsigned_long_long\fP, \fBsize_t\fP, \fBstring\fP,
\fBversion_string\fP, \fBbool\fP, \fBdouble\fP\&. By default level is 1
unless it is specified with \fB\-\-level\fP\&.
.IP \(bu 2
\fB\-\-parsable\fP: When used in conjunction with other parameters, the
output is displayed in a machine\-parsable format \fB\-\-parseable\fP
Synonym for \fB\-\-parsable\fP\&.
.IP \(bu 2
\fB\-\-path <type>\fP: Show paths that Open MPI was configured
with. Accepts the following parameters: \fBprefix\fP, \fBbindir\fP,
\fBlibdir\fP, \fBincdir\fP, \fBpkglibdir\fP, \fBsysconfdir\fP\&.
.IP \(bu 2
\fB\-\-pretty\fP: When used in conjunction with other parameters, the output is
displayed in “prettyprint” format (default)
.IP \(bu 2
\fB\-\-selected\-only\fP: Show only variables from selected components.
.IP \(bu 2
\fB\-V\fP, \fB\-\-version\fP: Show version of Open MPI.
.UNINDENT
.SH LEVELS
Open MPI has many, many run-time tunable parameters (called "MCA
parameters"), and usually only a handfull of them are useful to a
given user.
.
.
.PP
.sp
Open MPI has many, many run\-time tunable parameters (called “MCA
parameters”), and usually only a handful of them are useful to a given
user.
.sp
As such, Open MPI has divided these parameters up into nine distinct
levels, broken down into three categories, each with three
sub-categories.
.
.
.PP
sub\-categories.
.sp
Note that since each MCA parameter is accessible through the MPI_T
control variable API (introduced in MPI-3.0), these levels exactly
control variable API (introduced in MPI\-3.0), these levels exactly
correspond to the nine MPI_T cvar levels.
.
.
.PP
.sp
The three categories are:
.TP 4
.B End user
Generally, these are parameters that are required for correctness,
meaning that a user may need to set these just to get their MPI
application to run correctly. For example, BTL "if_include" and
"if_exclude" parameters fit into this category.
.
.TP
.B Application tuner
Generally, these are parameters that can be used to tweak MPI
application performance. This even includes parameters that control
resource exhaustion levels (e.g., number of free list entries, size of
buffers, etc.), and could be considered "correctness" parameters if
they're set too low. But, really -- they're tuning parameters.
.
.TP
.B Open MPI developer
Parameters in this category either don't fit in the other two, or are
specifically intended for debugging / development of Open MPI itself.
.
.
.PP
And within each category, there are three sub-categories:
.TP 4
.B Basic
This sub-category is for parameters that everyone in this category
will want to see -- even less-advanced end users, application tuners,
and new OMPI developers.
.
.TP
.B Detailed
This sub-category is for parameters that are generally useful, but
users probably won't need to change them often.
.
.TP
.B All
This sub-category is for all other parameters. Such parameters are
likely fairly esoteric.
.
.
.PP
Combining the categories and sub-categories, here's how Open MPI
.INDENT 0.0
.IP 1. 3
\fBEnd user\fP: Generally, these are parameters that are required for
correctness, meaning that a user may need to set these just to get
their MPI application to run correctly. For example, BTL
\fBif_include\fP and \fBif_exclude\fP parameters fit into this
category.
.IP 2. 3
\fBApplication tuner\fP: Generally, these are parameters that can be
used to tweak MPI application performance. This even includes
parameters that control resource exhaustion levels (e.g., number of
free list entries, size of buffers, etc.), and could be considered
“correctness” parameters if they’re set too low. But, really —
they’re tuning parameters.
.IP 3. 3
\fBOpen MPI developer\fP: Parameters in this category either don’t
fit in the other two, or are specifically intended for debugging /
development of Open MPI itself.
.UNINDENT
.sp
And within each category, there are three sub\-categories:
.INDENT 0.0
.IP 1. 3
\fBBasic\fP: This sub\-category is for parameters that everyone in
this category will want to see — even less\-advanced end users,
application tuners, and new OMPI developers.
.IP 2. 3
\fBDetailed\fP: This sub\-category is for parameters that are
generally useful, but users probably won’t need to change them
often.
.IP 3. 3
\fBAll\fP: This sub\-category is for all other parameters. Such
parameters are likely fairly esoteric.
.UNINDENT
.sp
Combining the categories and sub\-categories, here’s how Open MPI
defines all nine levels:
.TP 4
1
.INDENT 0.0
.IP 1. 3
Basic information of interest to end users.
.TP
2
.IP 2. 3
Detailed information of interest to end users.
.TP
3
.IP 3. 3
All remaining information of interest to end users.
.TP
4
.IP 4. 3
Basic information required for application tuners.
.TP
5
.IP 5. 3
Detailed information required for application tuners.
.TP
6
.IP 6. 3
All remaining information required for application tuners.
.TP
7
.IP 7. 3
Basic information for Open MPI implementors.
.TP
8
.IP 8. 3
Detailed information for Open MPI implementors.
.TP
9
.IP 9. 3
All remaining information for Open MPI implementors.
.
.
.PP
By default,
.B ompi_info
only shows level 1 MCA parameters. To see more MCA parameters, use
the
.B --level
command line option.
.
.
.PP
.\" **************************
.\" Examples Section
.\" **************************
.UNINDENT
.sp
By default, \fBompi_info\fP only shows level 1 MCA parameters. To see
more MCA parameters, use the \fB\-\-level\fP command line option.
.SH EXAMPLES
.TP 4
.sp
Show the default output of options and listing of installed
components in a human\-readable / prettyprint format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ompi_info
Show the default output of options and listing of installed
components in a human-readable / prettyprint format.
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the default output of options and listing of installed components
in a machine\-parsable format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ompi_info \-\-parsable
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the level 1 MCA parameters of the “tcp” BTL component in a
human\-readable / prettyprint format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ompi_info \-\-param btl tcp
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the level 1 through level 6 MCA parameters of the “tcp” BTL
component in a human\-readable / prettyprint format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ompi_info \-\-param btl tcp \-\-level 6
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the level 1 MCA parameters of the “tcp” BTL component in a
machine\-parsable format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ompi_info \-\-param btl tcp \-\-parsable
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the level 1 through level 3 MCA parameters of string type in a
human\-readable / prettyprint format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ompi_info \-\-type string \-\-pretty\-print \-\-level 3
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the “bindir” that Open MPI was configured with:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ompi_info \-\-path bindir
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the version of Open MPI version numbers in a prettyprint format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ompi_info \-\-version
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show \fIall\fP information about the Open MPI installation, including all
components that can be found, all the MCA parameters that they support
(i.e., levels 1 through 9), versions of Open MPI and the components,
etc.:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
ompi_info \-\-all
.ft P
.fi
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2003-2025, The Open MPI Community
.\" Generated by docutils manpage writer.
.
.
.TP
ompi_info --parsable
Show the default output of options and listing of installed
components in a machine-parsable format.
.
.
.TP
ompi_info --param btl tcp
Show the level 1 MCA parameters of the "tcp" BTL component in a
human-readable / prettyprint format.
.
.
.TP
ompi_info --param btl tcp --level 6
Show the level 1 through level 6 MCA parameters of the "tcp" BTL
component in a human-readable / prettyprint format.
.
.
.TP
ompi_info --param btl tcp --parsable
Show the level 1 MCA parameters of the "tcp" BTL component in a
machine-parsable format.
.
.
.TP
ompi_info --type string --pretty-print --level 3
Show the level 3 MCA parameters of string type in a human-readable /
prettyprint format.
.
.
.TP
ompi_info --path bindir
Show the "bindir" that Open MPI was configured with.
.
.
.TP
ompi_info --version
Show the version of Open MPI version numbers in a prettyprint format.
.
.
.TP
ompi_info --all
Show
.I all
information about the Open MPI installation, including all components
that can be found, all the MCA parameters that they support (i.e.,
levels 1 through 9), versions of Open MPI and the components, etc.
.
.
.\" **************************
.\" Authors Section
.\" **************************
.SH AUTHORS
The Open MPI maintainers -- see
.I http://www.openmpi.org/
or the file
.IR AUTHORS .
.PP
This manual page was originally contributed by Dirk Eddelbuettel
<edd@debian.org>, one of the Debian GNU/Linux maintainers for Open
MPI, and may be used by others.

View File

@@ -1,78 +1,61 @@
.\" Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
.\" Man page contributed by Dirk Eddelbuettel <edd@debian.org>
.\" and released under the BSD license
.TH OPAL_WRAPPER 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.SH NAME
opal_wrapper - Back-end Open MPI wrapper command
.SH SYNOPSIS
.B opal_wrapper [options]
.\" Man page generated from reStructuredText.
.
.TH "OPAL_WRAPPER" "1" "Feb 14, 2025" "" "Open MPI"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
opal_wrapper — Back\-end Open MPI wrapper command
.SH DESCRIPTION
.PP
.B opal_wrapper
is not meant to be called directly by end users. It is automatically
invoked as the back-end by the Open MPI wrapper commands such as:
.BR mpicc ,
.BR mpiCC ,
.BR mpic++ ,
and
.BR mpifort
(and its legacy/deprecated names
.BR mpif77
and
.BR mpif90 ).
.PP
.sp
\fBopal_wrapper\fP is not meant to be called directly by end users. It
is automatically invoked as the back\-end by the Open MPI wrapper
commands such as: \fBmpicc\fP, \fBmpicxx\fP, and \fBmpifort\fP
(and its legacy/deprecated aliases \fBmpif77\fP and \fBmpif90\fP).
.sp
Some Open MPI installations may have additional wrapper commands,
and/or have renamed the wrapper compilers listed above to avoid
executable name conflicts with other MPI implementations. Hence, you
executable name conflicts with other MPI implementations. Hence, you
may also have wrapper compilers installed including the following
names:
.BR mpifort.openmpi
(and the legacy/deprecated names
.BR mpif90.openmpi
and
.BR mpif77.openmpi ),
.BR mpicxx.openmpi ,
.BR mpiCC.openmpi ,
.BR mpicc.openmpi ,
.BR mpic++.openmpi ,
.BR opalcc ,
.BR opalc++ ,
.BR ortecc ,
and
.BR ortec++ ,
.
.
.\" **************************
.\" See Also Section
.\" **************************
.SH SEE ALSO
names: \fBmpifort.openmpi\fP (and the legacy/deprecated aliases
\fBmpif90.openmpi\fP and \fBmpif77.openmpi\fP), \fBmpicxx.openmpi\fP,
\fBmpicc.openmpi\fP\&.
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
The following may exist depending on your particular Open MPI
installation:
.BR mpicc (1),
.BR mpiCC (1),
.BR mpic++ (1),
.BR mpifort (1),
.BR mpifort.openmpi (1),
.BR mpicxx.openmpi (1),
.BR mpiCC.openmpi (1),
.BR mpicc.openmpi (1),
.BR mpic++.openmpi (1),
.BR ortecc (1),
.BR ortec++ (1),
.BR opalccc (1),
and the website at
.IR http://www.openmpi.org/ .
\fI\%mpicc(1)\fP,
\fI\%mpicxx(1)\fP,
\fI\%mpifort(1)\fP
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2003-2025, The Open MPI Community
.\" Generated by docutils manpage writer.
.
.
.\" **************************
.\" Authors Section
.\" **************************
.SH AUTHORS
The Open MPI maintainers -- see
.I http://www.openmpi.org/
or the file
.IR AUTHORS .
.PP
This manual page was originally contributed by Dirk Eddelbuettel
<edd@debian.org>, one of the Debian GNU/Linux maintainers for Open
MPI, and may be used by others.

View File

@@ -1,120 +0,0 @@
.\"
.\" Copyright (c) 2004-2007 The Trustees of Indiana University and Indiana
.\" University Research and Technology
.\" Corporation. All rights reserved.
.\" Copyright 2007-2008 Sun Microsystems, Inc.
.\"
.TH orte-clean 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.SH NAME
\fBorte-clean\fP - Cleans up any stale processes and files leftover
from Open MPI jobs.
.sp
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.ft R
.nf
orte-clean [--verbose]
.br
mpirun --pernode [--host | --hostfile \fIfile\fP] orte-clean [--verbose]
.fi
.sp
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.ft R
[-v | --verbose] This argument will run the command in verbose
mode and print out the universes that are getting cleaned up
as well as processes that are being killed.
.sp
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.ft R
\fIorte-clean\fR attempts to clean up any processes and files
left over from Open MPI jobs that were run in the past as well as any
currently running jobs. This includes OMPI infrastructure and helper
commands, any processes that were spawned as part of the job, and any
temporary files. orte-clean will only act upon processes and files
that belong to the user running the orte-clean command. If run as
root, it will kill off processes belonging to any users.
.sp
When run from the command line, orte-clean will attempt to clean up
the local node it is run from. When launched via mpirun, it will
clean up the nodes selected by mpirun.
.sp
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.ft R
Example 1: Clean up local node only.
.sp
.nf
example% orte-clean
.fi
.sp
Example 2: To clean up on a specific set of nodes specified on
command line, it is recommended to use the pernode option. This
will run one orte-clean for each node.
.sp
.nf
example% mpirun --pernode --host node1,node2,node3 orte-clean
.fi
.sp
To clean up on a specific set of nodes from a file.
.sp
.nf
example% mpirun --pernode --hostfile nodes_file orte-clean
.fi
.sp
Example 3: Within a resource managed environment like N1GE,
SLURM, or Torque. The following example is from N1GE.
.sp
First, we see that we have two nodes with two CPUs each.
.sp
.nf
example% qsh -pe orte 4
.br
example% mpirun -np 4 hostname
.br
node1
.br
node1
.br
node2
.br
node2
.fi
.sp
Clean up all the nodes in the cluster.
.sp
.nf
example% mpirun --pernode orte-clean
.fi
.sp
Clean up a subset of the nodes in the cluster.
.sp
.nf
example% mpirun --pernode --host node1 orte-clean
.fi
.sp
.\" **************************
.\" See Also Section
.\" **************************
.
.SH SEE ALSO
.ft R
orterun(1), orte-ps(1)
.sp

View File

@@ -1,162 +0,0 @@
.\" Man page contributed by Dirk Eddelbuettel <edd@debian.org>
.\" and released under the BSD license
.\" Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
.TH orte-info 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.SH NAME
orte-info - Display information about the ORTE installation
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.B orte-info [options]
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.PP
.B orte-info
provides detailed information about the ORTE installation. It can
be useful for at least three common scenarios:
.PP
1. Checking local configuration and seeing how ORTE was installed.
.PP
2. Submitting bug reports / help requests to the ORTE community
(see
.IR http://www.open-mpi.org/community/help/ )
.PP
3. Seeing a list of installed ORTE plugins and querying what
MCA parameters they support.
.
.\" **************************
.\" Options Section
.\" **************************
.SH OPTIONS
.B orte-info
accepts the following options:
.TP 8
.I \-a|\-\-all
Show all configuration options and MCA parameters
.TP 8
.I \-\-arch
Show architecture ORTE was compiled on
.TP 8
.I \-c|\-\-config
Show configuration options
.TP 8
.I \-gmca|\-\-gmca <param> <value>
Pass global MCA parameters that are applicable to all contexts.
.TP 8
.I \-h|\-\-help
Shows help / usage message
.TP 8
.I \-\-hostname
Show the hostname that ORTE was configured and built on
.TP 8
.I \-\-internal
Show internal MCA parameters (not meant to be modified by users)
.TP 8
.I \-mca|\-\-mca <param> <value>
Pass context-specific MCA parameters; they are considered global if --gmca is
not used and only one context is specified.
.TP 8
.I \-\-param <type> <component>
Show MCA parameters. The first parameter is the type of the component
to display; the second parameter is the specific component to display
(or the keyword "all", meaning "display all components of this type").
.TP 8
.I \-\-parsable
When used in conjunction with other parameters, the output is
displayed in a machine-parsable format
.I \-\-parseable
Synonym for --parsable
.TP 8
.I \-\-path <type>
Show paths that ORTE was configured with. Accepts the following
parameters: prefix, bindir, libdir, incdir, pkglibdir, sysconfdir.
.TP 8
.I \-\-pretty
When used in conjunction with other parameters, the output is
displayed in 'prettyprint' format (default)
.TP 8
.I \-v|\-\-version <component> <scope>
Show version of ORTE or a component. <component> can be the
keywords "ompi" or "all", the name of a framework (e.g., "coll" shows
all components in the coll framework), or the name of a specific
component (e.g., "pls:rsh" shows the information from the rsh PLS
component). <scope> can be one of: full, major, minor, release,
greek, svn.
.
.\" **************************
.\" Examples Section
.\" **************************
.SH EXAMPLES
.TP 4
orte-info
Show the default output of options and listing of installed
components in a human-readable / prettyprint format.
.
.
.TP
orte-info --parsable
Show the default output of options and listing of installed
components in a machine-parsable format.
.
.
.TP
orte-info --param rmcast udp
Show the MCA parameters of the "udp" RMCAST component in a
human-readable / prettyprint format.
.
.
.TP
orte-info --param rmcast udp --parsable
Show the MCA parameters of the "udp" RMCAST component in a
machine-parsable format.
.
.
.TP
orte-info --path bindir
Show the "bindir" that ORTE was configured with.
.
.
.TP
orte-info --version orte full --parsable
Show the full version numbers of ORTE (including the OPAL
version number) in a machine-readable format.
.
.
.TP
orte-info --version rmcast major
Show the major version number of all RMCAST components in a prettyprint
format.
.
.
.TP
orte-info --version rmcast:tcp minor
Show the minor version number of the TCP RMCAST component in a
prettyprint format.
.
.
.TP
orte-info --all
Show
.I all
information about the ORTE installation, including all components
that can be found, the MCA parameters that they support, versions of
ORTE and the components, etc.
.
.
.\" **************************
.\" Authors Section
.\" **************************
.SH AUTHORS
The ORTE maintainers -- see
.I http://www.openmpi.org/
or the file
.IR AUTHORS .
.PP
This manual page was originally contributed by Dirk Eddelbuettel
<edd@debian.org>, one of the Debian GNU/Linux maintainers for Open
MPI, and may be used by others.

View File

@@ -1,72 +0,0 @@
.\"
.\" Copyright (c) 2007 Los Alamos National Security, LLC
.\" All rights reserved.
.\" Copyright (c) 2008-2009 Sun Microsystems, Inc. All rights reserved.
.\"
.\" Man page for OMPI's ompi-server command
.\"
.\" .TH name section center-footer left-footer center-header
.TH OMPI-SERVER 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.\" **************************
.\" Name Section
.\" **************************
.SH NAME
.
ompi-server \- Server for supporting name publish/lookup operations.
.
.PP
.
.\" **************************
.\" Synopsis Section
.\" **************************
.SH SYNOPSIS
.
.BR ompi-server " [ options ]"
.
.\" **************************
.\" Options Section
.\" **************************
.SH Options
.
\fIompi-server\fR acts as a data server for Open MPI jobs to exchange
contact information in support of MPI-2's Publish_name and Lookup_name
functions.
.
.TP 10
.B -h | --help
Display help for this command
.
.
.TP
.B -d | --debug
Enable verbose output for debugging
.
.
.TP
.B -r | --report-uri \fR<value>\fP
Report the Open MPI contact information for the server. This information is
required for MPI jobs to use the data server. Three parameter values are supported:
(a) '-', indicating that the uri is to be printed to stdout; (b) '+', indicating that
the uri is to be printed to stderr; and (c) "file:path-to-file", indicating that
the uri is to be printed to the specified file. The "path-to-file" can be either
absolute or relative, but must be in a location where the user has write
permissions. Please note that the resulting file must be read-accessible to
expected users of the server.
.
.
.\" **************************
.\" Description Section
.\" **************************
.SH DESCRIPTION
.
.PP
\fIompi-server\fR acts as a data server for Open MPI jobs to exchange
contact information in support of MPI-2's Publish_name and Lookup_name
functions.
.
.\" **************************
.\" See Also Section
.\" **************************
.
.SH SEE ALSO
.

View File

@@ -1,46 +0,0 @@
.\" Man page contributed by Dirk Eddelbuettel <edd@debian.org>
.\" and released under the BSD license.
.\" Copyright (c) 2008 Sun Microsystems, Inc. All rights reserved.
.TH ORTED 1 "Mar 26, 2019" "4.0.1" "Open MPI"
.SH NAME
orted - Start an Open RTE User-Level Daemon
.SH SYNOPSIS
.B orted [options]
.SH DESCRIPTION
.PP
.B orted
starts an Open RTE daemon for the Open MPI system.
.SH NOTE
The
.B orted
command is
.I not intended to be manually invoked by end users.
.
It is part of the Open MPI architecture and is invoked automatically
as necessary. This man page is mainly intended for those adventerous
end users and system administrators who have noticed an "orted"
process and wondered what it is.
.PP
As such, the command line options accepted by the
.B orted
are not listed below because they are considered internal and are
therefore subject to change between versions without warning.
Running
.B orted
with the
.I --help
command line option will show all available options.
.
.
.\" **************************
.\" Authors Section
.\" **************************
.SH AUTHORS
The Open MPI maintainers -- see
.I http://www.openmpi.org/
or the file
.IR AUTHORS .
.PP
This manual page was originally contributed by Dirk Eddelbuettel
<edd@debian.org>, one of the Debian GNU/Linux maintainers for Open
MPI, and may be used by others.

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,192 @@
.\" Man page generated from reStructuredText.
.
.TH "PMIX_INFO" "1" "Feb 14, 2025" "" "OpenPMIx"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
pmix_info — Display information about the PMIx installation
.SH SYNOPSIS
.sp
\fBpmix_info [options]\fP
.SH DESCRIPTION
.sp
\fBpmix_info\fP provides detailed information about the PMIx
installation. It can be useful for at least three common scenarios:
.INDENT 0.0
.IP 1. 3
Checking local configuration and seeing how PMIx was installed.
.IP 2. 3
Submitting bug reports / help requests to the PMIx community
(see \fI\%Getting help\fP).
.IP 3. 3
Seeing a list of installed PMIx plugins and querying what MCA
parameters they support.
.UNINDENT
.SH OPTIONS
.sp
\fBpmix_info\fP accepts the following options:
.INDENT 0.0
.IP \(bu 2
\fB\-h\fP | \fB\-\-help <arg0>\fP: Show help message. If the optional
argument is not provided, then a generalized help message similar
to the information provided here is returned. If an argument is
provided, then a more detailed help message for that specific
command line option is returned.
.IP \(bu 2
\fB\-v\fP | \fB\-\-verbose\fP: Enable debug output.
.IP \(bu 2
\fB\-V\fP | \fB\-\-version\fP: Print version and exit.
.IP \(bu 2
\fB\-a\fP | \fB\-\-all\fP: Show all configuration options and MCA
parameters.
.IP \(bu 2
\fB\-\-arch\fP: Show architecture on which PMIx was compiled.
.IP \(bu 2
\fB\-c\fP | \fB\-\-config\fP: Show configuration options
.IP \(bu 2
\fB\-\-hostname\fP: Show the hostname on which PMIx was configured
and built.
.IP \(bu 2
\fB\-\-internal\fP: Show internal MCA parameters (not meant to be
modified by users).
.IP \(bu 2
\fB\-\-param <arg0>:<arg1>,<arg2>\fP: Show MCA parameters. The first
parameter is the framework (or the keyword “all”); the second parameter
is a comma\-delimited list of specific component names (if only <arg0>
is given, then all components will be reported).
.IP \(bu 2
\fB\-\-path <type>\fP: Show paths that PMIx was configured
with. Accepts the following parameters: \fBprefix\fP, \fBbindir\fP,
\fBlibdir\fP, \fBincdir\fP, \fBpkglibdir\fP, \fBsysconfdir\fP\&.
.IP \(bu 2
\fB\-\-pretty\-print\fP: When used in conjunction with other parameters, the output is
displayed in “prettyprint” format (default)
.IP \(bu 2
\fB\-\-parsable\fP: When used in conjunction with other parameters, the output is
displayed in a machine\-parsable format
.IP \(bu 2
\fB\-\-parseable\fP: Synonym for \fB\-\-parsable\fP
.IP \(bu 2
\fB\-\-show\-failed\fP: Show the components that failed to load along with the reason why they failed
.IP \(bu 2
\fB\-\-selected\-only\fP: Show only variables from selected components.
.UNINDENT
.SH EXIT STATUS
.sp
Returns 0 if successful, non\-zero if an error is encountered
.SH EXAMPLES
.sp
Examples of using this command.
.sp
Show the default output of options and listing of installed
components in a human\-readable / prettyprint format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
pmix_info
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the default output of options and listing of installed components
in a machine\-parsable format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
pmix_info \-\-parsable
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the MCA parameters of the “opa” PNET component in a
human\-readable / prettyprint format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
pmix_info \-\-param pnet opa
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the “bindir” that PMIx was configured with:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
pmix_info \-\-path bindir
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show the version of PMIx version numbers in a prettyprint format:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
pmix_info \-\-version
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
Show \fIall\fP information about the PMIx installation, including all
components that can be found, all the MCA parameters that they support,
versions of PMIx and the components, etc.:
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
pmix_info \-\-all
.ft P
.fi
.UNINDENT
.UNINDENT
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
\fI\%openpmix(5)\fP
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2014-2025, The OpenPMIx Community
.\" Generated by docutils manpage writer.
.

View File

@@ -0,0 +1,65 @@
.\" Man page generated from reStructuredText.
.
.TH "PRTE" "1" "Feb 14, 2025" "" "PMIx Reference Run Time Environment"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
prte — instantiate an instance of PRRTE DVM
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
shell$ prte ...options...
.ft P
.fi
.UNINDENT
.UNINDENT
.SH DESCRIPTION
.sp
\fBprte\fP instantiates an instance of the PMIx Reference Run Time
Environment (PRRTE) distributed virtual machine (DVM).
.sp
Extensive help documentation for this command is provided through
\fBprte \-\-help [topic]\fP\&.
.sp
At least for now, that content is not available in man page form.
Pull requests to add all the content (via repeatable infrastructure)
would be greatly appreciated.
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
\fI\%prterun(1)\fP
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2003-2025, The PRRTE Community
.\" Generated by docutils manpage writer.
.

View File

@@ -0,0 +1,65 @@
.\" Man page generated from reStructuredText.
.
.TH "PRTE_INFO" "1" "Feb 14, 2025" "" "PMIx Reference Run Time Environment"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
prte_info — Provide detailed information on your PRRTE installation
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
prte_info ...options...
.ft P
.fi
.UNINDENT
.UNINDENT
.SH DESCRIPTION
.sp
\fBprte_info\fP provide detailed information on your PMIx Reference Run
Time (PRRTE) installation.
.sp
Extensive help documentation for this command is provided through
\fBprte_info \-\-help [topic]\fP\&.
.sp
At least for now, that content is not available in man page form.
Pull requests to add all the content (via repeatable infrastructure)
would be greatly appreciated.
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
\fI\%prte(1)\fP
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2003-2025, The PRRTE Community
.\" Generated by docutils manpage writer.
.

View File

@@ -0,0 +1,65 @@
.\" Man page generated from reStructuredText.
.
.TH "PRTED" "1" "Feb 14, 2025" "" "PMIx Reference Run Time Environment"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
prted — helper daemon for PRRTE
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
shell$ prted ...options...
.ft P
.fi
.UNINDENT
.UNINDENT
.SH DESCRIPTION
.sp
\fBprted\fP is the back end helper daemon for PMIx Reference Runtime
Environment (PRRTE).
.sp
Extensive help documentation for this command is provided through
\fBprted \-\-help [topic]\fP\&.
.sp
At least for now, that content is not available in man page form.
Pull requests to add all the content (via repeatable infrastructure)
would be greatly appreciated.
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
\fI\%prte(1)\fP
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2003-2025, The PRRTE Community
.\" Generated by docutils manpage writer.
.

View File

@@ -0,0 +1,75 @@
.\" Man page generated from reStructuredText.
.
.TH "PRTERUN" "1" "Feb 14, 2025" "" "PMIx Reference Run Time Environment"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
prterun — launch an application with a default DVM
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
shell$ prterun ...options...
.ft P
.fi
.UNINDENT
.UNINDENT
.SH DESCRIPTION
.sp
\fBprterun\fP submits a job to the PMIx Reference Runtime Environment
(PRRTE). A default set of distributed virtual
machine (DVM) options are used; use \fI\%prun(1)\fP if you
wish to utilize specific DVM options.
.sp
Much of this same help documentation for this command is also provided
through \fBprun \-\-help [topic]\fP\&.
.INDENT 0.0
.INDENT 3.5
.IP "PRRTE Docs TODO"
.sp
Need to write this man page.
.UNINDENT
.UNINDENT
.SH COMMAND LINE OPTIONS
.SH DEPRECATED COMMAND LINE OPTIONS
.SH EXIT STATUS
.sp
Description of the various exit statuses of this command.
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
\fI\%prte(1)\fP
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2003-2025, The PRRTE Community
.\" Generated by docutils manpage writer.
.

View File

@@ -0,0 +1,73 @@
.\" Man page generated from reStructuredText.
.
.TH "PRUN" "1" "Feb 14, 2025" "" "PMIx Reference Run Time Environment"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
prun — launch an application
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
shell$ prun ...options...
.ft P
.fi
.UNINDENT
.UNINDENT
.SH DESCRIPTION
.sp
\fBprun\fP submits a job to the PMIx Reference Runtime Environment
(PRRTE). The user has control over various distributed virtual
machine (DVM) options.
.sp
Much of this same help documentation for this command is also provided
through \fBprun \-\-help [topic]\fP\&.
.INDENT 0.0
.INDENT 3.5
.IP "PRRTE Docs TODO"
.sp
Need to write this man page.
.UNINDENT
.UNINDENT
.SH COMMAND LINE OPTIONS
.sp
The following command line options are supported:
.SH DEPRECATED COMMAND LINE OPTIONS
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
\fI\%prte(1)\fP
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2003-2025, The PRRTE Community
.\" Generated by docutils manpage writer.
.

View File

@@ -0,0 +1,65 @@
.\" Man page generated from reStructuredText.
.
.TH "PTERM" "1" "Feb 14, 2025" "" "PMIx Reference Run Time Environment"
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.sp
pterm — terminate an instance of the PRRTE DVM
.SH SYNOPSIS
.INDENT 0.0
.INDENT 3.5
.sp
.nf
.ft C
shell$ pterm ...options...
.ft P
.fi
.UNINDENT
.UNINDENT
.SH DESCRIPTION
.sp
\fBpterm\fP terminates an instance of the PMIx Reference Runtime
Environment (PRRTE) distributed virtual machine (DVM).
.sp
Extensive help documentation for this command is provided through
\fBpterm \-\-help [topic]\fP\&.
.sp
At least for now, that content is not available in man page form.
Pull requests to add all the content (via repeatable infrastructure)
would be greatly appreciated.
.sp
\fBSEE ALSO:\fP
.INDENT 0.0
.INDENT 3.5
\fI\%prte(1)\fP
.UNINDENT
.UNINDENT
.SH COPYRIGHT
2003-2025, The PRRTE Community
.\" Generated by docutils manpage writer.
.

View File

@@ -0,0 +1 @@
.so man3/hwlocality_tinker.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_tinker.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_tinker.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_api_version.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_cpubinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_cpubinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_cpubinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_cpubinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_add.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_add.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_get.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_get.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_get.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_get.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_get.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_get.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_get.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_distances_get.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_helper_distribute.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs_manage.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs_manage.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs_manage.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_memattrs.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_membinding.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

View File

@@ -0,0 +1 @@
.so man3/hwlocality_object_types.3

Some files were not shown because too many files have changed in this diff Show More