Brahma Resources Page

This is the official home page for the Duke University Physics Department's Brahma Beowulf Project. Please feel free to explore this website. There are a number of things on the site itself that may be of use or interest to individuals interested in beowulf-style cluster computing.

This site is maintained by rgb. It and all works linked thereupon authored by Robert G. Brown are Copyright 2003 (or as indicated in the document) and made available through a modified Open Publication License unless superceded by another license directly associated with the document. (Current site version 2.2-1)

Home Top Beowulf Book Intro 2003 Duke Model Helicity Intro to IP Local IP admin Contact About
xmlsysd wulfstat wulflogger wulfweb cpu_rate C++ Rant

Site Links






Robert G. Brown
Duke University Physics Department
Durham, NC 27708-0305
Copyright Robert G. Brown, 2017


xmlsysd (v 0.2.3, i386 tested for RH 9, i386 and x86_64 tested for FC1 and FC2 ) is a daemon that runs on a workstation or workstation-style cluster node in a beowulf or compute cluster or departmental LAN. It provides a socket connection to an (unprivileged) engine that parses various parts of /proc and executes certain system information calls on behalf of the remote user without the expense of a shell connection or multiple tools or pipes. This information is wrapped up in a customized xmlish and returned via socket to the client.

The daemon has several features that make it especially lightweight on the client. It can be "throttled", so that it only returns information that the user specifically wants to monitor. It opens once and then uses a rewind on all the /proc files that it can to avoid excessive fstat and file open overhead. In most cases all the information of interest to a user can be transmitted in a single TCP packet and hence at a fixed, minimal "cost" in terms of systems resources like CPU and network bandwidth.

xmlsysd can currently monitor load average, memory utilization, network utilization, a variety of systems parameters of interest in constructing a load-balanced distribution of jobs (e.g. CPU type, clock, cache), date and time, "duty cycle" (fraction of CPU clocks actually used since the last reboot) and running jobs, masked by task name or user.

The associated wulfstat application provides a simple tty (xterm) interface to the daemon, permitting an entire LAN's worth of workstations or beowulf nodes to be monitored from virtually anywhere. wulflogger is a related application built from the same library as wulfstat that dumps wulfstat-like displays to stdout, from where they can easily be parsed by e.g. a perl or python application for further display. wulfweb is such a demo application -- wulfweb uses wulflogger to monitor a cluster and create an automatically updated web page with (currently only load average) data colorfully and efficiently displayed for the whole cluster.

The xmlish language xmlsysd uses to return information should make it easy to construct e.g. a web-based display or a native GUI, should either of these be preferred. Eventually I'll tackle these tasks using the libwulf library provided with wulfstat or wulflogger, but for now the tools above are pretty useful as they stand.

SPECIAL NOTE: From 0.6.0 on, xmlsysd will not distribute binary rpms as there is a distinct split in architecture upon us on top of the already wide split in distribution. Instead it will be distributed in tarball format and in hopefully easily rebuildable source rpms. Binary rpm distribution will resume only in the form of a yum-accessible repository, per architecture, at least for architectures I can locally build. Since xmlsysd is appearing in more regular linux distributions, one can hope that this won't be much of a problem.

Ideas and patches have been contributed by Morten Kjeldgaard, Andy Fant, and Erwan Velu, and rgb gratefully acknowledges the help.


Document TypeSize (K)Last Modified
i386 RPM 42
Source RPM 122
Tar/Gzip (tgz) 116
License Info

Except where explicitly indicated otherwise, the documents linked from this page are all provided under a modified Gnu License appropriate for the document type (OPL for text, GPL for software/source). Please read the relevant license(s) before redistributing the document(s) in any form -- an explicit agreement with the author is required for certain kinds of for-profit redistributions. In all cases the license makes the documents generally available for unlimited personal use and non-profit distributions (for example, linking or posting copies on a website, distributing paper copies to a class for free or at cost).

The author cherishes feedback. If you like or dislike the document(s) and would like to say so, wish to redistribute a version in any medium to be sold at a profit, would like to contribute or comment on material, or just want to say hi, feel free to contact the author

Home Top Beowulf Book Intro 2003 Duke Model Helicity Intro to IP Local IP admin Contact About
xmlsysd wulfstat wulflogger wulfweb cpu_rate C++ Rant

This page is maintained by Robert G. Brown: