This tool displays process and thread binding in an interative web page.
1) Basic Usage
Run the hwloc-ps tool in JSON server mode:
$ hwloc-ps --json-server
server running on port 8888...
Export the topology as a SVG file using the native backend:
$ lstopo filename.svg --of nativesvg
Now run the client side for displaying the binding:
$ cd /path/to/hwloc-ps.www/
$ node client.js /path/to/filename.svg
This should open a webpage in your browser.
Otherwise add -u to see the URL that you should open (usually http://localhost:3000).
2) Installing node.js and JS dependencies
The "node" command is available in the "nodejs" package in most Linux distributions,
but you should rather install the "npm" package to get additional utilities:
# apt instal npm
# yum install npm
Then install the dependencies needed by client.js:
$ cd /path/to/hwloc-ps.www/
$ npm install
If you don't have write-access to the hwloc-ps.www/ directory,
copy it somewhere else, run "npm install" from there,
and then run the client from there:
$ cp -a /path/to/hwloc-ps.www/ $HOME/myhwloc-ps.www/
$ cd $HOME/myhwloc-ps.www/
$ npm install
$ node client.js /path/to/filename.svg
3) Running on a remote server
This tool is often useful for debugging process placement on remote servers, hence:
* hwloc-ps and lstopo should run on that remote server
(this requires a recent hwloc on the remote side).
* you must copy the SVG file back to your machine:
$ scp target:/path/to/filename.svg .
* if the target machine port 8888 is not directly accessible, you may
have to forward its 8888 port:
$ ssh target -L 8888:localhost:8888 -Nf