blob: eb819d577d31014fac8cae6751c26394ab31fc1a [file] [log] [blame]
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<font size=\"8\">Trace Analysis Examples</font>\n",
"<br>\n",
"<font size=\"5\">Kernel Functions Profiling</font>\n",
"<br>\n",
"<hr>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Import Required Modules"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"import logging\n",
"from conf import LisaLogging\n",
"LisaLogging.setup()"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Populating the interactive namespace from numpy and matplotlib\n"
]
}
],
"source": [
"# Generate plots inline\n",
"%matplotlib inline\n",
"\n",
"import json\n",
"import os\n",
"\n",
"# Support to access the remote target\n",
"import devlib\n",
"from env import TestEnv\n",
"\n",
"# RTApp configurator for generation of PERIODIC tasks\n",
"from wlgen import RTA, Ramp\n",
"\n",
"# Support for trace events analysis\n",
"from trace import Trace"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Target Configuration"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"outputs": [],
"source": [
"# Setup target configuration\n",
"my_conf = {\n",
"\n",
" # Target platform and board\n",
" \"platform\" : 'linux',\n",
" \"board\" : 'juno',\n",
" \"host\" : '192.168.0.1',\n",
"\n",
" # Folder where all the results will be collected\n",
" \"results_dir\" : \"TraceAnalysis_FunctionsProfiling\",\n",
"\n",
" # Define devlib modules to load\n",
" \"exclude_modules\" : [ 'hwmon' ],\n",
"\n",
" # FTrace events to collect for all the tests configuration which have\n",
" # the \"ftrace\" flag enabled\n",
" \"ftrace\" : {\n",
" \"functions\" : [\n",
" \"pick_next_task_fair\",\n",
" \"select_task_rq_fair\",\n",
" \"enqueue_task_fair\",\n",
" \"update_curr_fair\",\n",
" \"dequeue_task_fair\",\n",
" ],\n",
" \n",
" \"buffsize\" : 100 * 1024,\n",
" },\n",
"\n",
" # Tools required by the experiments\n",
" \"tools\" : [ 'trace-cmd', 'rt-app' ],\n",
" \n",
" # Comment this line to calibrate RTApp in your own platform\n",
" \"rtapp-calib\" : {\"0\": 360, \"1\": 142, \"2\": 138, \"3\": 352, \"4\": 352, \"5\": 353},\n",
"}"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false,
"scrolled": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"03:35:25 INFO : Target - Using base path: /home/derkling/Code/lisa\n",
"03:35:25 INFO : Target - Loading custom (inline) target configuration\n",
"03:35:25 INFO : Target - Devlib modules to load: ['bl', 'cpufreq']\n",
"03:35:25 INFO : Target - Connecting linux target:\n",
"03:35:25 INFO : Target - username : root\n",
"03:35:25 INFO : Target - host : 192.168.0.1\n",
"03:35:25 INFO : Target - password : \n",
"03:35:25 INFO : Target - Connection settings:\n",
"03:35:25 INFO : Target - {'username': 'root', 'host': '192.168.0.1', 'password': ''}\n",
"03:35:29 INFO : Target - Initializing target workdir:\n",
"03:35:29 INFO : Target - /root/devlib-target\n",
"03:35:34 INFO : Target - Topology:\n",
"03:35:34 INFO : Target - [[0, 3, 4, 5], [1, 2]]\n",
"03:35:35 INFO : Platform - Loading default EM:\n",
"03:35:35 INFO : Platform - /home/derkling/Code/lisa/libs/utils/platforms/juno.json\n",
"03:35:38 INFO : FTrace - Enabled tracepoints:\n",
"03:35:38 INFO : FTrace - sched:*\n",
"03:35:38 INFO : FTrace - Kernel functions profiled:\n",
"03:35:38 INFO : FTrace - pick_next_task_fair\n",
"03:35:38 INFO : FTrace - select_task_rq_fair\n",
"03:35:38 INFO : FTrace - enqueue_task_fair\n",
"03:35:38 INFO : FTrace - update_curr_fair\n",
"03:35:38 INFO : FTrace - dequeue_task_fair\n",
"03:35:38 WARNING : Target - Using configuration provided RTApp calibration\n",
"03:35:38 INFO : Target - Using RT-App calibration values:\n",
"03:35:38 INFO : Target - {\"0\": 360, \"1\": 142, \"2\": 138, \"3\": 352, \"4\": 352, \"5\": 353}\n",
"03:35:38 INFO : EnergyMeter - HWMON module not enabled\n",
"03:35:38 WARNING : EnergyMeter - Energy sampling disabled by configuration\n",
"03:35:38 INFO : TestEnv - Set results folder to:\n",
"03:35:38 INFO : TestEnv - /home/derkling/Code/lisa/results/TraceAnalysis_FunctionsProfiling\n",
"03:35:38 INFO : TestEnv - Experiment results available also in:\n",
"03:35:38 INFO : TestEnv - /home/derkling/Code/lisa/results_latest\n"
]
}
],
"source": [
"# Initialize a test environment using:\n",
"te = TestEnv(my_conf, wipe=False, force_new=True)\n",
"target = te.target"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Workload Execution and Functions Profiling Data Collection"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": [
"def experiment(te):\n",
"\n",
" # Create and RTApp RAMP task\n",
" rtapp = RTA(te.target, 'ramp', calibration=te.calibration())\n",
" rtapp.conf(kind='profile',\n",
" params={\n",
" 'ramp' : Ramp(\n",
" start_pct = 60,\n",
" end_pct = 20,\n",
" delta_pct = 5,\n",
" time_s = 0.5).get()\n",
" })\n",
"\n",
" # FTrace the execution of this workload\n",
" te.ftrace.start()\n",
" rtapp.run(out_dir=te.res_dir)\n",
" te.ftrace.stop()\n",
"\n",
" # Collect and keep track of the trace\n",
" trace_file = os.path.join(te.res_dir, 'trace.dat')\n",
" te.ftrace.get_trace(trace_file)\n",
" \n",
" # Collect and keep track of the Kernel Functions performance data\n",
" stats_file = os.path.join(te.res_dir, 'trace.stats')\n",
" te.ftrace.get_stats(stats_file)\n",
"\n",
" # Dump platform descriptor\n",
" te.platform_dump(te.res_dir)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"03:35:38 INFO : WlGen - Setup new workload ramp\n",
"03:35:38 INFO : RTApp - Workload duration defined by longest task\n",
"03:35:38 INFO : RTApp - Default policy: SCHED_OTHER\n",
"03:35:38 INFO : RTApp - ------------------------\n",
"03:35:38 INFO : RTApp - task [ramp], sched: using default policy\n",
"03:35:38 INFO : RTApp - | calibration CPU: 1\n",
"03:35:38 INFO : RTApp - | loops count: 1\n",
"03:35:38 INFO : RTApp - + phase_000001: duration 0.500000 [s] (5 loops)\n",
"03:35:38 INFO : RTApp - | period 100000 [us], duty_cycle 60 %\n",
"03:35:38 INFO : RTApp - | run_time 60000 [us], sleep_time 40000 [us]\n",
"03:35:38 INFO : RTApp - + phase_000002: duration 0.500000 [s] (5 loops)\n",
"03:35:38 INFO : RTApp - | period 100000 [us], duty_cycle 55 %\n",
"03:35:38 INFO : RTApp - | run_time 55000 [us], sleep_time 45000 [us]\n",
"03:35:38 INFO : RTApp - + phase_000003: duration 0.500000 [s] (5 loops)\n",
"03:35:38 INFO : RTApp - | period 100000 [us], duty_cycle 50 %\n",
"03:35:38 INFO : RTApp - | run_time 50000 [us], sleep_time 50000 [us]\n",
"03:35:38 INFO : RTApp - + phase_000004: duration 0.500000 [s] (5 loops)\n",
"03:35:38 INFO : RTApp - | period 100000 [us], duty_cycle 45 %\n",
"03:35:38 INFO : RTApp - | run_time 45000 [us], sleep_time 55000 [us]\n",
"03:35:38 INFO : RTApp - + phase_000005: duration 0.500000 [s] (5 loops)\n",
"03:35:38 INFO : RTApp - | period 100000 [us], duty_cycle 40 %\n",
"03:35:38 INFO : RTApp - | run_time 40000 [us], sleep_time 60000 [us]\n",
"03:35:38 INFO : RTApp - + phase_000006: duration 0.500000 [s] (5 loops)\n",
"03:35:38 INFO : RTApp - | period 100000 [us], duty_cycle 35 %\n",
"03:35:38 INFO : RTApp - | run_time 35000 [us], sleep_time 65000 [us]\n",
"03:35:38 INFO : RTApp - + phase_000007: duration 0.500000 [s] (5 loops)\n",
"03:35:38 INFO : RTApp - | period 100000 [us], duty_cycle 30 %\n",
"03:35:38 INFO : RTApp - | run_time 30000 [us], sleep_time 70000 [us]\n",
"03:35:38 INFO : RTApp - + phase_000008: duration 0.500000 [s] (5 loops)\n",
"03:35:38 INFO : RTApp - | period 100000 [us], duty_cycle 25 %\n",
"03:35:38 INFO : RTApp - | run_time 25000 [us], sleep_time 75000 [us]\n",
"03:35:38 INFO : RTApp - + phase_000009: duration 0.500000 [s] (5 loops)\n",
"03:35:38 INFO : RTApp - | period 100000 [us], duty_cycle 20 %\n",
"03:35:38 INFO : RTApp - | run_time 20000 [us], sleep_time 80000 [us]\n",
"03:35:44 INFO : WlGen - Workload execution START:\n",
"03:35:44 INFO : WlGen - /root/devlib-target/bin/rt-app /root/devlib-target/ramp_00.json 2>&1\n"
]
}
],
"source": [
"experiment(te)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Parse Trace and Profiling Data"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"03:35:53 INFO : Content of the output folder /home/derkling/Code/lisa/results/TraceAnalysis_FunctionsProfiling\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\u001b[01;34m/home/derkling/Code/lisa/results/TraceAnalysis_FunctionsProfiling\u001b[00m\r\n",
"├── output.log\r\n",
"├── platform.json\r\n",
"├── ramp_00.json\r\n",
"├── rt-app-ramp-0.log\r\n",
"├── trace.dat\r\n",
"├── trace.raw.txt\r\n",
"├── trace.stats\r\n",
"└── trace.txt\r\n",
"\r\n",
"0 directories, 8 files\r\n"
]
}
],
"source": [
"# Base folder where tests folder are located\n",
"res_dir = te.res_dir\n",
"logging.info('Content of the output folder %s', res_dir)\n",
"!tree {res_dir}"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"03:35:53 INFO : LITTLE cluster max capacity: 447\n"
]
}
],
"source": [
"with open(os.path.join(res_dir, 'platform.json'), 'r') as fh:\n",
" platform = json.load(fh)\n",
"#print json.dumps(platform, indent=4)\n",
"logging.info('LITTLE cluster max capacity: %d',\n",
" platform['nrg_model']['little']['cpu']['cap_max'])"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"collapsed": false
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"03:21:10 INFO : Parsing FTrace format...\n",
"03:21:10 INFO : Trace contains only functions stats\n",
"03:21:10 INFO : Collected events spans a 0.000 [s] time interval\n",
"03:21:10 INFO : Set plots time range to (0.000000, 0.000000)[s]\n",
"03:21:10 INFO : Registering trace analysis modules:\n",
"03:21:10 INFO : frequency\n",
"03:21:10 INFO : functions\n",
"03:21:10 INFO : tasks\n",
"03:21:10 INFO : eas\n",
"03:21:10 INFO : status\n",
"03:21:10 INFO : cpus\n"
]
}
],
"source": [
"trace = Trace(platform, res_dir, events=[])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Report Functions Profiling Data"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>hits</th>\n",
" <th>avg</th>\n",
" <th>time</th>\n",
" <th>s_2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">0</th>\n",
" <th>dequeue_task_fair</th>\n",
" <td>538</td>\n",
" <td>3.372</td>\n",
" <td>1814.54</td>\n",
" <td>5.544</td>\n",
" </tr>\n",
" <tr>\n",
" <th>enqueue_task_fair</th>\n",
" <td>571</td>\n",
" <td>3.214</td>\n",
" <td>1835.56</td>\n",
" <td>2.027</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">1</th>\n",
" <th>dequeue_task_fair</th>\n",
" <td>12</td>\n",
" <td>3.501</td>\n",
" <td>42.02</td>\n",
" <td>1.593</td>\n",
" </tr>\n",
" <tr>\n",
" <th>enqueue_task_fair</th>\n",
" <td>17</td>\n",
" <td>3.076</td>\n",
" <td>52.30</td>\n",
" <td>0.593</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">2</th>\n",
" <th>dequeue_task_fair</th>\n",
" <td>1160</td>\n",
" <td>2.469</td>\n",
" <td>2864.78</td>\n",
" <td>2.218</td>\n",
" </tr>\n",
" <tr>\n",
" <th>enqueue_task_fair</th>\n",
" <td>1164</td>\n",
" <td>2.177</td>\n",
" <td>2535.18</td>\n",
" <td>0.999</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">3</th>\n",
" <th>dequeue_task_fair</th>\n",
" <td>304</td>\n",
" <td>2.362</td>\n",
" <td>718.34</td>\n",
" <td>3.015</td>\n",
" </tr>\n",
" <tr>\n",
" <th>enqueue_task_fair</th>\n",
" <td>279</td>\n",
" <td>2.538</td>\n",
" <td>708.18</td>\n",
" <td>1.082</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">4</th>\n",
" <th>dequeue_task_fair</th>\n",
" <td>199</td>\n",
" <td>2.646</td>\n",
" <td>526.58</td>\n",
" <td>2.827</td>\n",
" </tr>\n",
" <tr>\n",
" <th>enqueue_task_fair</th>\n",
" <td>215</td>\n",
" <td>2.571</td>\n",
" <td>552.78</td>\n",
" <td>0.903</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">5</th>\n",
" <th>dequeue_task_fair</th>\n",
" <td>88</td>\n",
" <td>2.407</td>\n",
" <td>211.82</td>\n",
" <td>2.773</td>\n",
" </tr>\n",
" <tr>\n",
" <th>enqueue_task_fair</th>\n",
" <td>59</td>\n",
" <td>2.774</td>\n",
" <td>163.70</td>\n",
" <td>1.491</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" hits avg time s_2\n",
"0 dequeue_task_fair 538 3.372 1814.54 5.544\n",
" enqueue_task_fair 571 3.214 1835.56 2.027\n",
"1 dequeue_task_fair 12 3.501 42.02 1.593\n",
" enqueue_task_fair 17 3.076 52.30 0.593\n",
"2 dequeue_task_fair 1160 2.469 2864.78 2.218\n",
" enqueue_task_fair 1164 2.177 2535.18 0.999\n",
"3 dequeue_task_fair 304 2.362 718.34 3.015\n",
" enqueue_task_fair 279 2.538 708.18 1.082\n",
"4 dequeue_task_fair 199 2.646 526.58 2.827\n",
" enqueue_task_fair 215 2.571 552.78 0.903\n",
"5 dequeue_task_fair 88 2.407 211.82 2.773\n",
" enqueue_task_fair 59 2.774 163.70 1.491"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get the DataFrame for the specified list of kernel functions\n",
"df = trace.data_frame.functions_stats(['enqueue_task_fair', 'dequeue_task_fair'])\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th>hits</th>\n",
" <th>avg</th>\n",
" <th>time</th>\n",
" <th>s_2</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <th>select_task_rq_fair</th>\n",
" <td>783</td>\n",
" <td>1.617</td>\n",
" <td>1266.88</td>\n",
" <td>0.896</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <th>select_task_rq_fair</th>\n",
" <td>17</td>\n",
" <td>0.782</td>\n",
" <td>13.30</td>\n",
" <td>0.031</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <th>select_task_rq_fair</th>\n",
" <td>777</td>\n",
" <td>1.042</td>\n",
" <td>810.16</td>\n",
" <td>3.248</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <th>select_task_rq_fair</th>\n",
" <td>259</td>\n",
" <td>1.575</td>\n",
" <td>408.12</td>\n",
" <td>8.924</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <th>select_task_rq_fair</th>\n",
" <td>186</td>\n",
" <td>1.837</td>\n",
" <td>341.72</td>\n",
" <td>4.420</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <th>select_task_rq_fair</th>\n",
" <td>51</td>\n",
" <td>2.557</td>\n",
" <td>130.42</td>\n",
" <td>13.227</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" hits avg time s_2\n",
"0 select_task_rq_fair 783 1.617 1266.88 0.896\n",
"1 select_task_rq_fair 17 0.782 13.30 0.031\n",
"2 select_task_rq_fair 777 1.042 810.16 3.248\n",
"3 select_task_rq_fair 259 1.575 408.12 8.924\n",
"4 select_task_rq_fair 186 1.837 341.72 4.420\n",
"5 select_task_rq_fair 51 2.557 130.42 13.227"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Get the DataFrame for the single specified kernel function\n",
"df = trace.data_frame.functions_stats('select_task_rq_fair')\n",
"df"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plot Functions Profiling Data"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nGjVqlKqrqzV27Fi5uyZNmqTy8nK9++67WrlypYqLi5s9xqxZs3TGGWeoqqpKZ511VrPtdgZBHwAA\nAAAi5I033tB//vMfXXPNNUpPT1e/fv10/vnn65FHHpEkHXXUUTr++ONlZhozZowWLlwoSXr11VdV\nW1urCRMmKD09Xaeddpq+/e1vt9iXu9c/v+eee3TrrbcqKytLe+65p66++ur6Ptt73+YceuihOvzw\nw2Vm6tu3ry688ELNmTNHktS5c2fV1NRo8eLFcncNGjRIubm59fuWlZXp6KOP1siRI1VSUrLDfQ8Y\nMEDDhg1Tp06d1L17d02cOLG+76YMGTJERUVFkqTdd999h/trCffoAwAAAECELFu2TGVlZcrJyZEU\nC9Tbtm3T0KFDVVBQoLy8vPq2Xbt21caNG7Vt2zZ9+umn6t27d4NjFRQUtKnP1atXa8OGDTrssMPq\nt23btq1BmA9j38Y+/PBDXX755Zo3b56++OIL1dbW1h/3mGOO0fjx43XxxRdr+fLlOvXUUzV16lR1\n69ZNkvT0008rIyND48aN2+F+Jemzzz7TpZdeqpdfflnr16/X1q1b6/8GTcnPz9+pftqCEX0AAAAA\niJD8/Hztu+++qqysVGVlpdauXat169bpqaeeanG/Xr16qaysrMG25cuX1z/fc889tWHDhvrX5eVf\n/gJAjx491LVrVy1atKi+36qqKq1bt+4r79ucphbB+/nPf64DDjhAH330kaqqqnT99dc3+MJg/Pjx\nmjdvnhYvXqz3339fN998c/17F154oU444QSdeOKJ+uKLL1rsuymTJk1SWlqaFi1apKqqKj344IMt\nflkR5kKCBH0AAAAAiJDDDz9cGRkZ+u1vf6uNGzdq69atWrRokebNm9dk+7owOmTIEHXq1EnTp09X\nbW2tZs6cqblz59a3O+igg7Ro0SItXLhQmzZtUklJSX1YNTNdcMEFuuyyy7R69WpJsanws2fP/sr7\nNic3N1dr1qxpsOBdTU2NMjMz1bVrV7333nv6wx/+UP/evHnzNHfuXNXW1qpLly7aY489lJbWMBJP\nnz5dgwYN0o9+9CNt3Lix9Ysdp6amRt26dVNGRobKysoafInQ0Qj6AAAAANAOcnvnxn5eL6RHbu8v\n7ydvSVpamp566iktWLBA/fv3V8+ePXXBBRc0CMTx6gJ3586dNXPmTN1///3q3r27Hn/8cZ122mn1\n7fbff39dd911GjZsmAYOHLjdKvo33XST9ttvPx1xxBHKzs7Wcccdpw8++OAr79ucQYMG6cwzz9S+\n++6rnJwclZeXa+rUqXrooYeUmZmpcePGadSoUfXtq6urdcEFFygnJ0f9+/dXjx49dOWVV2533Lvv\nvlv5+fk6+eSTtXnz5hZriDd58mTNnz9f2dnZKioqanDtpHBH8BuznbnvAbsGM3P+vgAAAED7M7Od\nuod8VzN27Fjl5+e3uAI+wtfc5y3Yvt03CIzoAwAAAAAQIQR9AAAAAECTOnK6eVNuuOEGZWRkKDMz\ns8Hjhz/8YYf0P3jw4Ab91tWyMz/915GYuh9hTN0HAAAAwpEqU/eRHJi6DwAAAABACiPoAwAAAAAQ\nIQR9AAAAAAAihKAPAAAAAECEEPQBAAAAAIgQgj4AAAAApLhly5YpLS1N27ZtS3QpO6ykpERjxoxJ\nWP8ffPCBDjnkEGVlZen2229vse2KFSuUmZkZ+i82EPQBAAAAoB30y8uTmYX26JeXF2r9Ztv9StsO\n69+/v1544YVW27X3FwvtUfvO+u1vf6tjjz1W69at0/jx41tsm5+fr+rq6tDrJegnGTPb3cxeN7O3\nzGyRmf1XE22ONrMqM3szeFybiFoBAAAAfGlZRYVcCu2xrKKiA88mXO7e7G/DJ8LWrVt3et9ly5bp\n61//ervU0V7Xg6CfZNx9k6Rj3P0QSd+UdKyZfbeJpi+5+6HB4zcdWyUAAACAZHbTTTepT58+yszM\n1AEHHKAXX3xR7q4bb7xR++23n/bee2+NGjVKVVVVTe5fXV2t888/X/vss4/y8/P1q1/9qkEIveee\ne3TggQcqMzNTgwcP1oIFC3TOOedo+fLlKioqUmZmpqZOndpsfUcffbQkKTs7W5mZmXr99de1dOlS\nDRs2TD169FDPnj119tlnq7q6usVzaqy2tlajR4/WiBEjVFtb22z/JSUlGjFihMaMGaPs7GzNmDFD\nGzdu1HnnnaecnBwNHjxYU6dOVX5+fovXediwYXrxxRd18cUXKzMzU0uWLNEzzzyjQw89VFlZWSoo\nKFBJSUl9+8YzGY455hhde+21Ouqoo7Tnnnvq448/brG/tiLoJyF33xA83V2xv9HaJpolbm4KAAAA\ngKT1wQcf6I477tD8+fNVXV2t5557Tv369dNtt92mWbNm6eWXX9aqVau011576aKLLmryGOeee652\n2203LV26VG+99Zb++c9/6t5775UkPf7445oyZYoefPBBVVdXa9asWerevbseeOAB9e3bV0899ZSq\nq6t1xRVXNFvjSy+9JCn2hUJ1dbW+853vyN01adIklZeX691339XKlStVXFzc4jnF27hxo04++WR1\n6dJFjz32mDp16tTidZo1a5bOOOMMVVVVafTo0SouLtbHH3+sjz/+WM8995xmzJjR6hT7559/XkOH\nDtUdd9yh6upq7bfffurWrZv+/Oc/a926dXr66ad11113adasWfX7ND7mgw8+qHvvvVc1NTUqKCho\nsb+2IugnITNLM7O3JJVLKnX3xU00G2JmC8zsaTM7sINLBAAAAJCk0tPTtXnzZr3zzjuqra1V3759\n1b9/f/3xj3/U9ddfr169eqlz58667rrr9MQTT2x3n3xFRYWeffZZ3Xrrrdpjjz3Uo0cPXXbZZXr0\n0UclSffdd59+8Ytf6NBDD5Uk7bvvvg1Gvndk+nl82wEDBmjYsGHq1KmTunfvrokTJ2rOnDktnlOd\ndevW6YQTTtD++++v++67r033wA8ZMkRFRUWSpD322EOPP/64rr32WmVlZal3796aMGFCm88j3ve+\n9736qfyDBw/WqFGj6s+jKeedd56+9rWvKS0tTenp6TvVZ2Mtf8WBhHD3bZIOMbNMSbPN7Gh3j/9k\nzJfU1903mNmJkv4uaWBTx6r7BkySCgsLVVhYGFrdQCLk5fVTRcWyUPvIzS1QefknofYBAADQXgYM\nGKBp06apuLhYixYt0gknnKDf/e53WrZsmU455RSlpcXGe91dnTt3VkWje/+XL1+uLVu2qFevXvXt\n3F19+/aVFFs5fsCAAe1e92effaZLL71UL7/8stavX6+tW7cqJydnu3NavHixjj/+eN1yyy3KCxYo\nfO2111RbW1v/ZURbNJ6Wv2rVKvXp06f+9c6Ors+dO1dXX3213nnnHW3evFmbN2/WiBEj2lxHS0pL\nS1VaWtpqO4J+EnP3ajN7WtK3JM2J274+7vmzZnanmeW4e2XjY8QHfSCKYiE/3EVcKiq4UwYAAOxa\nRo0apVGjRmn9+vW68MILddVVV6lv377605/+pCFDhmzXftmyLwdO8vPztccee2jNmjVNjozn5+fr\no48+arLftq4m31S7SZMmKS0tTYsWLVJWVpb+8Y9/6JJLLmnxnGbMmCFJOv744/XNb35Txx57rEpL\n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\n9ImIiIiIiIjMCBN9IiIiIiIiIjPCRJ+IiIiIiIjIjDDRJyIiIiIiIjIjTPSJiIiIiIiIzAgTfSKi\nZtYWgCRJjfqvp6Njc+8mERERETURq+ZuABFRa3cbgGjkz5B++62RP4GIiIiIWgqO6BMRERERERGZ\nESb6RERERERERGaEiT4RERERERGRGWGiT0RERERERGRGmOgTERERERERmREm+kRERERERERmhIk+\nERERERERkRlhok9ERERERERkRpjoExEREREREZkRJvpEREREREREZoSJPhEREREREZEZYaJPRERE\nREREZEaY6BMRERERERGZESb6RERERERERGaEiT4RERERERGRGWGiT0RERERERGRGmOgTERERERER\nmREm+kRERERERERmhIk+ERERERERkRlhok9ERERERERkRpjoExEREREREZkRJvpEREREREREZoSJ\nPhEREREREZEZYaJPREREREREZEaY6BMRERERERGZESb6LYwkSU9IknRKkqRcSZJe1bN+iCRJVyVJ\n0v757/XmaCcRERERERG1TFbN3QD6iyRJFgBWARgK4FcAGZIk7RJCnLqj6CEhxOgmbyARERERERG1\neBzRb1kGAjgthMgXQpQBiAUQrqec1LTNIiIiIiIiIlPBRL9lcQZwttrvhX8uu9NjkiRlS5K0R5Ik\n16ZpGhEREREREZkCTt03PccAdBdCFEuSFApgJ4C+hgq/+eab8s8BAQEICAho7PYRERERERFRI0hO\nTkZycnK95ZjotyznAHSv9rvLn8tkQogb1X7eK0nSp5IkdRFCXNG3weqJPhEREREREZmuOwdvlyxZ\norccp+63LBkAHpUkqYckSW0ATAYQX72AJEkO1X4eCEAylOQTERERERFR68MR/RZECFEhSdLzAL5B\n5UWYz4UQJyVJerpytVgLIEKSpGcBlAEoATCp+VpMRERERERELQ0T/RZGCJEIoN8dy9ZU+/kTAJ80\ndbuIiIiIiIjINHDqPhEREREREZEZYaJPREREREREZEaY6BMRERERERGZESb6RERERERERGaEiT4R\nERERERGRGWGiT0RERERERGRGmOgTERERERERmREm+kRERERERERmhIk+ERERERERkRlhok9ERERE\nRERkRpjoExEREREREZkRJvpEREREREREZoSJPhEREREREZEZYaJPREREREREZEaY6BMRERERERGZ\nESb6RERERERERGaEiT4RERERERGRGWGiT0RERERERGRGmOgTERERERERmREm+kRERERERERmhIk+\nERERERERkRlhok9ERERERERkRpjoExEREREREZkRJvpEREREREREZoSJPhEREREREZEZYaJPRERE\nREREZEaY6BMRERERERGZESb6RERERERERGaEiT4RERERERGRGWGiT0RERERERGRGmOgTERERERER\nmREm+kRERERERERmhIk+ERERERERkRlhok9ERERERERkRpjoExEREREREZkRJvpEREREREREZoSJ\nPhEREREREZEZYaJPREREREREZEaY6BMRERERERGZESb6RERERERERGaEiT4RERERERGRGWGiT0RE\nRERERGRGmOgTERERERERmREm+kRERERERERmhIk+ERERERERkRlhok9ERERERERkRpjoExERERER\nEZkRJvotjCRJT0iSdEqSpFxJkl41UOZjSZJOS5KULUmSqqnbSERERERERC0XE/0WRJIkCwCrAAwH\n4AbgSUmS+t9RJhRAbyFEHwBPA/isyRtKRERERERELRYT/ZZlIIDTQoh8IUQZgFgA4XeUCQcQAwBC\niCMAOkqS5NC0zSQiIiIiIqKWiol+y+IM4Gy13wv/XFZXmXN6yhAREREREVErZdXcDaDGJUlSczdB\njyZo05uN/xGNvRct87trqUw/ppri22ZM3Y1G/lu92bibBxhTLYvpH6MAxlTLwphq8GcwphqIMdWg\n7ZtQPDHRb1nOAehe7XeXP5fdWaZbPWVkQgijNY5IkiTGFBkN44mMjTFFxsaYImNjTJGxGbr4wKn7\nLUsGgEclSeohSVIbAJMBxN9RJh7AdACQJMkXwFUhxG9N20zzkZiYiP79+6Nv37549913m7s5ZOJm\nzZoFBwcHeHh4NHdTyAwUFhYiKCgIbm5uUCqV+Pjjj5u7SWTibt++DR8fH6jVari5ueG1115r7iaR\nmdDpdNBoNBg9enRzN4XMQM+ePeHp6Qm1Wo2BAwc2d3NMlsQrSi2LJElPAFiByoswnwshlkuS9DQA\nIYRY+2eZVQCeAHATQKQQQmtgW4Lfr2E6nQ59+/bFgQMH8PDDD8Pb2xuxsbHo379//ZVbKV6Frltq\nairs7Owwffp05OTkNHdzWjzGU90uXLiACxcuQKVS4caNG/Dy8sKuXbt4jKoDY6p+xcXFaNeuHSoq\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f5361b61150>"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAA/oAAAILCAYAAABYX+epAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XucVXW9//HXh4siMsNVGERuXiCMjqknS9MjSUftQmmG\nIImXUik1Lz0shUwHT/3MMrNDaakdD2bp8fY7kXdLMT0/DfFySLAUUZBBkByGQRFh8Pv7Y+8Z94wz\nw2ycmY2L1/Px2A/X/u611vez1sxj8L3Wd313pJSQJEmSJEnZ0KXUBUiSJEmSpPZj0JckSZIkKUMM\n+pIkSZIkZYhBX5IkSZKkDDHoS5IkSZKUIQZ9SZIkSZIyxKAvSVIGRMSOEfFOROxa6lq2VkQsjoiP\nd3KfX42I33dmn5IkdTSDviRJHSQi1kVEbf61OSLWF7Qdt4Vtj4iIF4rsMrWyv8cj4q183/U1/FeR\n+283EXFTRMwobEsp7ZlS+ks797O44GdQlz8H9cd/TkrpP1JKX2zPPkslf7Hn+wXHvCQifhURQ/Kf\nF/4OrIqIWyJiQP6zxyJiSpP9bc3voCRpG2DQlySpg6SUylJK5SmlcmAp8LmCtpu2sHnQSnBvZZsW\nywG+mu+7voZJRe7/Ayd/8aD+Z/AEuXNQf/xXlrq+rRERXVv46PfAeOAYoDewL/AsMC7/ecPvADAG\nqAB+tIXuiv0dlCRtAwz6kiR1jqBJEI+IHhHxi4hYERHLIuJHEdE1IvoBdwC7F9x97hsRB+Xvyq6J\niOURcUVEFPNvebMXAiLiooh4uOD9uRHxVER0y78/pKDf+RFxUMG6/SNidkS8GhGvR8RN+fZpEfFA\nwXoNjxZExDfJhdHvFY4syO/joNbOTf6zIyLihYiYHhGvRcQrTe9Gt/UcFNZZUOO0iHgxImoi4sKI\nGBURf8kf/28Kz3lEHB0R/5v/7OGIGNPCOa7f9xkR8VL+jvr3m6nlbxHxj4j4Q+QfwyjY9usRsRj4\nazP7/zzwSeALKaX/TTlrU0qzUkq/bXr8KaVq4L+BsW06aRFd8j+P1/Ln5emI2Kst20qSOp9BX5Kk\n0rmEXND6MLA/uTuv38mHsKOBJQV3n9cAG4EzUkp9gUOAzwOntEMdPwB2iIjvRMTewPeAKSmluogY\nAfxfYHq+3wuB/46I3vltb8n/dxQwCPhFwX6b3g1OACmlWcDtwL+1MrKg2XNT8Pnw/P4GA98EfhkR\nPYs87pbqPCzf96HARcAschcmRgIfzy8TEZ8Afg6cCPQDfkPu3LT2/1efB/4JOAA4rv4CRURMAs4C\nPkfuPD4N3Nhk28+Ru0u/bzP7HQ88mlJaveXDhYgYSO537Km2rJ+v+6PAyJRSH2AKsKaN20qSOplB\nX5Kk0pkCXJRSWpMPaN8Hpra0ckppfkrpyfzyS8CvyYXRtvpVRFTn7z5XR8T0/L425/u9gNxIgsqU\n0t/y25wA3J5Seii/7r3AIuDw/EWATwLfSCmtSynVpZQebaX/1h4taGpL5+bNlNIPU0qbU0r/TS6s\n71nE/ltzaUrprZTS/wLPA3emlJanlGqA+3k3aJ8G/Dyl9Ez+Dvp1wI7kLky05P/kz9VSchcJ6udq\nmAZ8P6X0Yv7n8W/AwRGxS8G2389v+3Yz++0PvNqGY/tVRFQD84EXyP3M22ITUA7sHRGRUnoupfSP\nNm4rSepkBn1JkkqnAlhW8H4pMKSllSNiTETcHRErI2ItuTvvA4ro77SUUr+UUt/8fy+t/yCltBj4\nf/marinYZjgwNX9hoDoi1pALsrsCQ4HXUkrri6ihrbZ0bpreuV4P9Gqnvl8rWH4LWNXkfX0/w4EZ\nTc7NAFr5GQLLC5aXkjuP9fv6Zf2+8jVsBHZrYdumXic3umFL6n8HhqWUvpq/eAFQB3Rvsm53cgGf\nlNI95C4s/Qp4NSJ+/j5GUEiSOphBX5Kk0nmVXMCrNxyoyi83NwnatcCT5IZP9yZ317eYu+QtrhsR\nXyI3XP0x4IcFH70CXJsPh/UXCcpSSj/LfzawhcD3JlDYPrjJMW1pkreVtHxuthWvkBt1UHhueuVH\nGLRkaMHyMGBFwb5OamZfTxes39o5+yPwySYjAJrT0u/AMmBEk7aR5C5G5DpP6cqU0n7kHj34KHD2\nFvqSJJWIQV+SpNK5Gbg4Ivrln5meQe45b8jdRR4YETsXrN8LWJtSeisiPgyc2h5FREQFcDVwErnn\nzSdFxGH5j2cDEyPisPyEbDvllwemlF4G/gz8PCLKI6J7RByS3+4ZYN/8KISe5EYfFFoF7N5KWTfR\n8rnZVlwDfDMi9geIiF4RMSEierSyzfn5czUCOJPc7wDAL8lNTjgqv6+++YsvbZJSugv4H3JzBOyT\n/1mV5yf/+0obdvFfwKkRsW++/zHk5j6on1zx4xGxf35CxLfIjTZ4p631SZI6l0FfkqTO0dzd2IvI\nPe++kNykaI8APwbIPx8+B1iaH87dB/gWuTBWS26CuJub7G9Ld8mvi3e/U35dRNQ/T/9r4MaU0tyU\n0mvAN4D/iIjy/FwAxwAzgX8AL5GbNK7+/yGOA3Yg97z3q8DX8/U/S+6r2x7NH+NDTWq5Bjggf2y/\na6b+Fs9NC9ryNXBbs06L26SU/h+5c/Gr/LD9v5E7H631cxfwv8A84L/qZ8RPKd1M7md6R0TUkDvm\nTxdZ+xeBB8nNs7CW3MWWD+fbtnQsc8hNgPjbfP//DVydUqq/uNIH+E9yE/AtJvd78LM21CRJKoFI\nya9H7QwRsSO5ux475F+/TynNiIi+5K6iDwdeBo5NKa3NbzMd+Cq55+bOTindn2/fj9w/tj2Au1NK\n53Tu0UiSpGLk/z/gLWC3lNKKLa0vSdL74R39TpKfIfdTKaV9yT3bdlhEfJLcbLd/TCmNJnfFfTpA\n/uuNjgXGAJ8BroqI+ufqrga+llIaBYyKiCM692gkSZIkSdsqg34nKpiVeEdy534NuWF2s/Pts4Gj\n8stfAG7Of1XRy+SGRB6Qf46yLKX0RH69Gwq2kSRJ2y6HUUqSOoVBvxPlJ8Z5mtxMwnNTSouAQSml\nVQAppZXAwPzqQ8jNwFuvKt82hMZfr7Oc1r/GR5IklVhK6e2UUleH7UuSOkO3UhewPUkpvUNuBuJy\n4L6IGEcRk/4UKyK8cyBJkiRJGZZSes9Xpxr0SyClVBsRdwP/DKyKiEEppVX5Yfmv5VerovF37e6W\nb2upvaW+2rV2SZIkSdK24d1p3Bpz6H4niYgBEdE7v7wT8K/A0+S+Oumk/GonAr/PL88BJkfEDhEx\nEtgTmJcf3r82Ig7IT853QsE2kiRJkqTtnHf0O89gYHY+nHcBfpNS+lP+mf1bIuKrwFJyM+2TUloU\nEbeQ+w7hTcDp6d3b82fQ+Ov17u3cQ5EkSZIkbavCod3ZFRHJn68kSZIkZVNENPuMvkP3JUmSJEnK\nEIfuS5IkSVKRRowYwdKlS0tdhrYTw4cP5+WXX27z+g7dzzCH7kuSJEkdIz9kutRlaDvR0u+bQ/cl\nSZIkSdoOGPQlSZIkScoQg74kSZIkSRli0JckSZIkKUMM+pIkSZKUcSeffDIXXXRRqcvYZm3N+dmw\nYQMTJkygT58+TJo0aYvrjx07lj//+c9bW2JR/Ho9SZIkSWoHFRUjWLWq475yb9Cg4axc+XKH7f+D\n5uGHH+b444/nlVdeKUn/t912G6tXr2bNmjVEvGfi+/d49tlnO6GqHIO+JEmSJLWDXMjvuK/cW7Vq\ny2Fye5JSalPA7ihLly5l1KhR7VLD5s2b6dq1aztUlePQfUmSJEnKmKeffpr999+f3r17M3nyZDZs\n2NDw2Z133sm+++5L3759Ofjgg/nrX//a4nbHHXdcw5D22bNnc8ghhzTqp0uXLixZsgSAjRs3ct55\n5zF8+HAGDx7M6aefzttvv/2+t23O+vXr+exnP8uKFSsoKyujvLyclStX8sQTT3DQQQfRt29fhgwZ\nwje/+U3q6uoatjv33HMZNGgQvXv3Zp999mHRokXv2fe6des47LDDOOecc1rsv7KykksuuYSbb76Z\n8vJyrr/+epYsWcL48eMZMGAAAwcO5Pjjj6e2trZhm5EjR/Lggw8CMHPmTCZOnMjUqVPp06cPs2fP\nbrGvrWHQlyRJkqQM2bRpE0cffTQnnngi1dXVTJw4kdtvvx2AZ555hq997Wtce+21VFdXM23aNL7w\nhS+wadOmVrer1/TudeH7888/n8WLF7NgwQIWL15MVVUVl1xySbts21TPnj2555572HXXXVm3bh21\ntbVUVFTQtWtXrrzySqqrq3nsscd48MEHueqqqwC4//77efTRR1m8eDFr167llltuoX///o32W11d\nzac//WkOOeQQrrzyyhb7r6ysZMaMGUyePJna2lpOPvlkUkrMmDGDlStX8txzz7F8+XIqKytb3Mec\nOXM49thjqamp4Stf+UqL620Ng74kSZIkZcjjjz9OXV0dZ511Fl27duWYY47hYx/7GADXXHMNX//6\n1/nnf/5nIoKpU6ey44478vjjj7e6XUtSevdRhWuvvZaf/vSn9O7dm5133pkLLriAm266qUO2bcl+\n++3HAQccQEQwbNgwTjvtNB5++GEAunfvzrp161i0aBEpJUaPHs2gQYMatq2qquLQQw9l0qRJzJw5\ns+i+99hjD8aPH0+3bt3o378/5557bkPfzTnwwAOZMGECADvuuGPR/bXGZ/QlSZIkKUNWrFjBkCFD\nGrUNHz4cyD1XPnv2bGbNmgXkwvamTZtYsWIFQIvbbcnq1atZv349+++/f0PbO++80yjMd8S2Tb3w\nwgt861vfYv78+bz11lvU1dU17PdTn/oUZ555JmeccQbLli3jS1/6Epdffjm9evUC4K677qKsrIxp\n06YV3S/Aa6+9xtlnn80jjzzCG2+8webNm+nXr1+L6w8dOnSr+mkL7+hLkiRJUoYMHjyYqqqqRm3L\nli0DYNiwYVx44YVUV1dTXV3NmjVreOONN5g0aVKr2wHsvPPOrF+/vuH9ypUrG5YHDBhAz549Wbhw\nYcO+a2pqWLt27fvetiXNTYL3jW98gzFjxvDiiy9SU1PDD37wg0YXDM4880zmz5/PokWL+Pvf/86P\nf/zjhs9OO+00jjzySD7zmc/w1ltvtdp3c2bMmEGXLl1YuHAhNTU13Hjjja1erOjIiQQN+pIkSZKU\nIQceeCDdunVj1qxZ1NXVcccddzBv3jwATjnlFK6++uqG92+++SZ33303b775ZqvbAeyzzz4sXLiQ\nBQsW8PbbbzNz5syGsBoRnHrqqZxzzjmsXr0ayA2Fv//++9/3ti0ZNGgQr7/+eqMJ79atW0d5eTk9\ne/bkb3/7G1dffXXDZ/Pnz2fevHnU1dWx00470aNHD7p0aRyJZ82axejRo/n85z/faALDtli3bh29\nevWirKyMqqqqRhcROptBX5KkAhUVI4iIDntVVIwo9SFKkjrIoEHDgeiwV27/W9a9e3fuuOMOrr/+\nevr378+tt97KMcccA8D+++/Pddddx5lnnkm/fv0YNWpUw4zvrW0HsNdee3HRRRcxfvx4Ro0a9Z5Z\n9C+77DL23HNPPvGJT9CnTx8OP/xwnn/++fe9bUtGjx7Ncccdx+67706/fv1YuXIll19+Ob/97W8p\nLy9n2rRpTJ48uWH92tpaTj31VPr168fIkSMZMGAA3/72t9+z32uuuYahQ4dy1FFHsXHjxjadc4CL\nL76YJ598kj59+jBhwoRG5w469g5+U7E1zz3ogyEikj9fSSpO7h/hjvzbGVv1zKEkadsSsX38PT/5\n5JMZOnRoqzPgq+O19PuWb3/PFQTv6EuSJEmSlCEGfUmSJElSszpzuHlzLr30UsrKyigvL2/0+tzn\nPtcp/Y8dO7ZRv/W1bM1X/3Umh+5nmEP3Jal4Dt2XJLXF9jJ0X9sGh+5LkiRJkrQdM+hLkiRJkpQh\nBn1JkiRJkjLEoC9JkiRJUoYY9CVJkiRJyhCDviRJkiRpu3byySdz0UUXFbXNhg0bmDBhAn369GHS\npElbXH/s2LH8+c9/3toSi9KtU3qRJEmSpIyr2K2CVVWrOmz/g4YMYuXylR22/w+ahx9+mOOPP55X\nXnmlJP3fdtttrF69mjVr1uS/nrd1zz77bCdUlWPQlyRJkqR2sKpqFVR24P4rO+4iwgdRSqlNAbuj\nLF26lFGjRrVLDZs3b6Zr167tUFWOQ/clSZIkKWNeffVVvvzlLzNw4ED22GMPZs2aBcDMmTOZNGkS\nJ554IuXl5XzkIx/hqaeeatju6aefZv/996d3795MnjyZ4447rmFI++zZsznkkEMa9dOlSxeWLFkC\nwMaNGznvvPMYPnw4gwcP5vTTT+ftt99+39s2Z/369Xz2s59lxYoVlJWVUV5ezsqVK3niiSc46KCD\n6Nu3L0OGDOGb3/wmdXV1Ddude+65DBo0iN69e7PPPvuwaNGi9+x73bp1HHbYYZxzzjkt9l9ZWckl\nl1zCzTffTHl5Oddffz1Llixh/PjxDBgwgIEDB3L88cdTW1vbsM3IkSN58MEHG34OEydOZOrUqfTp\n04fZs2e32NfWMOhLkiRJUoaklJgwYQL77rsvr776Kn/605/42c9+xgMPPADAH/7wB6ZMmcLatWuZ\nMGECZ5xxBgCbNm3i6KOP5sQTT6S6upqJEydy++23N9p307vXhe/PP/98Fi9ezIIFC1i8eDFVVVVc\ncskl7bJtUz179uSee+5h1113Zd26ddTW1lJRUUHXrl258sorqa6u5rHHHuPBBx/kqquuAuD+++/n\n0UcfZfHixaxdu5ZbbrmF/v37N9pvdXU1n/70pznkkEO48sorW+y/srKSGTNmMHnyZGprazn55JNJ\nKTFjxgxWrlzJc889x/Lly6msrGxxH3PmzOHYY4+lpqaGr3zlKy2utzUM+pIkSZKUIU888QT/+Mc/\n+O53v0vXrl0ZMWIEp5xyCjfddBMABx98MEcccQQRwdSpU1mwYAEAjz32GHV1dZx11ll07dqVY445\nho997GOt9pVSali+9tpr+elPf0rv3r3ZeeedueCCCxr6bO9tW7LffvtxwAEHEBEMGzaM0047jYcf\nfhiA7t27s27dOhYtWkRKidGjRzNo0KCGbauqqjj00EOZNGkSM2fOLLrvPfbYg/Hjx9OtWzf69+/P\nueee29B3cw488EAmTJgAwI477lh0f63xGX1JkiRJypClS5dSVVVFv379gFygfueddzjkkEMYPnw4\nFRUVDev27NmTDRs28M477/Dqq68yZMiQRvsaPnx4m/pcvXo169evZ//9929oe+eddxqF+Y7YtqkX\nXniBb33rW8yfP5+33nqLurq6hv1+6lOf4swzz+SMM85g2bJlfOlLX+Lyyy+nV69eANx1112UlZUx\nbdq0ovsFeO211zj77LN55JFHeOONN9i8eXPDz6A5Q4cO3ap+2sI7+pIkSZKUIUOHDmX33Xenurqa\n6upq1qxZw9q1a7nzzjtb3W7w4MFUVVU1alu2bFnD8s4778z69esb3q9c+e43AAwYMICePXuycOHC\nhn5rampYu3bt+962Jc1NgveNb3yDMWPG8OKLL1JTU8MPfvCDRhcMzjzzTObPn8+iRYv4+9//zo9/\n/OOGz0477TSOPPJIPvOZz/DWW2+12ndzZsyYQZcuXVi4cCE1NTXceOONrV6s6MiJBA36kiRJkpQh\nBxxwAGVlZfzoRz9iw4YNbN68mYULFzJ//vxm168PowceeCDdunVj1qxZ1NXVcccddzBv3ryG9fbZ\nZx8WLlzIggULePvtt5k5c2ZDWI0ITj31VM455xxWr14N5IbC33///e9725YMGjSI119/vdGEd+vW\nraO8vJyePXvyt7/9jauvvrrhs/nz5zNv3jzq6urYaaed6NGjB126NI7Es2bNYvTo0Xz+859nw4YN\nWz7ZBdatW0evXr0oKyujqqqq0UWEzmbQlyRJkqR2MGjIoNzX63XQa9CQd58nb02XLl248847eeaZ\nZxg5ciQDBw7k1FNPbRSIC9UH7u7du3PHHXdw/fXX079/f2699VaOOeaYhvX22msvLrroIsaPH8+o\nUaPeM4v+ZZddxp577sknPvEJ+vTpw+GHH87zzz//vrdtyejRoznuuOPYfffd6devHytXruTyyy/n\nt7/9LeXl5UybNo3Jkyc3rF9bW8upp55Kv379GDlyJAMGDODb3/72e/Z7zTXXMHToUI466ig2btzY\nag2FLr74Yp588kn69OnDhAkTGp076Ng7+E3F1jz3oA+GiEj+fCWpOLl/hDvyb2ds1TOHkqRtS8T2\n8ff85JNPZujQoa3OgK+O19LvW779PVcQvKMvSZIkSVKGGPQlSZIkSc3qzOHmzbn00kspKyujvLy8\n0etzn/tcp/Q/duzYRv3W17I1X/3XmRy6n2EO3Zek4jl0X5LUFtvL0H1tGxy6L0mSJEnSdsygL0mS\nJElShhj0JUmSJEnKEIO+JEmSJEkZYtCXJEmSJClDDPqSJEmStJ1bunQpXbp04Z133il1KUWbOXMm\nU6dOLVn/zz//PPvuuy+9e/fm5z//eavrvvLKK5SXl3f4NzYY9CVJkiSpHYyoqCAiOuw1oqKiQ+vP\nfcXs+zNy5EgefPDBLa7X3hcW2qP2rfWjH/2Iww47jLVr13LmmWe2uu7QoUOpra3t8HoN+pIkSZLU\nDpauWkWCDnstXbWqE4+mY6WUWvxu+FLYvHnzVm+7dOlSPvzhD7dLHe11Pgz6kiRJkpQxl112Gbvt\nthvl5eWMGTOGhx56iJQSP/zhD9lzzz3ZZZddmDx5MjU1Nc1uX1tbyymnnMKuu+7K0KFD+d73vtco\nhF577bXsvffelJeXM3bsWJ555hlOOOEEli1bxoQJEygvL+fyyy9vsb5DDz0UgD59+lBeXs5f/vIX\nlixZwvjx4xkwYAADBw7k+OOPp7a2ttVjaqquro4pU6YwceJE6urqWux/5syZTJw4kalTp9KnTx9m\nz57Nhg0bOOmkk+jXrx9jx47l8ssvZ+jQoa2e5/Hjx/PQQw9xxhlnUF5ezuLFi7n77rvZb7/96N27\nN8OHD2fmzJkN6zcdyfCpT32KCy+8kIMPPpidd96Zl156qdX+2sqgL0mSJEkZ8vzzz/OLX/yCJ598\nktraWu677z5GjBjBv//7vzNnzhweeeQRVqxYQd++fTn99NOb3ceJJ57IDjvswJIlS3j66ad54IEH\nuO666wC49dZbueSSS7jxxhupra1lzpw59O/fnxtuuIFhw4Zx5513Ultby3nnnddijX/+85+B3AWF\n2tpaPv7xj5NSYsaMGaxcuZLnnnuO5cuXU1lZ2eoxFdqwYQNHHXUUO+20E7fccgvdunVr9TzNmTOH\nY489lpqaGqZMmUJlZSUvvfQSL730Evfddx+zZ8/e4hD7P/3pTxxyyCH84he/oLa2lj333JNevXrx\nm9/8hrVr13LXXXfxy1/+kjlz5jRs03SfN954I9dddx3r1q1j+PDhrfbXVgZ9SZIkScqQrl27snHj\nRp599lnq6uoYNmwYI0eO5Fe/+hU/+MEPGDx4MN27d+eiiy7itttue89z8qtWreKee+7hpz/9KT16\n9GDAgAGcc8453HzzzQD8+te/5jvf+Q777bcfALvvvnujO9/FDD8vXHePPfZg/PjxdOvWjf79+3Pu\nuefy8MMPt3pM9dauXcuRRx7JXnvtxa9//es2PQN/4IEHMmHCBAB69OjBrbfeyoUXXkjv3r0ZMmQI\nZ511VpuPo9C//Mu/NAzlHzt2LJMnT244juacdNJJfOhDH6JLly507dp1q/psqvVLHJIkSZKkD5Q9\n9tiDK6+8ksrKShYuXMiRRx7JT37yE5YuXcrRRx9Nly65+70pJbp3786qJs/+L1u2jE2bNjF48OCG\n9VJKDBs2DMjNHL/HHnu0e92vvfYaZ599No888ghvvPEGmzdvpl+/fu85pkWLFnHEEUdwxRVXUJGf\noPDxxx+nrq6u4WJEWzQdlr9ixQp22223hvdbe3d93rx5XHDBBTz77LNs3LiRjRs3MnHixDbX0R68\noy9JkiRJGTN58mQeeeQRli1bBsD555/PsGHDuOeee6iurqa6upo1a9bw5ptvNgT6ekOHDqVHjx68\n/vrrDevV1NSwYMGChs9ffPHFZvtt62zyza03Y8YMunTpwsKFC6mpqeHGG29sdMe//piWLl3acEz1\njjjiCKZPn85hhx3Ga6+9tlU17LrrrrzyyisN7+v7KdaUKVM46qijqKqqoqamhmnTprU6yqEjZuA3\n6EuSJElShjz//PM89NBDbNy4kR122IGddtqJrl278vWvf50ZM2Y0hP/Vq1c3ena8PoxWVFRw+OGH\nc+6557Ju3TpSSixZsqThufpTTjmFyy+/nKeeegqAF198sSEgDxo0iCVLlmyxxl122YUuXbo0umCw\nbt06evXqRVlZGVVVVfz4xz9u9ZjqRybUO++885gyZQrjx4/n9ddfL/q8TZw4kUsvvZSamhqWL1/O\nz3/+86L3AfDGG2/Qt29funfvzrx58/jd737X6PPO+KYBg74kSZIktYPhgwYR0GGv4YMGtamOt99+\nmwsuuIBddtmFXXfdldWrV3PppZdy1lln8cUvfpHDDz+c3r17c9BBBzFv3ryG7QrvLN9www1s3LiR\nvffem379+jFx4kRWrlwJwJe//GW++93vMmXKFMrLyzn66KOprq4GYPr06fzbv/0b/fr144orrmix\nxp122onvfve7fPKTn6Rfv37MmzePiy++mCeffJI+ffowYcIEjjnmmC0eU1MXXnghRx11FP/6r//a\n4jcKtOTiiy9uePb/yCOP5IQTTmjTdk3vyF911VV873vfo3fv3nz/+99n0qRJLa7fEXfzAWJb+d5C\ntb+ISP58Jak4uX9wO/Jv57bzncGSpK23LX0HvDrGww8/zNSpUxtGQJRSS79v+fb3XC3wjr4kSZIk\n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\nOQB6E8uvAYgwk+dDAB/WcdGIiIiIiIjICnHoPhEREREREZENYUefiIiIiIiIyIawo09ERERERERk\nQ9jRJyIiIiIiIrIh7OgTERERERER2RB29ImIiIiIiIhsCDv6RERERERERDaEHX0iIiIiIiIiG8KO\nPhEREREREZENYUefiIiIiKrUDICiKHX65+7kVN+7SURkMxrXdwGIiIiIqGG7DUDqeBtKZmYdb4GI\n6OHBK/pERERERERENoQdfSIiIiIiIiIbwo4+ERERERERkQ1hR5+IiIiIiIjIhrCjT0RERERERGRD\n2NEnIiIiIiIisiHs6BMRERERERHZEHb0iYiIiIiIiGwIO/pERERERPRANQOgKEqd/rk7OdX3bhLV\nm8b1XQAiIiIiInq43AYgdbwNJTOzjrdA1HDxij4RERERERGRDWFHn4iIiIiIiMiGsKNPRERERERE\nZEPY0SciIiIiIiKyIezoExEREREREdkQdvSJiIiIiIiIbAg7+kREREREREQ2hB19IiIiIiIiIhvC\njj4RERERERGRDWFHn4iIiIiIiMiGsKNPREREREREZEPY0SciIiIiIiKyIezoExEREREREdkQdvSJ\niIiIiIiIbAg7+kREREREREQ2hB19IiIiIiIiIhvCjj4RERERERGRDWFHn4iIiIiI6CHl5OQORVHq\n9M/Jyb2+d/Oh07i+C0BERERERET1IzMzFYDU8TaUOl0/VcYr+kREREREREQ2hB19IiIiIiIiIhvC\njj4RERERERGRDWFHn4iIiIiIiMiGsKNPREREREREZEPY0SciIiIiIqK60wh1/wg/V6f63ssGhY/X\nIyIiIiIiorpTDOD9ut1E5vuZdbsBK8Mr+kREREREREQ2hB19IiIiIiIiIhvCjj4RERERERGRDWFH\nn4iIiIiIiKxaM9TthH/uTtY12R8n4yMiIiIiIiKrdhuA1OH6lUzrmuyPV/SJiIiIiIiIbAg7+kRE\nREREREQ2hB19IiIiIiIiIhvCjj4RERERERGRDWFHn4iIiIiIiMiGsKNPREREREREZEPY0SciIiIi\nIiKyIezoExEREREREdkQdvSJiIiIiIiIbAg7+kREREREREQ2hB19IqJ7cHJ1gqIodfbn5OpU37tI\nRERERDakcX0XgIioocvMyATer8P1v59ZdysnIiIioocOr+gTkVVzcnKv06vtiqLU9y4SEREREdUI\n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\nu3LlSq33A2Zm3VekirMRiqJIVZ9b2t1X1Kl2FEXh/WlkUYwpsiTGE1kaY4osjTFFlsaYIku7E1OV\nZrK3+OP1asPc4y6IiIiIiIiIqHqqnIzP3t6+RFGUB3oygJ19y7G3t+f3SRbFmCJLYjyRpTGmyNIY\nU2RpjCmyNHt7+xJTyxvU0H2yLA4NIktjTJElMZ7I0hhTZGmMKbI0xhRZmlUM3a9vqamp6lMA7oej\no2O107711lvQarWYOnWq2TTffvvtPWfvp4Zl/PjxaN++PQIDA9VlBw8eROfOnWEwGNC5c2f16RAH\nDx6EwWCAwWCATqfDqlWr1Dy9e/eGr68vDAYDjEYjsrKyKm0rNTUVzZs3h9FohNForDCzcGFhIf7w\nhz/Ax8cH/v7+2LBhQx3uNVkTd3d36HQ6NR4BYMqUKfDz84Ner8eIESNw8+bNSvlu376N0NBQGAwG\nBAQEYPr06Q+66GQh6enpCA8PR0BAALRaLT799FMAwMyZM+Hq6qrWKVu3bgVQ+7rq2rVrCA8Ph6Oj\nI1599dUKn3311VfQarXQ6/V4+umnce3atTrcc3rQTp8+rcaGwWBAq1atsGjRIvz666/o27cvfHx8\n0K9fP9y4cQNAaT0zevRoBAYGIiAgAHPmzDG53rVr10Kj0aBRo0YVHt9c3fxk3Uy1Y+bqr+3btyM4\nOBg6nQ4hISHYuXOnyXWOGjVKzevh4QGj0QiAMfUwM3VMDwCffvop/Pz8oNVq8fbbbwOoup0sz1yc\n1RlTM/SV/eEhmxVy586dMmjQoPvOX34m/Xtp1aqVlJSU3Nd2ioqKqpXuYfv9GoK9e/dKYmJihdmn\ne/XqJT/88IOIiGzevFl69eolIiJ5eXlSXFwsIiIXL16Utm3bqr9tr169Ksx4bUpVM+q/9957MmPG\nDPX91atX73+nymFMWT8PD49KM5vHxMSosTh16lSTs6qLlM6eLVJaB4WGhkpsbGytysJ4qh8XL15U\nZwDOzs4Wb29vOXnypNlZymtbV+Xk5EhcXJx88cUX6pNkREQKCgqkTZs2ajxOmTJFZs6cWat9Y0w1\nXMXFxeLs7CxpaWkyZcoUmTt3roiIzJkzR50JfcmSJRIZGSkiIrm5ueLu7q4+2ai8U6dOyenTp6V3\n797qLNc1yV8TjKmGx1Q7Zq7+OnLkiFy8eFFERI4fPy4uLi73XP/kyZPVJ4Qxph5epo7pd+7cKX36\n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\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f5361b61b10>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot Average and Total execution time for the specified\n",
"# list of kernel functions\n",
"trace.analysis.functions.plotProfilingStats(\n",
" functions = [\n",
" 'select_task_rq_fair',\n",
" 'enqueue_task_fair',\n",
" 'dequeue_task_fair'\n",
" ],\n",
" metrics = [\n",
" 'avg',\n",
" 'time',\n",
" ]\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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\nHn/yySdn5513zjXXXJO77rorL3jBC7L77rvnla985Rrr++QnP5m3vvWt+exnP5uDDjoo11xzTbbY\nYosZ39sdd9yR6667LitXrszFF1/8sH1T2WuvvfLd7343e+yxR37yk5+sep413e+WW245ZT1f/vKX\ns3Tp0syZs2H6yPW0AwAAPMqsrSe7qvK2t70tW2yxRQ4//PA8//nPzyc+8YmsXLkyn/rUp/K2t70t\nW221Vfbbb7+cfPLJq5174oknZtttt82cOXPyhje8Iffee2++//3vT/k8P/rRj/KFL3whf/VXf5Wt\nttoqO+ywQ17/+tfnYx/72LT1nXPOOfnDP/zDHHTQQUmSPfbYI7vtttuM7m2zzTbL6aefni222CI/\n93M/t8Z90xl9jnW536rK6aefnsc85jEzep6ZENoBAADGzHbbbZetttpq1fb8+fNz44035sc//nEe\neOCBPOEJT1jt2Kh3vOMd2XfffbPddttlu+22y5133plbb711yudZtmxZ7r///uy8887Zfvvts912\n2+W3f/u319h+wvXXX58nP/nJj+jedtxxx1W98tPtm6l1ud8kq712G4LQDgAA8Ciz9dZb5+677161\nffPNN692fPny5bnnnntWbV933XXZZZddsuOOO2bzzTfP9ddfv9qxCRdeeGH+4i/+Iv/4j/+Y5cuX\nZ/ny5Zk3b96qnunJQ8V32223bLXVVrntttty++23Z/ny5bnjjjvyrW99a9r6d9ttt4fNpZ/pvU01\nfH6mq99PdtFFF017v1N5pM+1JkI7AADAo8yBBx6Yj370o1m5cmW++MUv5oILLljteGstp512Wu6/\n//5ceOGF+ed//ue85CUvyZw5c/LiF784ixcvzj333JPvfe97+dCHPrTqvLvuuitbbLFFHve4x+W+\n++7LW9/61qxYsWLV8Z122inXXnvtqlD7+Mc/PkceeWTe8IY3ZMWKFWmt5ZprrsmXv/zlaet/xSte\nkXe84x257LLLkiRXX331qg8S1nZv62s0kK9YsWLa+53u3A1FaAcAANgAdtppfpLaaD+D68/MO9/5\nzpx33nnZbrvt8rGPfSzHHnvsasd33nnnbLfddtlll12yaNGi/O3f/m322muvJMl73vOerFixYtVK\n66OrrR911FE56qijsvfee+dJT3pStt5661VzzZPk+OOPT2stj3vc4/KMZzwjSfKhD30o9913X/bd\n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\nQvv6+2GS3Ue2nzDcN7nNblO02XIG567SWluvQgEAAOif6T4sMzx+/V2aZM+qml9VWyY5Icl5k9qc\nl+SkJKmqQ5Pc0Vq7ZYbnAsDYuOGGG/LsZz87++23XxYsWJB3v/vdXZcEAJ3S076eWmsPVtVrkpyf\nwYcg57TWrqiqUweH29mttc9X1fOq6gdJfprk5dOd29GtAEDnNt9885x11lk54IADctddd+XpT396\njjzyyOyzjy9XAWA8lSHXm4aqat4rAMbNi170orz2ta/Nc57znK5LAYCNpqrSWptyjLzh8QBAL117\n7bW5/PLL88xnPrPrUgCgM0I7ANA7d911V4477ri8613vyjbbbNN1OQDQGaEdAOiVBx54IMcdd1wW\nLVqUY445putyAKBT5rRvIsxpB2BcnHTSSdlhhx1y1llndV0KAMyK6ea0C+2bCKEdgHHwla98JYcf\nfngWLFiQqkpV5e1vf3uOPvrorksDgI1GaH8UENoBAAAenaweDwAAAJugzac7+JjHPObmn/3sZzvN\nVjGs2VZbbZWqKT94AQAAYBO21VZbrVzTsWmHxxuS3R/D4RJdlwEAAMAGtkkMj3/Sk56U22+/fdo2\nZ5xxxixV88hcdNFF2X///XPQQQfl3nvvXWO7ww47bBarAgAAxsUXv/jF7LPPPtl7771z5plnPuz4\neeedl6c97Wk58MAD84xnPCP//u//vurYGWeckf322y9PfepT8xu/8Ru57777ZrN01qA3Pe177LFH\nvva1r2X77bdfY5u5c+dmxYoVs1LPqNbaakPTV65cmTlzHv55x6te9ao861nPyoknnrjOz/Hggw9m\ns802W+NxPe0AAMB0Vq5cmb333jv/9m//ll122SUHH3xwzj333Oyzzz6r2tx9993ZeuutkyTf/va3\nc+yxx+YHP/hBli1bliOOOCJLly7NlltumZe+9KV5/vOfn5NOOqmr2xkrs9LTvmzZsixYsGDV9l/+\n5V/m9NNPzxFHHJHXv/71OfDAA/PUpz41l156aZLk9ttvz1FHHZUFCxbkla985WqB9Nhjj83BBx+c\nBQsW5O///u+TJG9+85tzzz335KCDDsqiRYuSJB/5yEfyzGc+MwcddFBe9apXTRtqv/jFL+bpT396\nDjjggPzqr/5qkuT0009f7TtgFyxYkOuuuy7Lli3LPvvsk5NPPjkLFizI9ddfn7lz5+b3f//3c+CB\nB+biiy9+2PXPOeecfOITn8hb3vKWLFq0KD/96U/z3Oc+N894xjPytKc9Leedd96qtnPnzk2SXHDB\nBTn88MNzzDHHZL/99lvn1xwAAGDCJZdckr322ivz58/PFltskRNOOCGf/exnV2szEdiT5K677soO\nO+yQJJk3b1623HLL/PSnP80DDzyQu+++O7vsssus1s/Upl2Ibl2taaG0e+65J9/4xjdy4YUX5pRT\nTsm3v/3tnH766XnWs56VP/mTP8nnP//5fOADH1jV/oMf/GC23Xbb/OxnP8vBBx+cF7/4xTnjjDPy\n13/917nsssuSJEuXLs3H///27iUkyjWO4/h3nGGcsqgh0QPaVKtBQsZLo6NhIYmEoNS0kqIWwmxc\nunKTi3Cn1MJA3QTKyAgGIkK40LBELFBXkVAWhoknFR00GkOdszj0HC+TaccmOef3Wb0v89zemXfz\nn/9z6exkeHgYq9VKdXU1wWCQW7du7eh/fn6eQCDA0NAQLpeLpaWlH47/7du3tLe34/V6Afj8+TMF\nBQU0NDTErFtVVcXQ0BDl5eX4/X7W19fp7u7m2LFjLCws4PP5qKio2NHP+Pg4r169wuVy7fbVioiI\niIiI7Orjx4+cPn3a3Kenp/Py5csd5bq7u6mtrWV2dpa+vj4AnE4nNTU1uFwujh49SmlpKSUlJXEb\nu3zfL1/TbrFYqKysBKCoqIjl5WXC4TDPnj0zAXZZWRlOp9PUefDgAVlZWfh8Pqanp3nz5g3Alkx6\nf38/Y2NjeL1esrOzGRgY4N27dzHHMDIywuXLl01gfPLkyZjlNrd/5swZE7AD2Gw2/H7/np87Go1S\nW1uLx+OhpKSEmZkZPn36tKNcXl6eAnYREREREYmba9eu8fr1a3p6esws5snJSe7fv8/U1BQzMzOs\nrKzQ0dHxm0cqcICZdpvNxvr6urmPRCLmensGPtZ68G8B8+DgIAMDA7x48YLExESKi4u3tLW5/J07\nd6ivr9/T+GJNnbfZbGxs/LOz/uZ+kpKStpTd75FrwWCQ+fl5xsfHSUhI4Ny5czGfY3s/IiIiIiIi\nPyMtLY0PHz6Y++npadLS0r5bvqioiLW1NRYWFhgdHeXixYtmjzG/38/w8PBP7dclB+vAMu2pqanM\nzc2xuLjI6uoqvb29ZvO0zs5O4O/d1U+cOMHx48e5dOkSwWAQgCdPnpgp6+FwGKfTSWJiIhMTE1vW\nj9vtdvPHwJUrV+jq6mJubg6AxcXFLS/oZj6fj+fPnzM1NWXKApw9e9ZMtx8bG+P9+/emzvYgf7+b\nwIXDYVJSUkhISODp06em759pS0RERERE5Ee8Xq/ZVO7r16+EQiGzRPebyclJc/0tFjp16hRut5uR\nkREikQjRaJT+/n4yMjLiOn6J7UAz7Xfv3sXr9ZKenm5+YIvFgsPhICcnh7W1NR49egRAXV0dlZWV\nhEIhCgsLzRTxq1ev0tzczPnz53G73RQUFJg+AoEAmZmZ5Obm0t7ezr179ygtLWVjYwO73c7Dhw9j\nTjVPTk6mtbWV69evE41GSUlJoa+vjxs3btDW1kZmZib5+fm43W5TZ3tWfS9Z9s1lbt68SXl5OR6P\nhwsXLmx54feTsRcREREREdkLq9VKU1OTiZGqqqrIyMigpaUFi8VCIBDg8ePHtLW1YbfbSUpKIhQK\nAeDxeLh9+za5ublYrVays7MJBAK/+YkE4nDkW3FxMY2NjeTk5Pyrdv7vdOSbiIiIiIjIf1Ncjnzb\nrXMRERERERER2b9dM+1HjhyZjUQiqXEcj3yHw+HYiEQiv/xPFhEREREREYkvh8Px55cvX/6I9dmu\nQbuIiIiIiIiI/D7K3IqIiIiIiIgcUgraRURERERERA4pBe0iIiIiIiIih5SCdhEREREREZFDSkG7\niIiIiIiIyCH1FxbxsRLFmdRwAAAAAElFTkSuQmCC\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7f5361b34d50>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Plot Average execution time for the single specified kernel function\n",
"trace.analysis.functions.plotProfilingStats(\n",
" functions = 'update_curr_fair',\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"collapsed": true
},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 2",
"language": "python",
"name": "python2"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 2
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython2",
"version": "2.7.6"
},
"toc": {
"toc_cell": false,
"toc_number_sections": true,
"toc_threshold": 6,
"toc_window_display": false
}
},
"nbformat": 4,
"nbformat_minor": 0
}