Skip to content

Commit

Permalink
Documentation updated, doxygen file headers added.
Browse files Browse the repository at this point in the history
Updated documentation to match the library version
  • Loading branch information
Alcpz committed Sep 17, 2018
1 parent 8171141 commit dac5d20
Show file tree
Hide file tree
Showing 6 changed files with 115 additions and 28 deletions.
23 changes: 14 additions & 9 deletions INSTALL
Original file line number Diff line number Diff line change
Expand Up @@ -23,19 +23,24 @@ You can now proceed as with a source package:

Build configuration
-------------------
By default, the library will be built with support for all devices. If necessary
By default, the library will be built with support for all devices,
except for those accessed through a network connection. If necessary
header files for a specific device type are not found on the build machine,
support will be automatically disabled for that type.

It is also possible to manually disable support for a specific device through
It is also possible to manually enable/disable support for a specific device through
`configure` flags:

--without-mic Disable Intel Many Integrated Core support (default:
enabled if present)
--with-dummy Enable Dummy testing support (default: disabled)
--without-mic Disable Intel Many Integrated Core support
(default: enabled if miclib.h is available)
--without-rapl Disable Intel Running Average Power Limit support
(default: enabled)
--without-nvml Disable NVIDIA Management Library support (default:
enabled if present)

Check the output of `configure --help` for a full list of configuration
(default: enabled)
--without-nvml Disable NVIDIA Management Library support
(default: enabled if nvml.h is available)
--with-sb-pdu Enable Schleifenbauer PDU support (default: disabled)
--without-odroid Disable Odroid support (default: enabled)
--with-labee Enable Labee support (default: disabled)

Check the output of `./configure --help` for a full list of configuration
parameters.
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,25 +7,25 @@ kinds of hardware.

The following devices are currently supported:

* Dummy devices for testing purposes
* Dummy devices for testing purposes

* Intel CPUs starting from Sandy Bridge
(through the Running Average Power Limit interface)
* Intel CPUs starting from Sandy Bridge
(through the Running Average Power Limit interface)

* Recent Nvidia Tesla and Quadro GPUs
(through NVIDIA Management Library)
* Recent Nvidia Tesla and Quadro GPUs
(through NVIDIA Management Library)

* Intel Xeon Phi MICs
(through the Intel Manycore Platform Software Stack (3.x+), from the host device)
* Intel Xeon Phi MICs
(through the Intel Manycore Platform Software Stack (3.x+), from the host device)

* Schleifenbauer PDUs
(through the Schleifenbauer socket API)
* Schleifenbauer PDUs
(through the Schleifenbauer socket API)

* Odroid-XU3 integrated sensors
(through linux sysfs)
* Odroid-XU3 integrated sensors
(through linux sysfs)

* Poznań Supercomputing and Networking Center Labee XML Interface
(through its REST API)
* Poznań Supercomputing and Networking Center Labee XML Interface
(through its REST API)

EML automatically discovers necessary libraries and available devices at runtime.

Expand Down
76 changes: 74 additions & 2 deletions doc/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,10 +39,82 @@ nvml {
rapl {
disabled = true
}
~~~
For available values, please check the driver code for now.
# Nested configurations are configured as follows
sb-pdu {
}
~~~
Default values will be used for any missing entries, except for values made
necessary for existing entries (such as the hostname field for a network device
that is declared by the configuration). In particular, loading an empty config
file has no effect.

Available Configuration Values
------------------------------
The driver configuration section is the .name value defined in its specified driver struct.

- Common Values
- **disabled**. Determines wether to use the module or not.<br/>
Values: true, false.<br/>
Default: false, except for the dummy module.
- **sampling_interval**. Determines the sampling interval for the driver. Check each module for its default value.
Values: numerical value of nanoseconds. 100000000 = 100ms, 100000 = 100μs

- dummy (Dummy testing driver)
- **disabled**. This module is disabled by default.<br/>
Default: true
- **sampling_interval**.<br/>
Default: 100000000, i.e. 100ms.

- rapl (Intel RAPL)
- **sampling_interval**.<br/>
Default: 1000000, i.e. ~1ms.

- nvml (Nvidia Management Library)
- **sampling_interval**.<br/>
Default: 16000000, i.e. ~16ms. Adjusted for Fermi power readings.

- mic (Intel MIC)
- **sampling_interval**.<br/>
Default: 50000000, i.e. ~50ms.

- sb-pdu (Schleifenbauer PDUs)
- **sampling_interval**.<br/>
Default: 1000000000, i.e. ~1s.
- **device**. SBPDU device specification.
- **host**. Host IPv4.<br/>
Default: 192.168.1.200
- **port**.<br/>
Default: 7783
- **rc4key**. RC4 encryption key.<br/>
Default: 000000000000

- odroid (Odroid-XU3)
- **sampling_interval**.<br/>
Default: 263808000, i.e. ~263808μs as defined by /sys/bus/i2c/drivers/INA231/*/update_period.

- labee (Poznań Supercomputing and Networking Center Labee XML Interface). Currently only one device per node is supported.
- **sampling_interval**.<br/>
Default: 150000000, i.e. ~150ms.
- **hostname**. Name of the host to measure.<br/>
Default: ""
- **nodelist_file**. Path to the file with the hardware labels mapped to hostnames as comma separated values.<br/>
Example file:<br/>
~~~
hw-id1,hostname1
hw-id2,hostname2
hw-id3,hostname3
hw-id4,hostname4
~~~
Default: ./nodelist
- **api_url**. Rest API full url.<br/>
Default: http://10.11.12.242/REST/node
- **user**. API username.<br/>
Default: user
- **password**. API password.<br/>
Default: password
- **power_attribute**. Key in the XML response that contains the measurement we want to query.<br/>
Default: actualPowerUsage


6 changes: 5 additions & 1 deletion src/driver-dummy.c
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
/*
/*!
* Copyright (c) 2017 Universidad de La Laguna <cap@pcg.ull.es>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* \author Alberto Cabrera Perez <Alberto.Cabrera@ull.edu.es>
* \date jun-2018
* \brief Driver implementation for the dummy module
*/

//feature test macro for pread() in unistd.h
Expand Down
6 changes: 4 additions & 2 deletions src/driver-labee.c
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
/*
/*!
* Copyright (c) 2018 Universidad de La Laguna <cap@pcg.ull.es>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* @author: Alberto Cabrera Perez <Alberto.Cabrera@ull.edu.es>
* \author Alberto Cabrera Perez <Alberto.Cabrera@ull.edu.es>
* \date jun-2018
* \brief Driver implementation for the Labee module using curl and xml
*/

#define _XOPEN_SOURCE 500
Expand Down
6 changes: 5 additions & 1 deletion src/driver-odroid.c
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
/*
/*!
* Copyright (c) 2017 Universidad de La Laguna <cap@pcg.ull.es>
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License as published by the Free
* Software Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* \author Alberto Cabrera <Alberto.Cabrera@ull.edu.es>
* \date jun-2017
* \brief Driver implementation for the odroid module using sysfs
*/

//feature test macro for pread() in unistd.h
Expand Down

0 comments on commit dac5d20

Please sign in to comment.