Home | History | Annotate | Download | only in energy_meter
      1 {
      2  "cells": [
      3   {
      4    "cell_type": "markdown",
      5    "metadata": {},
      6    "source": [
      7     "# Energy Meter Examples\n",
      8     "\n",
      9     "## Monsoon Power Monitor\n",
     10     "\n",
     11     "*NOTE*: the **monsoon.py** tool is required to collect data from the power monitor.\n",
     12     "\n",
     13     "Instructions on how to install it can be found here:\n",
     14     "\n",
     15     "https://github.com/ARM-software/lisa/wiki/Energy-Meters-Requirements#monsoon-power-monitor."
     16    ]
     17   },
     18   {
     19    "cell_type": "code",
     20    "execution_count": 1,
     21    "metadata": {},
     22    "outputs": [
     23     {
     24      "name": "stderr",
     25      "output_type": "stream",
     26      "text": [
     27       "2017-05-10 16:00:38,824 INFO    : root         : Using LISA logging configuration:\n",
     28       "2017-05-10 16:00:38,826 INFO    : root         :   /data/Code/lisa/logging.conf\n"
     29      ]
     30     }
     31    ],
     32    "source": [
     33     "import logging\n",
     34     "from conf import LisaLogging\n",
     35     "LisaLogging.setup()"
     36    ]
     37   },
     38   {
     39    "cell_type": "markdown",
     40    "metadata": {},
     41    "source": [
     42     "#### Import required modules"
     43    ]
     44   },
     45   {
     46    "cell_type": "code",
     47    "execution_count": 2,
     48    "metadata": {},
     49    "outputs": [
     50     {
     51      "name": "stderr",
     52      "output_type": "stream",
     53      "text": [
     54       "2017-05-10 16:00:39,606 WARNING : EnergyModel  : Unusual max capacity (1023), overriding capacity_scale\n"
     55      ]
     56     }
     57    ],
     58    "source": [
     59     "# Generate plots inline\n",
     60     "%matplotlib inline\n",
     61     "\n",
     62     "import os\n",
     63     "\n",
     64     "# Support to access the remote target\n",
     65     "import devlib\n",
     66     "from env import TestEnv\n",
     67     "\n",
     68     "# RTApp configurator for generation of PERIODIC tasks\n",
     69     "from wlgen import RTA, Ramp"
     70    ]
     71   },
     72   {
     73    "cell_type": "markdown",
     74    "metadata": {},
     75    "source": [
     76     "## Target Configuration\n",
     77     "The target configuration is used to describe and configure your test environment.\n",
     78     "You can find more details in **examples/utils/testenv_example.ipynb**."
     79    ]
     80   },
     81   {
     82    "cell_type": "code",
     83    "execution_count": 3,
     84    "metadata": {
     85     "collapsed": true
     86    },
     87    "outputs": [],
     88    "source": [
     89     "# Let's assume the monsoon binary is installed in the following path\n",
     90     "MONSOON_BIN = os.path.join(os.getenv('LISA_HOME'), 'tools', 'scripts', 'monsoon.py')"
     91    ]
     92   },
     93   {
     94    "cell_type": "code",
     95    "execution_count": 4,
     96    "metadata": {},
     97    "outputs": [],
     98    "source": [
     99     "# Setup target configuration\n",
    100     "my_conf = {\n",
    101     "\n",
    102     "    # Target platform and board\n",
    103     "    \"platform\"    : 'android',\n",
    104     "    \"board\"       : 'wahoo',\n",
    105     "    \n",
    106     "    # Android tools\n",
    107     "    \"ANDROID_HOME\" : \"/home/derkling/Code/lisa/tools/android-sdk-linux\",\n",
    108     "    \n",
    109     "    # Folder where all the results will be collected\n",
    110     "    \"results_dir\" : \"EnergyMeter_Monsoon\",\n",
    111     "\n",
    112     "    # Define devlib modules to load\n",
    113     "    \"modules\" : [\"cpufreq\"], # Required by rt-app calibration\n",
    114     "    \"exclude_modules\" : [ 'hwmon' ],\n",
    115     "\n",
    116     "    # Energy Meters Configuration for ARM Energy Probe\n",
    117     "    \"emeter\" : {\n",
    118     "        \"instrument\" : \"monsoon\",\n",
    119     "        \"conf\" : {\n",
    120     "            'monsoon_bin' : MONSOON_BIN,\n",
    121     "        },\n",
    122     "    },\n",
    123     "    \n",
    124     "    # Tools required by the experiments\n",
    125     "    \"tools\"   : [ 'trace-cmd', 'rt-app' ],\n",
    126     "    \n",
    127     "    # Comment this line to calibrate RTApp in your own platform\n",
    128     "    # \"rtapp-calib\" :  {\"0\": 360, \"1\": 142, \"2\": 138, \"3\": 352, \"4\": 352, \"5\": 353},\n",
    129     "}"
    130    ]
    131   },
    132   {
    133    "cell_type": "code",
    134    "execution_count": 5,
    135    "metadata": {
    136     "collapsed": true
    137    },
    138    "outputs": [],
    139    "source": [
    140     "# Once powered the Monsoon Power Monitor does not enable the output voltage.\n",
    141     "# Since the devlib's API expects that the device is powered and available for\n",
    142     "# an ADB connection, let's manually power on the device before initializing the TestEnv\n",
    143     "\n",
    144     "# Power on the device\n",
    145     "!$MONSOON_BIN --device /dev/ttyACM1 --voltage 4.2\n",
    146     "\n",
    147     "# Enable USB passthrough to be able to connect the device\n",
    148     "!$MONSOON_BIN --usbpassthrough on"
    149    ]
    150   },
    151   {
    152    "cell_type": "code",
    153    "execution_count": 6,
    154    "metadata": {
    155     "scrolled": false
    156    },
    157    "outputs": [
    158     {
    159      "name": "stderr",
    160      "output_type": "stream",
    161      "text": [
    162       "2017-05-10 16:00:46,506 INFO    : TestEnv      : Using base path: /data/Code/lisa\n",
    163       "2017-05-10 16:00:46,509 INFO    : TestEnv      : Loading custom (inline) target configuration\n",
    164       "2017-05-10 16:00:46,510 INFO    : TestEnv      : External tools using:\n",
    165       "2017-05-10 16:00:46,511 INFO    : TestEnv      :    ANDROID_HOME: /home/derkling/Code/lisa/tools/android-sdk-linux\n",
    166       "2017-05-10 16:00:46,512 INFO    : TestEnv      :    CATAPULT_HOME: /data/Code/lisa/tools/catapult\n",
    167       "2017-05-10 16:00:46,514 INFO    : TestEnv      : Loading board:\n",
    168       "2017-05-10 16:00:46,515 INFO    : TestEnv      :    /data/Code/lisa/libs/utils/platforms/wahoo.json\n",
    169       "2017-05-10 16:00:46,517 INFO    : TestEnv      : Devlib modules to load: [u'bl', u'cpuidle', u'cpufreq']\n",
    170       "2017-05-10 16:00:46,519 INFO    : TestEnv      : Connecting Android target [DEFAULT]\n",
    171       "2017-05-10 16:00:46,520 INFO    : TestEnv      : Connection settings:\n",
    172       "2017-05-10 16:00:46,521 INFO    : TestEnv      :    None\n",
    173       "2017-05-10 16:00:46,683 INFO    : android      : ls command is set to ls -1\n",
    174       "2017-05-10 16:00:48,056 INFO    : TestEnv      : Initializing target workdir:\n",
    175       "2017-05-10 16:00:48,059 INFO    : TestEnv      :    /data/local/tmp/devlib-target\n",
    176       "2017-05-10 16:00:50,883 INFO    : TestEnv      : Attempting to read energy model from target\n",
    177       "2017-05-10 16:00:52,939 ERROR   : TestEnv      : Couldn't read target energy model: Active states powers are expected to be monotonically increasing. Values: [56, 76, 91, 105, 118, 135, 150, 162, 181, 196, 214, 229, 248, 280, 316, 354, 392, 439, 495, 565, 622, 691, 792, 889, 1024, 1141, 1138]\n",
    178       "2017-05-10 16:00:52,942 INFO    : TestEnv      : Topology:\n",
    179       "2017-05-10 16:00:52,943 INFO    : TestEnv      :    [[0, 1, 2, 3], [4, 5, 6, 7]]\n",
    180       "2017-05-10 16:00:53,142 INFO    : TestEnv      : Loading default EM:\n",
    181       "2017-05-10 16:00:53,144 INFO    : TestEnv      :    /data/Code/lisa/libs/utils/platforms/wahoo.json\n",
    182       "2017-05-10 16:00:53,203 WARNING : TestEnv      : Using configuration provided RTApp calibration\n",
    183       "2017-05-10 16:00:53,204 INFO    : TestEnv      : Using RT-App calibration values:\n",
    184       "2017-05-10 16:00:53,205 INFO    : TestEnv      :    {\"0\": 360, \"1\": 142, \"2\": 138, \"3\": 352, \"4\": 352, \"5\": 353}\n",
    185       "2017-05-10 16:00:53,207 INFO    : TestEnv      : Set results folder to:\n",
    186       "2017-05-10 16:00:53,208 INFO    : TestEnv      :    /data/Code/lisa/results/EnergyMeter_Monsoon\n",
    187       "2017-05-10 16:00:53,208 INFO    : TestEnv      : Experiment results available also in:\n",
    188       "2017-05-10 16:00:53,209 INFO    : TestEnv      :    /data/Code/lisa/results_latest\n"
    189      ]
    190     }
    191    ],
    192    "source": [
    193     "# Initialize a test environment using:\n",
    194     "te = TestEnv(my_conf, wipe=False, force_new=True)\n",
    195     "target = te.target"
    196    ]
    197   },
    198   {
    199    "cell_type": "code",
    200    "execution_count": 8,
    201    "metadata": {},
    202    "outputs": [],
    203    "source": [
    204     "# If your device support charge via USB, let's disable it in order\n",
    205     "# to read the overall power consumption from the main output channel\n",
    206     "\n",
    207     "# For example, this is the API for a Pixel phone:\n",
    208     "te.target.write_value('/sys/class/power_supply/battery/charging_enabled', 0)"
    209    ]
    210   },
    211   {
    212    "cell_type": "markdown",
    213    "metadata": {},
    214    "source": [
    215     "## Workload Execution and Power Consumptions Samping\n",
    216     "\n",
    217     "Detailed information on RTApp can be found in **examples/wlgen/rtapp_example.ipynb**.\n",
    218     "\n",
    219     "Each **EnergyMeter** derived class has two main methods: **reset** and **report**.\n",
    220     " - The **reset** method will reset the energy meter and start sampling from channels specified in the target configuration. <br>\n",
    221     " - The **report** method will stop capture and will retrieve the energy consumption data. This returns an EnergyReport composed of the measured channels energy and the report file. Each of the samples can also be obtained, as you can see below."
    222    ]
    223   },
    224   {
    225    "cell_type": "code",
    226    "execution_count": 9,
    227    "metadata": {},
    228    "outputs": [
    229     {
    230      "name": "stderr",
    231      "output_type": "stream",
    232      "text": [
    233       "2017-05-10 16:01:02,532 INFO    : Workload     : Setup new workload ramp\n",
    234       "2017-05-10 16:01:02,639 INFO    : Workload     : Workload duration defined by longest task\n",
    235       "2017-05-10 16:01:02,641 INFO    : Workload     : Default policy: SCHED_OTHER\n",
    236       "2017-05-10 16:01:02,643 INFO    : Workload     : ------------------------\n",
    237       "2017-05-10 16:01:02,644 INFO    : Workload     : task [ramp], sched: using default policy\n",
    238       "2017-05-10 16:01:02,646 INFO    : Workload     :  | calibration CPU: 4\n",
    239       "2017-05-10 16:01:02,647 INFO    : Workload     :  | loops count: 1\n",
    240       "2017-05-10 16:01:02,648 INFO    : Workload     : + phase_000001: duration 0.500000 [s] (5 loops)\n",
    241       "2017-05-10 16:01:02,650 INFO    : Workload     : |  period   100000 [us], duty_cycle  60 %\n",
    242       "2017-05-10 16:01:02,651 INFO    : Workload     : |  run_time  60000 [us], sleep_time  40000 [us]\n",
    243       "2017-05-10 16:01:02,652 INFO    : Workload     : + phase_000002: duration 0.500000 [s] (5 loops)\n",
    244       "2017-05-10 16:01:02,653 INFO    : Workload     : |  period   100000 [us], duty_cycle  55 %\n",
    245       "2017-05-10 16:01:02,655 INFO    : Workload     : |  run_time  55000 [us], sleep_time  45000 [us]\n",
    246       "2017-05-10 16:01:02,656 INFO    : Workload     : + phase_000003: duration 0.500000 [s] (5 loops)\n",
    247       "2017-05-10 16:01:02,658 INFO    : Workload     : |  period   100000 [us], duty_cycle  50 %\n",
    248       "2017-05-10 16:01:02,659 INFO    : Workload     : |  run_time  50000 [us], sleep_time  50000 [us]\n",
    249       "2017-05-10 16:01:02,661 INFO    : Workload     : + phase_000004: duration 0.500000 [s] (5 loops)\n",
    250       "2017-05-10 16:01:02,663 INFO    : Workload     : |  period   100000 [us], duty_cycle  45 %\n",
    251       "2017-05-10 16:01:02,664 INFO    : Workload     : |  run_time  45000 [us], sleep_time  55000 [us]\n",
    252       "2017-05-10 16:01:02,666 INFO    : Workload     : + phase_000005: duration 0.500000 [s] (5 loops)\n",
    253       "2017-05-10 16:01:02,667 INFO    : Workload     : |  period   100000 [us], duty_cycle  40 %\n",
    254       "2017-05-10 16:01:02,668 INFO    : Workload     : |  run_time  40000 [us], sleep_time  60000 [us]\n",
    255       "2017-05-10 16:01:02,670 INFO    : Workload     : + phase_000006: duration 0.500000 [s] (5 loops)\n",
    256       "2017-05-10 16:01:02,671 INFO    : Workload     : |  period   100000 [us], duty_cycle  35 %\n",
    257       "2017-05-10 16:01:02,672 INFO    : Workload     : |  run_time  35000 [us], sleep_time  65000 [us]\n",
    258       "2017-05-10 16:01:02,674 INFO    : Workload     : + phase_000007: duration 0.500000 [s] (5 loops)\n",
    259       "2017-05-10 16:01:02,675 INFO    : Workload     : |  period   100000 [us], duty_cycle  30 %\n",
    260       "2017-05-10 16:01:02,677 INFO    : Workload     : |  run_time  30000 [us], sleep_time  70000 [us]\n",
    261       "2017-05-10 16:01:02,678 INFO    : Workload     : + phase_000008: duration 0.500000 [s] (5 loops)\n",
    262       "2017-05-10 16:01:02,679 INFO    : Workload     : |  period   100000 [us], duty_cycle  25 %\n",
    263       "2017-05-10 16:01:02,680 INFO    : Workload     : |  run_time  25000 [us], sleep_time  75000 [us]\n",
    264       "2017-05-10 16:01:02,682 INFO    : Workload     : + phase_000009: duration 0.500000 [s] (5 loops)\n",
    265       "2017-05-10 16:01:02,683 INFO    : Workload     : |  period   100000 [us], duty_cycle  20 %\n",
    266       "2017-05-10 16:01:02,684 INFO    : Workload     : |  run_time  20000 [us], sleep_time  80000 [us]\n",
    267       "2017-05-10 16:01:02,737 INFO    : Workload     : Workload execution START:\n",
    268       "2017-05-10 16:01:02,740 INFO    : Workload     :    /data/local/tmp/bin/rt-app /data/local/tmp/devlib-target/ramp_00.json 2>&1\n"
    269      ]
    270     }
    271    ],
    272    "source": [
    273     "# Create and RTApp RAMP task\n",
    274     "rtapp = RTA(te.target, 'ramp', calibration=te.calibration())\n",
    275     "rtapp.conf(kind='profile',\n",
    276     "           params={\n",
    277     "                'ramp' : Ramp(\n",
    278     "                    start_pct =  60,\n",
    279     "                    end_pct   =  20,\n",
    280     "                    delta_pct =   5,\n",
    281     "                    time_s    =   0.5).get()\n",
    282     "          })\n",
    283     "\n",
    284     "# EnergyMeter Start\n",
    285     "te.emeter.reset()\n",
    286     "\n",
    287     "rtapp.run(out_dir=te.res_dir)\n",
    288     "\n",
    289     "# EnergyMeter Stop and samples collection\n",
    290     "nrg_report = te.emeter.report(te.res_dir)"
    291    ]
    292   },
    293   {
    294    "cell_type": "code",
    295    "execution_count": 10,
    296    "metadata": {},
    297    "outputs": [
    298     {
    299      "name": "stderr",
    300      "output_type": "stream",
    301      "text": [
    302       "2017-05-10 16:01:07,581 INFO    : root         : Collected data:\n"
    303      ]
    304     },
    305     {
    306      "name": "stdout",
    307      "output_type": "stream",
    308      "text": [
    309       "\u001b[01;34m/data/Code/lisa/results/EnergyMeter_Monsoon\u001b[00m\r\n",
    310       " energy.json\r\n",
    311       " output.log\r\n",
    312       " ramp_00.json\r\n",
    313       " rt-app-ramp-0.log\r\n",
    314       " samples.csv\r\n",
    315       "\r\n",
    316       "0 directories, 5 files\r\n"
    317      ]
    318     }
    319    ],
    320    "source": [
    321     "logging.info(\"Collected data:\")\n",
    322     "!tree $te.res_dir"
    323    ]
    324   },
    325   {
    326    "cell_type": "markdown",
    327    "metadata": {},
    328    "source": [
    329     "## Power Measurements Data"
    330    ]
    331   },
    332   {
    333    "cell_type": "code",
    334    "execution_count": 11,
    335    "metadata": {},
    336    "outputs": [
    337     {
    338      "name": "stderr",
    339      "output_type": "stream",
    340      "text": [
    341       "2017-05-10 16:01:08,994 INFO    : root         : Measured channels energy:\n",
    342       "2017-05-10 16:01:08,996 INFO    : root         : {'output': 0.20335059300000002, 'USB': 0.0021446260000000002}\n"
    343      ]
    344     }
    345    ],
    346    "source": [
    347     "logging.info(\"Measured channels energy:\")\n",
    348     "logging.info(\"%s\", nrg_report.channels)"
    349    ]
    350   },
    351   {
    352    "cell_type": "code",
    353    "execution_count": 12,
    354    "metadata": {},
    355    "outputs": [
    356     {
    357      "name": "stderr",
    358      "output_type": "stream",
    359      "text": [
    360       "2017-05-10 16:01:09,538 INFO    : root         : Generated energy file:\n",
    361       "2017-05-10 16:01:09,540 INFO    : root         :   /data/Code/lisa/results/EnergyMeter_Monsoon/energy.json\n"
    362      ]
    363     },
    364     {
    365      "name": "stdout",
    366      "output_type": "stream",
    367      "text": [
    368       "{\r\n",
    369       "    \"USB\": 0.0021446260000000002, \r\n",
    370       "    \"output\": 0.20335059300000002\r\n",
    371       "}"
    372      ]
    373     }
    374    ],
    375    "source": [
    376     "logging.info(\"Generated energy file:\")\n",
    377     "logging.info(\"  %s\", nrg_report.report_file)\n",
    378     "!cat $nrg_report.report_file"
    379    ]
    380   },
    381   {
    382    "cell_type": "code",
    383    "execution_count": 13,
    384    "metadata": {},
    385    "outputs": [
    386     {
    387      "name": "stderr",
    388      "output_type": "stream",
    389      "text": [
    390       "2017-05-10 16:01:09,996 INFO    : root         : Samples collected for the Output and Battery channels (only first 10)\n"
    391      ]
    392     },
    393     {
    394      "name": "stdout",
    395      "output_type": "stream",
    396      "text": [
    397       "output_power,USB_power\r",
    398       "\r\n",
    399       "0.081740,0.000463\r",
    400       "\r\n",
    401       "0.084564,0.000463\r",
    402       "\r\n",
    403       "0.082917,0.000455\r",
    404       "\r\n",
    405       "0.081374,0.000461\r",
    406       "\r\n",
    407       "0.075255,0.000464\r",
    408       "\r\n",
    409       "0.038471,0.000465\r",
    410       "\r\n",
    411       "0.030640,0.000458\r",
    412       "\r\n",
    413       "0.033728,0.000461\r",
    414       "\r\n",
    415       "0.031777,0.000468\r",
    416       "\r\n"
    417      ]
    418     }
    419    ],
    420    "source": [
    421     "logging.info(\"Samples collected for the Output and Battery channels (only first 10)\")\n",
    422     "samples_file = os.path.join(te.res_dir, 'samples.csv')\n",
    423     "!head $samples_file"
    424    ]
    425   },
    426   {
    427    "cell_type": "code",
    428    "execution_count": 14,
    429    "metadata": {},
    430    "outputs": [
    431     {
    432      "name": "stderr",
    433      "output_type": "stream",
    434      "text": [
    435       "2017-05-10 16:01:10,595 INFO    : root         : DataFrame of collected samples (only first 5)\n"
    436      ]
    437     },
    438     {
    439      "data": {
    440       "text/html": [
    441        "<div>\n",
    442        "<table border=\"1\" class=\"dataframe\">\n",
    443        "  <thead>\n",
    444        "    <tr>\n",
    445        "      <th></th>\n",
    446        "      <th>output</th>\n",
    447        "      <th>USB</th>\n",
    448        "    </tr>\n",
    449        "    <tr>\n",
    450        "      <th></th>\n",
    451        "      <th>power</th>\n",
    452        "      <th>power</th>\n",
    453        "    </tr>\n",
    454        "  </thead>\n",
    455        "  <tbody>\n",
    456        "    <tr>\n",
    457        "      <th>0.000</th>\n",
    458        "      <td>0.081740</td>\n",
    459        "      <td>0.000463</td>\n",
    460        "    </tr>\n",
    461        "    <tr>\n",
    462        "      <th>0.002</th>\n",
    463        "      <td>0.084564</td>\n",
    464        "      <td>0.000463</td>\n",
    465        "    </tr>\n",
    466        "    <tr>\n",
    467        "      <th>0.004</th>\n",
    468        "      <td>0.082917</td>\n",
    469        "      <td>0.000455</td>\n",
    470        "    </tr>\n",
    471        "    <tr>\n",
    472        "      <th>0.006</th>\n",
    473        "      <td>0.081374</td>\n",
    474        "      <td>0.000461</td>\n",
    475        "    </tr>\n",
    476        "    <tr>\n",
    477        "      <th>0.008</th>\n",
    478        "      <td>0.075255</td>\n",
    479        "      <td>0.000464</td>\n",
    480        "    </tr>\n",
    481        "  </tbody>\n",
    482        "</table>\n",
    483        "</div>"
    484       ],
    485       "text/plain": [
    486        "         output       USB\n",
    487        "          power     power\n",
    488        "0.000  0.081740  0.000463\n",
    489        "0.002  0.084564  0.000463\n",
    490        "0.004  0.082917  0.000455\n",
    491        "0.006  0.081374  0.000461\n",
    492        "0.008  0.075255  0.000464"
    493       ]
    494      },
    495      "execution_count": 14,
    496      "metadata": {},
    497      "output_type": "execute_result"
    498     }
    499    ],
    500    "source": [
    501     "logging.info(\"DataFrame of collected samples (only first 5)\")\n",
    502     "nrg_report.data_frame.head()"
    503    ]
    504   },
    505   {
    506    "cell_type": "code",
    507    "execution_count": 16,
    508    "metadata": {},
    509    "outputs": [
    510     {
    511      "name": "stderr",
    512      "output_type": "stream",
    513      "text": [
    514       "2017-05-10 16:01:16,701 INFO    : root         : Plot of collected power samples\n"
    515      ]
    516     },
    517     {
    518      "data": {
    519       "image/png": "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\njjW6iIZjR8en6Bbmmyc/U2Fuqnfc6GINK8p8qrNzThvK63XBrPEayYV5ZLltFU3aVd2i37yyXZv3\nNeiRDBut/ePvl+mim9ObJdOXJxKzNvY3tHl+7KjhFAJA1qht7tCjq8pUkSWNXP6wpFSSPA2A/fn6\ng2t00g3PqqGt/6nYqfjy/av1bw+v6/d1zjm9Xu5vp98oj5Zng1W7arNifbqTtLcu/RPA2pbDf3Y+\nec7UjL73wrS+zW97alrVHXMpLQXBm63bU6fHVpXJ+TEXNkeE+d9ucUm19tQw0zBI7BcDIGs8vWGf\npGCbug1kpDe5rmVGYmmClxrbOlXZ2P6mrW+eXh//N6pr7hzUpRDJad2NbV2eHG9XdbNaOrp9WQuV\nS15944A+dPrxnhzrY79d4slx9tS0aFd1i06bMsaT4y3YFt+6KZb4Zmlo7VRJZZPaOrvT2kbob+v2\nSpLGDvNm7XFpdYskafKYeHO7jq6Ymtu7NDzNLfueXr/Xk7r80N4V/3z8woUzA64kO/3j719TU3uX\nzj9xvI5PfL8gdVVN7Tr/ppfUEdL1rn45kCWDAWHAiC+ArNEdgl9m9y4ulZR6w5a5M8YdbLThpevu\nW6FLfrZAe2paDj7W0uFN6EwaSMhvT6xjvPaCGZ587bV74l05Z4V4W59ssKe2pf8XDbJkTadNHu3J\n8cpr4yMol518jCTpg6fFg37ye3KgCvLip0YXzp7gQXVSnkmnTRmtMcOKNDQRxF/cUpn28ZKjqV41\nylpcUu35xcRC1iSkpak9/hneHXNyznn+mR51O6uaPQ29D/Za2z+sKDxNmiTpzle369uPrw+6jKzC\nJxOAnLOitDbtDojJLT/SPensijnd9Wrm3dhXlNZKOnSiJEl7PW7WtjiNKZpen/CeM3Ocp8fLFckT\ntMGcZj9Qp07xJvgmTUp0/p48NvORspFpjsb256oz46E8kw6s+Xmmq844XnkeTP3vjjmV17Wqhv1y\nQ+enz23VyTfMP7g1D/r3+OrU+lGkK9OtubxsbNfRFdOP523xfDcFr6wvS20v5faubi3cdkCtHelt\njTdQBF8AOaUgEcxKq9Prfpjpyeb44UUqLsyOj94utvsKTGcIZjcgd3z13bOCLiEl7V2xw2a5REnv\nGTaLSuLr6e9auFMvbakIoqQ+bdxbr1W7wrUPbdhnGnh5GTIW0nVAsybFm3luKE8t+D65dq8+c/dy\n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\n/H8sXnHCW7gM0wAAAABJRU5ErkJggg==\n",
    520       "text/plain": [
    521        "<matplotlib.figure.Figure at 0x7f45d4cc15d0>"
    522       ]
    523      },
    524      "metadata": {},
    525      "output_type": "display_data"
    526     }
    527    ],
    528    "source": [
    529     "logging.info(\"Plot of collected power samples\")\n",
    530     "axes = nrg_report.data_frame[('output', 'power')].plot(\n",
    531     "                    figsize=(16,8), drawstyle='steps-post');\n",
    532     "axes.set_title('Power samples');\n",
    533     "axes.set_xlabel('Time [s]');\n",
    534     "axes.set_ylabel('Output power [W]');"
    535    ]
    536   },
    537   {
    538    "cell_type": "code",
    539    "execution_count": 17,
    540    "metadata": {},
    541    "outputs": [
    542     {
    543      "name": "stderr",
    544      "output_type": "stream",
    545      "text": [
    546       "2017-05-10 16:01:18,356 INFO    : root         : Plot of collected power samples\n"
    547      ]
    548     },
    549     {
    550      "data": {
    551       "text/html": [
    552        "<div>\n",
    553        "<table border=\"1\" class=\"dataframe\">\n",
    554        "  <thead>\n",
    555        "    <tr style=\"text-align: right;\">\n",
    556        "      <th></th>\n",
    557        "      <th></th>\n",
    558        "      <th>count</th>\n",
    559        "      <th>mean</th>\n",
    560        "      <th>std</th>\n",
    561        "      <th>min</th>\n",
    562        "      <th>50%</th>\n",
    563        "      <th>90%</th>\n",
    564        "      <th>95%</th>\n",
    565        "      <th>99%</th>\n",
    566        "      <th>max</th>\n",
    567        "    </tr>\n",
    568        "  </thead>\n",
    569        "  <tbody>\n",
    570        "    <tr>\n",
    571        "      <th>output</th>\n",
    572        "      <th>power</th>\n",
    573        "      <td>2250.0</td>\n",
    574        "      <td>0.045218</td>\n",
    575        "      <td>0.022001</td>\n",
    576        "      <td>0.029505</td>\n",
    577        "      <td>0.034054</td>\n",
    578        "      <td>0.076411</td>\n",
    579        "      <td>0.085983</td>\n",
    580        "      <td>0.110465</td>\n",
    581        "      <td>0.258452</td>\n",
    582        "    </tr>\n",
    583        "    <tr>\n",
    584        "      <th>USB</th>\n",
    585        "      <th>power</th>\n",
    586        "      <td>2250.0</td>\n",
    587        "      <td>0.000477</td>\n",
    588        "      <td>0.000046</td>\n",
    589        "      <td>0.000449</td>\n",
    590        "      <td>0.000466</td>\n",
    591        "      <td>0.000478</td>\n",
    592        "      <td>0.000503</td>\n",
    593        "      <td>0.000703</td>\n",
    594        "      <td>0.000734</td>\n",
    595        "    </tr>\n",
    596        "  </tbody>\n",
    597        "</table>\n",
    598        "</div>"
    599       ],
    600       "text/plain": [
    601        "               count      mean       std       min       50%       90%  \\\n",
    602        "output power  2250.0  0.045218  0.022001  0.029505  0.034054  0.076411   \n",
    603        "USB    power  2250.0  0.000477  0.000046  0.000449  0.000466  0.000478   \n",
    604        "\n",
    605        "                   95%       99%       max  \n",
    606        "output power  0.085983  0.110465  0.258452  \n",
    607        "USB    power  0.000503  0.000703  0.000734  "
    608       ]
    609      },
    610      "execution_count": 17,
    611      "metadata": {},
    612      "output_type": "execute_result"
    613     }
    614    ],
    615    "source": [
    616     "logging.info(\"Plot of collected power samples\")\n",
    617     "nrg_report.data_frame.describe(percentiles=[0.90, 0.95, 0.99]).T"
    618    ]
    619   },
    620   {
    621    "cell_type": "code",
    622    "execution_count": 18,
    623    "metadata": {},
    624    "outputs": [
    625     {
    626      "name": "stderr",
    627      "output_type": "stream",
    628      "text": [
    629       "2017-05-10 16:01:19,645 INFO    : root         : Power distribution\n"
    630      ]
    631     },
    632     {
    633      "data": {
    634       "image/png": "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\nH9MNg0bn67H2AAAAAElFTkSuQmCC\n",
    635       "text/plain": [
    636        "<matplotlib.figure.Figure at 0x7f45d4d20d50>"
    637       ]
    638      },
    639      "metadata": {},
    640      "output_type": "display_data"
    641     }
    642    ],
    643    "source": [
    644     "logging.info(\"Power distribution\")\n",
    645     "axes = nrg_report.data_frame[('output', 'power')].plot(\n",
    646     "                    kind='hist', bins=32,\n",
    647     "                    figsize=(16,8));\n",
    648     "axes.set_title('Power Histogram');\n",
    649     "axes.set_xlabel('Output power [W] buckets');\n",
    650     "axes.set_ylabel('Samples per bucket');"
    651    ]
    652   }
    653  ],
    654  "metadata": {
    655   "kernelspec": {
    656    "display_name": "Python 2",
    657    "language": "python",
    658    "name": "python2"
    659   },
    660   "language_info": {
    661    "codemirror_mode": {
    662     "name": "ipython",
    663     "version": 2
    664    },
    665    "file_extension": ".py",
    666    "mimetype": "text/x-python",
    667    "name": "python",
    668    "nbconvert_exporter": "python",
    669    "pygments_lexer": "ipython2",
    670    "version": "2.7.12"
    671   },
    672   "toc": {
    673    "colors": {
    674     "hover_highlight": "#DAA520",
    675     "running_highlight": "#FF0000",
    676     "selected_highlight": "#FFD700"
    677    },
    678    "moveMenuLeft": true,
    679    "nav_menu": {
    680     "height": "136px",
    681     "width": "253px"
    682    },
    683    "navigate_menu": true,
    684    "number_sections": true,
    685    "sideBar": true,
    686    "threshold": 4,
    687    "toc_cell": false,
    688    "toc_number_sections": true,
    689    "toc_section_display": "block",
    690    "toc_threshold": 6,
    691    "toc_window_display": false
    692   }
    693  },
    694  "nbformat": 4,
    695  "nbformat_minor": 1
    696 }
    697