-*- nroff -*-
Copyright © 2010-2018 Inria. All rights reserved.
Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved.
See COPYING in top-level directory.
HWLOC-PS "1" "%HWLOC_DATE%" "%PACKAGE_VERSION%" "%PACKAGE_NAME%"
NAME
hwloc-ps - List currently-running processes or threads that are bound . **************************
Synopsis Section
**************************
SYNOPSIS
. hwloc-ps [options] . **************************
Options Section
**************************
OPTIONS
.

10 -a List all processes, even those that are not bound to any specific part of the machine.

--pid <pid> Only show process of PID <pid>, even if it is not bound to any specific part of the machine.

--name <name> Only show processes whose name contains <name>, even if they are not bound to any specific part of the machine. This is not supported on all operating systems.

-p --physical Report OS/physical indexes instead of logical indexes

-l --logical Report logical indexes instead of physical/OS indexes (default)

-c --cpuset Show process bindings as cpusets instead of objects.

-t --threads Show threads inside processes. If -a 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.

-e --get-last-cpu-location 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.

--whole-system Do not consider administration limitations.

--pid-cmd <cmd> Append the output of the given command to each PID line. For each displayed process ID, execute the command <cmd> <pid> and append the first line of its output to the regular hwloc-ps line. . **************************
Description Section
**************************

DESCRIPTION
. By default, hwloc-ps lists only those currently-running processes that are bound. If -t is given, processes that are not bound but contain at least one bound thread are also displayed, as well as all their threads. .

hwloc-ps displays process identifier, command-line and binding. The binding may be reported as objects or cpusets. .

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 --whole-system is given. .

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). .

The -a switch can be used to show all processes, if desired. . **************************
Examples Section
**************************

EXAMPLES

If a process is bound, it appears in the default output: $ utils/hwloc-ps 4759 Core: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): $ utils/hwloc-ps $ utils/hwloc-ps -t 4759 Machine:0 myprogram 4759 Machine:0 4761 PU:0 4762 PU:2 4765 PU:1 $ utils/hwloc-ps --pid 4759 4759 Machine:0 myprogram To display the binding of already running MPI processes (launched by Open MPI) and append their MPI rank (in MPI_COMM_WORLD) to each line: $ utils/hwloc-ps --pid-cmd myscript 29093 L1dCache:0 myprogram OMPI_COMM_WORLD_RANK=0 29094 L1dCache:2 myprogram OMPI_COMM_WORLD_RANK=1 29095 L1dCache:1 myprogram OMPI_COMM_WORLD_RANK=2 29096 L1dCache:3 myprogram OMPI_COMM_WORLD_RANK=3 where myscript is a bash 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
**************************

SEE ALSO
. hwloc(7), lstopo(1), hwloc-calc(1), hwloc-distrib(1)