# Advanced usage of jumel and juman

## Configuration of jumel

By default, jumel uses the file /proc/<PID>/status, which is updated automatically by the operating system, to monitor the memory consumption per task and the command vmstat to gather information on the level of nodes. However, basically any file and any command can be used by jumel.

jumel parses the file /proc/<PID>/status and extracts the values for certain keys (for example VmSize) using regular expressions. To add another file which jumel should use, open the jumel script and go to the section

##############################################
### Define files and quantities to monitor ###
##############################################

First, increase the variable ntaskmonitorfiles by the number of files you would like to add. Then duplicate the source block

# /proc/<PID>/status #
[...]

where the information about the /proc/<PID>/status file are defined, and change the corresponding values according to the file you would like to add. With

taskmonitor.file.append

you first add the absolute path of the file you would like to monitor. Then, for each key jumel should extract from this file, you need to add

taskmonitor.file[n].quantity
taskmonitor.file[n].unit
taskmonitor.file[n].value

where n is the number of the file (/proc/<PID>/status has the number 0, the next file added would have 1 and so on). taskmonitor.file[n].quantity contains the regular expression needed to extract the value for a key, taskmonitor.file[n].unit is used to specify the unit of that value. taskmonitor.file[n].value is automatically initializes with 0 and will be used to store the value of the key in each time step.

Finally, add the number of keys defined for you file in

taskmonitor.file[0].nquant

In order to obtain the node statistics jumel parses the output of the command vmstat and extracts certain keys using regular expressions. To add another file which jumel should use, open the jumel script and go to

### Commands to use for monitoring quantities ###

First, increase the variable nnodeusecommands by the number of commands you would like to add. Then duplicate the source block

# vmstat #
[...]

where the information about the vmstat command are defined, and change the corresponding values according to the command you would like to add. With

nodeuse.command[0].cmd

the command to be executed is specified. For each key jumel should extract from the output of the command add

nodeuse.command[n].quantity
nodeuse.command[n].unit
nodeuse.command[n].value
nodeuse.command[n].index

nodeuse.command[n].quantity contains the regular expression needed to extract the value for a key, nodeuse.command[n].unit is used to specify the unit of that value. nodeuse.command[n].value is automatically initializes with 0 and will be used to store the value of the key in each time step. nodeuse.command[n].index is the position of the line in the output of the command, from which you would like to extract values (start counting at 0).

nodeuse.command[0].nquant

should be set to the number of keys defined for a command.

Finally

nodeuse.command[0].mask = "(.+?\n)"

is used to split the output of the command into lines. If you need a different splitting, adjust the regular expression accordingly.

## Advanced usage and configuration of juman

### On-the-fly visualization with juman

The juman tool offers the possibility to visualize the results of a jumel run on-the-fly, i.e. while the measurement is still going on. Just use the options --watch -i to switch on this feature. juman will update the graphs every 20 seconds. This time step can be changed with the option --watchinc.

gnuplot and gv must be installed on the system in order to use this feature.

WARNING: The scripts need some time to extract the data and to generate the postscripts. Setting the --watchinc step to values lower than 10 seconds usually does not make sense for larger runs.

### Visualization tools for juman

To display the graphs juman uses by default gv, xview and/or xfig. The absolute paths of these tools are specified in the section # Tools # in the juman script. To change the path (or the tools) adapt the following lines according to your needs

# Tools #
psviewer = "/usr/bin/gv -watch "
figviewer = "/usr/bin/xfig "
imageviewer = "/usr/bin/xview "