Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
HWLOC-PS(1)			     hwloc			   HWLOC-PS(1)

       hwloc-ps	- List currently-running processes or threads that are bound

       hwloc-ps	[options]

       -a	 List all processes, even those	that are not bound to any spe-
		 cific 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 (de-

       -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 pro-
		 cessors at any	time according to the binding.

		 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.

       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

       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	avail-
       able  to	the current process, they are ignored unless --whole-system is

       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.

       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 ap-
       pears 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:

	   cat /proc/$1/environ	2>/dev/null | xargs --null --max-args=1	echo |

       hwloc(7), lstopo(1), hwloc-calc(1), hwloc-distrib(1)

1.11.11				 Sep 02, 2018			   HWLOC-PS(1)


Want to link to this manual page? Use this URL:

home | help