Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zbeekman/522f25d5eb5409871062ee6a2895a55a to your computer and use it in GitHub Desktop.
Save zbeekman/522f25d5eb5409871062ee6a2895a55a to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To use the parser, we import it an then call the parse function on a directory containing profile.x.y.z files.\n",
"Note that the parser does not currently have any native support for MULTI_ directories, so if you have\n",
"those you'll have to call parse multiple times and then, if you wish, merge the resulting dataframes."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from tau_profile_parser import TauProfileParser"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"profile = TauProfileParser.parse('.')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The metric field contains the metric that values in this profile represent"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"b'TIME'"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"profile.metric"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The metadata field contains the metadata as a Python dictionary."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'Metric Name': 'TIME',\n",
" 'CPU Cores': '14',\n",
" 'CPU MHz': '1652.218',\n",
" 'CPU Type': 'Intel(R) Xeon(R) CPU E5-2690 v4 @ 2.60GHz',\n",
" 'CPU Vendor': 'GenuineIntel',\n",
" 'CWD': '/gpfs/projects/paratools/nchaimov/x-gups-shmem',\n",
" 'Cache Size': '35840 KB',\n",
" 'Command Line': './gups',\n",
" 'Ending Timestamp': '1527459525908470',\n",
" 'Executable': '/gpfs/projects/paratools/nchaimov/x-gups-shmem/gups',\n",
" 'Hostname': 'n005',\n",
" 'Local Time': '2018-05-27T15:18:39-07:00',\n",
" 'Memory Size': '131916412 kB',\n",
" 'Node Name': 'n005',\n",
" 'OS Machine': 'x86_64',\n",
" 'OS Name': 'Linux',\n",
" 'OS Release': '3.10.0-693.17.1.el7.x86_64',\n",
" 'OS Version': '#1 SMP Sun Jan 14 10:36:03 EST 2018',\n",
" 'Starting Timestamp': '1527459519414157',\n",
" 'TAU Architecture': 'default',\n",
" 'TAU Config': ' -bfd=download -unwind=download -pdt=/usr/local/packages/pdt/3.25 -otf=download -iowrapper -shmem -tag=openmpi-meminst',\n",
" 'TAU Makefile': '/usr/local/packages/tau/2.27.1/x86_64/lib/Makefile.tau-openmpi-meminst-shmem-pdt',\n",
" 'TAU Version': '2.27.1-git',\n",
" 'TAU_BFD_LOOKUP': 'on',\n",
" 'TAU_CALLPATH': 'off',\n",
" 'TAU_CALLPATH_DEPTH': '2',\n",
" 'TAU_CALLSITE_DEPTH': '1',\n",
" 'TAU_COMM_MATRIX': 'off',\n",
" 'TAU_COMPENSATE': 'off',\n",
" 'TAU_CUDA_BINARY_EXE': None,\n",
" 'TAU_CUPTI_API': 'runtime',\n",
" 'TAU_EBS_KEEP_UNRESOLVED_ADDR': 'off',\n",
" 'TAU_IBM_BG_HWP_COUNTERS': 'off',\n",
" 'TAU_MAX_THREADS': '1',\n",
" 'TAU_MEASURE_TAU': 'off',\n",
" 'TAU_MEMDBG_PROTECT_ABOVE': 'off',\n",
" 'TAU_MEMDBG_PROTECT_BELOW': 'off',\n",
" 'TAU_MEMDBG_PROTECT_FREE': 'off',\n",
" 'TAU_OPENMP_RUNTIME': 'on',\n",
" 'TAU_OPENMP_RUNTIME_EVENTS': 'on',\n",
" 'TAU_OPENMP_RUNTIME_STATES': 'off',\n",
" 'TAU_OUTPUT_CUDA_CSV': 'off',\n",
" 'TAU_PAPI_MULTIPLEXING': 'off',\n",
" 'TAU_PROFILE': 'on',\n",
" 'TAU_PROFILE_FORMAT': 'profile',\n",
" 'TAU_REGION_ADDRESSES': 'off',\n",
" 'TAU_SAMPLING': 'off',\n",
" 'TAU_SHOW_MEMORY_FUNCTIONS': 'off',\n",
" 'TAU_SIGNALS_GDB': 'off',\n",
" 'TAU_THROTTLE': 'on',\n",
" 'TAU_THROTTLE_NUMCALLS': '100000',\n",
" 'TAU_THROTTLE_PERCALL': '10',\n",
" 'TAU_TRACE': 'off',\n",
" 'TAU_TRACE_FORMAT': 'tau',\n",
" 'TAU_TRACK_CUDA_CDP': 'off',\n",
" 'TAU_TRACK_CUDA_INSTRUCTIONS': None,\n",
" 'TAU_TRACK_CUDA_SASS': 'off',\n",
" 'TAU_TRACK_HEADROOM': 'off',\n",
" 'TAU_TRACK_HEAP': 'off',\n",
" 'TAU_TRACK_IO_PARAMS': 'off',\n",
" 'TAU_TRACK_MEMORY_FOOTPRINT': 'off',\n",
" 'TAU_TRACK_MEMORY_LEAKS': 'off',\n",
" 'TAU_TRACK_MESSAGE': 'off',\n",
" 'TAU_TRACK_SIGNALS': 'off',\n",
" 'TAU_TRACK_UNIFIED_MEMORY': 'off',\n",
" 'Timestamp': '1527459519414278',\n",
" 'UTC Time': '2018-05-27T22:18:39Z',\n",
" 'pid': '71186',\n",
" 'tid': '71186',\n",
" 'username': 'nchaimov'}"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"profile.metadata"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The indices field contains the list of (node, context, thread) values present."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(0, 0, 0),\n",
" (1, 0, 0),\n",
" (2, 0, 0),\n",
" (3, 0, 0),\n",
" (4, 0, 0),\n",
" (5, 0, 0),\n",
" (6, 0, 0),\n",
" (7, 0, 0),\n",
" (8, 0, 0),\n",
" (9, 0, 0),\n",
" (10, 0, 0),\n",
" (11, 0, 0),\n",
" (12, 0, 0),\n",
" (13, 0, 0),\n",
" (14, 0, 0),\n",
" (15, 0, 0),\n",
" (16, 0, 0),\n",
" (17, 0, 0),\n",
" (18, 0, 0),\n",
" (19, 0, 0),\n",
" (20, 0, 0),\n",
" (21, 0, 0),\n",
" (22, 0, 0),\n",
" (23, 0, 0),\n",
" (24, 0, 0),\n",
" (25, 0, 0),\n",
" (26, 0, 0),\n",
" (27, 0, 0),\n",
" (28, 0, 0),\n",
" (29, 0, 0),\n",
" (30, 0, 0),\n",
" (31, 0, 0),\n",
" (32, 0, 0),\n",
" (33, 0, 0),\n",
" (34, 0, 0),\n",
" (35, 0, 0),\n",
" (36, 0, 0),\n",
" (37, 0, 0),\n",
" (38, 0, 0),\n",
" (39, 0, 0),\n",
" (40, 0, 0),\n",
" (41, 0, 0),\n",
" (42, 0, 0),\n",
" (43, 0, 0),\n",
" (44, 0, 0),\n",
" (45, 0, 0),\n",
" (46, 0, 0),\n",
" (47, 0, 0),\n",
" (48, 0, 0),\n",
" (49, 0, 0),\n",
" (50, 0, 0),\n",
" (51, 0, 0),\n",
" (52, 0, 0),\n",
" (53, 0, 0),\n",
" (54, 0, 0),\n",
" (55, 0, 0),\n",
" (56, 0, 0),\n",
" (57, 0, 0),\n",
" (58, 0, 0),\n",
" (59, 0, 0),\n",
" (60, 0, 0),\n",
" (61, 0, 0),\n",
" (62, 0, 0),\n",
" (63, 0, 0)]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"profile.indices"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The atomic_data() function returns a Pandas dataframe containing the atomic events (user and context events). This is a multi-index dataframe with Node, Context, Thread, and Timer as the indices."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>Count</th>\n",
" <th>Maximum</th>\n",
" <th>Minimum</th>\n",
" <th>Mean</th>\n",
" <th>SumSq</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Node</th>\n",
" <th>Context</th>\n",
" <th>Thread</th>\n",
" <th>Timer</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"30\" valign=\"top\">0</th>\n",
" <th rowspan=\"30\" valign=\"top\">0</th>\n",
" <th rowspan=\"30\" valign=\"top\">0</th>\n",
" <th>alloc opal_thread_t</th>\n",
" <td>1</td>\n",
" <td>40</td>\n",
" <td>40</td>\n",
" <td>40.000000</td>\n",
" <td>1600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_base_component_list_item_t</th>\n",
" <td>90</td>\n",
" <td>48</td>\n",
" <td>48</td>\n",
" <td>48.000000</td>\n",
" <td>207360</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_base_var_group_t</th>\n",
" <td>194</td>\n",
" <td>280</td>\n",
" <td>280</td>\n",
" <td>280.000000</td>\n",
" <td>15209600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_base_var_t</th>\n",
" <td>945</td>\n",
" <td>168</td>\n",
" <td>168</td>\n",
" <td>168.000000</td>\n",
" <td>26671680</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_base_var_enum_t</th>\n",
" <td>19</td>\n",
" <td>88</td>\n",
" <td>88</td>\n",
" <td>88.000000</td>\n",
" <td>147136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_dss_type_info_t</th>\n",
" <td>46</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80.000000</td>\n",
" <td>294400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_list_t</th>\n",
" <td>70</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>286720</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_base_component_repository_item_t</th>\n",
" <td>119</td>\n",
" <td>176</td>\n",
" <td>176</td>\n",
" <td>176.000000</td>\n",
" <td>3686144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_if_t</th>\n",
" <td>3</td>\n",
" <td>224</td>\n",
" <td>224</td>\n",
" <td>224.000000</td>\n",
" <td>150528</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_schizo_base_active_module_t</th>\n",
" <td>2</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>8192</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_progress_tracker_t</th>\n",
" <td>1</td>\n",
" <td>256</td>\n",
" <td>256</td>\n",
" <td>256.000000</td>\n",
" <td>65536</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_pmix_proc_data_t</th>\n",
" <td>65</td>\n",
" <td>112</td>\n",
" <td>112</td>\n",
" <td>112.000000</td>\n",
" <td>815360</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_hash_table_t</th>\n",
" <td>6</td>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>72.000000</td>\n",
" <td>31104</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_value_t</th>\n",
" <td>1585</td>\n",
" <td>136</td>\n",
" <td>136</td>\n",
" <td>136.000000</td>\n",
" <td>29316160</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_state_t</th>\n",
" <td>2</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>8192</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_routed_base_active_t</th>\n",
" <td>4</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>16384</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_oob_ud_device_t</th>\n",
" <td>1</td>\n",
" <td>496</td>\n",
" <td>496</td>\n",
" <td>496.000000</td>\n",
" <td>246016</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_oob_ud_port_t</th>\n",
" <td>1</td>\n",
" <td>912</td>\n",
" <td>912</td>\n",
" <td>912.000000</td>\n",
" <td>831744</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_rml_pathway_t</th>\n",
" <td>1</td>\n",
" <td>176</td>\n",
" <td>176</td>\n",
" <td>176.000000</td>\n",
" <td>30976</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_attribute_t</th>\n",
" <td>5</td>\n",
" <td>112</td>\n",
" <td>112</td>\n",
" <td>112.000000</td>\n",
" <td>62720</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_rml_base_active_t</th>\n",
" <td>1</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56.000000</td>\n",
" <td>3136</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_rml_posted_recv_t</th>\n",
" <td>4</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80.000000</td>\n",
" <td>25600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_rml_posted_recv_t &lt;= orte_rml_recv_request_t</th>\n",
" <td>4</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80.000000</td>\n",
" <td>25600</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_rml_recv_request_t</th>\n",
" <td>4</td>\n",
" <td>168</td>\n",
" <td>168</td>\n",
" <td>168.000000</td>\n",
" <td>112896</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_grpcomm_base_active_t</th>\n",
" <td>1</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>4096</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_hwloc_topo_data_t</th>\n",
" <td>1</td>\n",
" <td>96</td>\n",
" <td>96</td>\n",
" <td>96.000000</td>\n",
" <td>9216</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_datatype_t</th>\n",
" <td>23</td>\n",
" <td>288</td>\n",
" <td>288</td>\n",
" <td>288.000000</td>\n",
" <td>1907712</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_convertor_t</th>\n",
" <td>2</td>\n",
" <td>248</td>\n",
" <td>248</td>\n",
" <td>248.000000</td>\n",
" <td>123008</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_proc_t</th>\n",
" <td>64</td>\n",
" <td>112</td>\n",
" <td>112</td>\n",
" <td>112.000000</td>\n",
" <td>802816</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_pointer_array_t</th>\n",
" <td>2</td>\n",
" <td>112</td>\n",
" <td>112</td>\n",
" <td>112.000000</td>\n",
" <td>25088</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"30\" valign=\"top\">63</th>\n",
" <th rowspan=\"30\" valign=\"top\">0</th>\n",
" <th rowspan=\"30\" valign=\"top\">0</th>\n",
" <th>alloc orte_namelist_t</th>\n",
" <td>129</td>\n",
" <td>48</td>\n",
" <td>48</td>\n",
" <td>48.000000</td>\n",
" <td>297216</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc orte_namelist_t &lt;= oshmem_group_t</th>\n",
" <td>129</td>\n",
" <td>48</td>\n",
" <td>48</td>\n",
" <td>48.000000</td>\n",
" <td>297216</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_list_t &lt;= oshmem_group_t</th>\n",
" <td>4</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>16384</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_scoll_mpi_module_t</th>\n",
" <td>3</td>\n",
" <td>160</td>\n",
" <td>160</td>\n",
" <td>160.000000</td>\n",
" <td>76800</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_scoll_mpi_module_t &lt;= oshmem_group_t</th>\n",
" <td>2</td>\n",
" <td>160</td>\n",
" <td>160</td>\n",
" <td>160.000000</td>\n",
" <td>51200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc avail_com_t</th>\n",
" <td>10</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56.000000</td>\n",
" <td>31360</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc avail_com_t &lt;= oshmem_group_t</th>\n",
" <td>5</td>\n",
" <td>56</td>\n",
" <td>56</td>\n",
" <td>56.000000</td>\n",
" <td>15680</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_scoll_basic_module_t</th>\n",
" <td>5</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>20480</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_scoll_basic_module_t &lt;= oshmem_group_t</th>\n",
" <td>3</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>12288</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_atomic_mxm_module_t</th>\n",
" <td>1</td>\n",
" <td>32</td>\n",
" <td>32</td>\n",
" <td>32.000000</td>\n",
" <td>1024</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_atomic_basic_module_t</th>\n",
" <td>1</td>\n",
" <td>32</td>\n",
" <td>32</td>\n",
" <td>32.000000</td>\n",
" <td>1024</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_proc_t ** &lt;= ompi_group_t</th>\n",
" <td>1</td>\n",
" <td>512</td>\n",
" <td>512</td>\n",
" <td>512.000000</td>\n",
" <td>262144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_comm_allreduce_context_t</th>\n",
" <td>6</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80.000000</td>\n",
" <td>38400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_buffer_t</th>\n",
" <td>1</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>4096</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_proc_t ** &lt;= oshmem_group_t &lt;= ompi_group_t</th>\n",
" <td>1</td>\n",
" <td>512</td>\n",
" <td>512</td>\n",
" <td>512.000000</td>\n",
" <td>262144</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_group_t &lt;= oshmem_group_t</th>\n",
" <td>1</td>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>72.000000</td>\n",
" <td>5184</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_communicator_t &lt;= oshmem_group_t</th>\n",
" <td>1</td>\n",
" <td>264</td>\n",
" <td>264</td>\n",
" <td>264.000000</td>\n",
" <td>69696</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc opal_hash_table_t &lt;= oshmem_group_t</th>\n",
" <td>1</td>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>72.000000</td>\n",
" <td>5184</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc attribute_value_t &lt;= oshmem_group_t</th>\n",
" <td>7</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>28672</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_comm_cid_context_t &lt;= oshmem_group_t</th>\n",
" <td>2</td>\n",
" <td>120</td>\n",
" <td>120</td>\n",
" <td>120.000000</td>\n",
" <td>28800</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_comm_request_item_t &lt;= oshmem_group_t</th>\n",
" <td>13</td>\n",
" <td>72</td>\n",
" <td>72</td>\n",
" <td>72.000000</td>\n",
" <td>67392</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_comm_allreduce_context_t &lt;= oshmem_group_t</th>\n",
" <td>3</td>\n",
" <td>80</td>\n",
" <td>80</td>\n",
" <td>80.000000</td>\n",
" <td>19200</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc ompi_coll_libnbc_module_t &lt;= oshmem_group_t</th>\n",
" <td>1</td>\n",
" <td>480</td>\n",
" <td>480</td>\n",
" <td>480.000000</td>\n",
" <td>230400</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc avail_coll_t &lt;= oshmem_group_t</th>\n",
" <td>3</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>12288</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_coll_tuned_module_t &lt;= oshmem_group_t</th>\n",
" <td>1</td>\n",
" <td>1024</td>\n",
" <td>1024</td>\n",
" <td>1024.000000</td>\n",
" <td>1048576</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_coll_basic_module_t &lt;= oshmem_group_t</th>\n",
" <td>1</td>\n",
" <td>408</td>\n",
" <td>408</td>\n",
" <td>408.000000</td>\n",
" <td>166464</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc mca_coll_base_comm_t &lt;= oshmem_group_t</th>\n",
" <td>2</td>\n",
" <td>136</td>\n",
" <td>136</td>\n",
" <td>136.000000</td>\n",
" <td>36992</td>\n",
" </tr>\n",
" <tr>\n",
" <th>alloc oshmem_group_cache_t</th>\n",
" <td>1</td>\n",
" <td>64</td>\n",
" <td>64</td>\n",
" <td>64.000000</td>\n",
" <td>4096</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Message size received from all nodes</th>\n",
" <td>65536</td>\n",
" <td>8</td>\n",
" <td>8</td>\n",
" <td>8.000000</td>\n",
" <td>4194304</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Message size sent to all nodes</th>\n",
" <td>131712</td>\n",
" <td>8208</td>\n",
" <td>8</td>\n",
" <td>47.844509</td>\n",
" <td>43125997568</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>6272 rows × 5 columns</p>\n",
"</div>"
],
"text/plain": [
" Count \\\n",
"Node Context Thread Timer \n",
"0 0 0 alloc opal_thread_t 1 \n",
" alloc mca_base_component_list_item_t 90 \n",
" alloc mca_base_var_group_t 194 \n",
" alloc mca_base_var_t 945 \n",
" alloc mca_base_var_enum_t 19 \n",
" alloc opal_dss_type_info_t 46 \n",
" alloc opal_list_t 70 \n",
" alloc mca_base_component_repository_item_t 119 \n",
" alloc opal_if_t 3 \n",
" alloc orte_schizo_base_active_module_t 2 \n",
" alloc opal_progress_tracker_t 1 \n",
" alloc opal_pmix_proc_data_t 65 \n",
" alloc opal_hash_table_t 6 \n",
" alloc opal_value_t 1585 \n",
" alloc orte_state_t 2 \n",
" alloc orte_routed_base_active_t 4 \n",
" alloc mca_oob_ud_device_t 1 \n",
" alloc mca_oob_ud_port_t 1 \n",
" alloc orte_rml_pathway_t 1 \n",
" alloc orte_attribute_t 5 \n",
" alloc orte_rml_base_active_t 1 \n",
" alloc orte_rml_posted_recv_t 4 \n",
" alloc orte_rml_posted_recv_t <= orte_rml_recv_r... 4 \n",
" alloc orte_rml_recv_request_t 4 \n",
" alloc orte_grpcomm_base_active_t 1 \n",
" alloc opal_hwloc_topo_data_t 1 \n",
" alloc ompi_datatype_t 23 \n",
" alloc opal_convertor_t 2 \n",
" alloc ompi_proc_t 64 \n",
" alloc opal_pointer_array_t 2 \n",
"... ... \n",
"63 0 0 alloc orte_namelist_t 129 \n",
" alloc orte_namelist_t <= oshmem_group_t 129 \n",
" alloc opal_list_t <= oshmem_group_t 4 \n",
" alloc mca_scoll_mpi_module_t 3 \n",
" alloc mca_scoll_mpi_module_t <= oshmem_group_t 2 \n",
" alloc avail_com_t 10 \n",
" alloc avail_com_t <= oshmem_group_t 5 \n",
" alloc mca_scoll_basic_module_t 5 \n",
" alloc mca_scoll_basic_module_t <= oshmem_group_t 3 \n",
" alloc mca_atomic_mxm_module_t 1 \n",
" alloc mca_atomic_basic_module_t 1 \n",
" alloc ompi_proc_t ** <= ompi_group_t 1 \n",
" alloc ompi_comm_allreduce_context_t 6 \n",
" alloc opal_buffer_t 1 \n",
" alloc ompi_proc_t ** <= oshmem_group_t <= ompi_... 1 \n",
" alloc ompi_group_t <= oshmem_group_t 1 \n",
" alloc ompi_communicator_t <= oshmem_group_t 1 \n",
" alloc opal_hash_table_t <= oshmem_group_t 1 \n",
" alloc attribute_value_t <= oshmem_group_t 7 \n",
" alloc ompi_comm_cid_context_t <= oshmem_group_t 2 \n",
" alloc ompi_comm_request_item_t <= oshmem_group_t 13 \n",
" alloc ompi_comm_allreduce_context_t <= oshmem_g... 3 \n",
" alloc ompi_coll_libnbc_module_t <= oshmem_group_t 1 \n",
" alloc avail_coll_t <= oshmem_group_t 3 \n",
" alloc mca_coll_tuned_module_t <= oshmem_group_t 1 \n",
" alloc mca_coll_basic_module_t <= oshmem_group_t 1 \n",
" alloc mca_coll_base_comm_t <= oshmem_group_t 2 \n",
" alloc oshmem_group_cache_t 1 \n",
" Message size received from all nodes 65536 \n",
" Message size sent to all nodes 131712 \n",
"\n",
" Maximum \\\n",
"Node Context Thread Timer \n",
"0 0 0 alloc opal_thread_t 40 \n",
" alloc mca_base_component_list_item_t 48 \n",
" alloc mca_base_var_group_t 280 \n",
" alloc mca_base_var_t 168 \n",
" alloc mca_base_var_enum_t 88 \n",
" alloc opal_dss_type_info_t 80 \n",
" alloc opal_list_t 64 \n",
" alloc mca_base_component_repository_item_t 176 \n",
" alloc opal_if_t 224 \n",
" alloc orte_schizo_base_active_module_t 64 \n",
" alloc opal_progress_tracker_t 256 \n",
" alloc opal_pmix_proc_data_t 112 \n",
" alloc opal_hash_table_t 72 \n",
" alloc opal_value_t 136 \n",
" alloc orte_state_t 64 \n",
" alloc orte_routed_base_active_t 64 \n",
" alloc mca_oob_ud_device_t 496 \n",
" alloc mca_oob_ud_port_t 912 \n",
" alloc orte_rml_pathway_t 176 \n",
" alloc orte_attribute_t 112 \n",
" alloc orte_rml_base_active_t 56 \n",
" alloc orte_rml_posted_recv_t 80 \n",
" alloc orte_rml_posted_recv_t <= orte_rml_recv_r... 80 \n",
" alloc orte_rml_recv_request_t 168 \n",
" alloc orte_grpcomm_base_active_t 64 \n",
" alloc opal_hwloc_topo_data_t 96 \n",
" alloc ompi_datatype_t 288 \n",
" alloc opal_convertor_t 248 \n",
" alloc ompi_proc_t 112 \n",
" alloc opal_pointer_array_t 112 \n",
"... ... \n",
"63 0 0 alloc orte_namelist_t 48 \n",
" alloc orte_namelist_t <= oshmem_group_t 48 \n",
" alloc opal_list_t <= oshmem_group_t 64 \n",
" alloc mca_scoll_mpi_module_t 160 \n",
" alloc mca_scoll_mpi_module_t <= oshmem_group_t 160 \n",
" alloc avail_com_t 56 \n",
" alloc avail_com_t <= oshmem_group_t 56 \n",
" alloc mca_scoll_basic_module_t 64 \n",
" alloc mca_scoll_basic_module_t <= oshmem_group_t 64 \n",
" alloc mca_atomic_mxm_module_t 32 \n",
" alloc mca_atomic_basic_module_t 32 \n",
" alloc ompi_proc_t ** <= ompi_group_t 512 \n",
" alloc ompi_comm_allreduce_context_t 80 \n",
" alloc opal_buffer_t 64 \n",
" alloc ompi_proc_t ** <= oshmem_group_t <= ompi_... 512 \n",
" alloc ompi_group_t <= oshmem_group_t 72 \n",
" alloc ompi_communicator_t <= oshmem_group_t 264 \n",
" alloc opal_hash_table_t <= oshmem_group_t 72 \n",
" alloc attribute_value_t <= oshmem_group_t 64 \n",
" alloc ompi_comm_cid_context_t <= oshmem_group_t 120 \n",
" alloc ompi_comm_request_item_t <= oshmem_group_t 72 \n",
" alloc ompi_comm_allreduce_context_t <= oshmem_g... 80 \n",
" alloc ompi_coll_libnbc_module_t <= oshmem_group_t 480 \n",
" alloc avail_coll_t <= oshmem_group_t 64 \n",
" alloc mca_coll_tuned_module_t <= oshmem_group_t 1024 \n",
" alloc mca_coll_basic_module_t <= oshmem_group_t 408 \n",
" alloc mca_coll_base_comm_t <= oshmem_group_t 136 \n",
" alloc oshmem_group_cache_t 64 \n",
" Message size received from all nodes 8 \n",
" Message size sent to all nodes 8208 \n",
"\n",
" Minimum \\\n",
"Node Context Thread Timer \n",
"0 0 0 alloc opal_thread_t 40 \n",
" alloc mca_base_component_list_item_t 48 \n",
" alloc mca_base_var_group_t 280 \n",
" alloc mca_base_var_t 168 \n",
" alloc mca_base_var_enum_t 88 \n",
" alloc opal_dss_type_info_t 80 \n",
" alloc opal_list_t 64 \n",
" alloc mca_base_component_repository_item_t 176 \n",
" alloc opal_if_t 224 \n",
" alloc orte_schizo_base_active_module_t 64 \n",
" alloc opal_progress_tracker_t 256 \n",
" alloc opal_pmix_proc_data_t 112 \n",
" alloc opal_hash_table_t 72 \n",
" alloc opal_value_t 136 \n",
" alloc orte_state_t 64 \n",
" alloc orte_routed_base_active_t 64 \n",
" alloc mca_oob_ud_device_t 496 \n",
" alloc mca_oob_ud_port_t 912 \n",
" alloc orte_rml_pathway_t 176 \n",
" alloc orte_attribute_t 112 \n",
" alloc orte_rml_base_active_t 56 \n",
" alloc orte_rml_posted_recv_t 80 \n",
" alloc orte_rml_posted_recv_t <= orte_rml_recv_r... 80 \n",
" alloc orte_rml_recv_request_t 168 \n",
" alloc orte_grpcomm_base_active_t 64 \n",
" alloc opal_hwloc_topo_data_t 96 \n",
" alloc ompi_datatype_t 288 \n",
" alloc opal_convertor_t 248 \n",
" alloc ompi_proc_t 112 \n",
" alloc opal_pointer_array_t 112 \n",
"... ... \n",
"63 0 0 alloc orte_namelist_t 48 \n",
" alloc orte_namelist_t <= oshmem_group_t 48 \n",
" alloc opal_list_t <= oshmem_group_t 64 \n",
" alloc mca_scoll_mpi_module_t 160 \n",
" alloc mca_scoll_mpi_module_t <= oshmem_group_t 160 \n",
" alloc avail_com_t 56 \n",
" alloc avail_com_t <= oshmem_group_t 56 \n",
" alloc mca_scoll_basic_module_t 64 \n",
" alloc mca_scoll_basic_module_t <= oshmem_group_t 64 \n",
" alloc mca_atomic_mxm_module_t 32 \n",
" alloc mca_atomic_basic_module_t 32 \n",
" alloc ompi_proc_t ** <= ompi_group_t 512 \n",
" alloc ompi_comm_allreduce_context_t 80 \n",
" alloc opal_buffer_t 64 \n",
" alloc ompi_proc_t ** <= oshmem_group_t <= ompi_... 512 \n",
" alloc ompi_group_t <= oshmem_group_t 72 \n",
" alloc ompi_communicator_t <= oshmem_group_t 264 \n",
" alloc opal_hash_table_t <= oshmem_group_t 72 \n",
" alloc attribute_value_t <= oshmem_group_t 64 \n",
" alloc ompi_comm_cid_context_t <= oshmem_group_t 120 \n",
" alloc ompi_comm_request_item_t <= oshmem_group_t 72 \n",
" alloc ompi_comm_allreduce_context_t <= oshmem_g... 80 \n",
" alloc ompi_coll_libnbc_module_t <= oshmem_group_t 480 \n",
" alloc avail_coll_t <= oshmem_group_t 64 \n",
" alloc mca_coll_tuned_module_t <= oshmem_group_t 1024 \n",
" alloc mca_coll_basic_module_t <= oshmem_group_t 408 \n",
" alloc mca_coll_base_comm_t <= oshmem_group_t 136 \n",
" alloc oshmem_group_cache_t 64 \n",
" Message size received from all nodes 8 \n",
" Message size sent to all nodes 8 \n",
"\n",
" Mean \\\n",
"Node Context Thread Timer \n",
"0 0 0 alloc opal_thread_t 40.000000 \n",
" alloc mca_base_component_list_item_t 48.000000 \n",
" alloc mca_base_var_group_t 280.000000 \n",
" alloc mca_base_var_t 168.000000 \n",
" alloc mca_base_var_enum_t 88.000000 \n",
" alloc opal_dss_type_info_t 80.000000 \n",
" alloc opal_list_t 64.000000 \n",
" alloc mca_base_component_repository_item_t 176.000000 \n",
" alloc opal_if_t 224.000000 \n",
" alloc orte_schizo_base_active_module_t 64.000000 \n",
" alloc opal_progress_tracker_t 256.000000 \n",
" alloc opal_pmix_proc_data_t 112.000000 \n",
" alloc opal_hash_table_t 72.000000 \n",
" alloc opal_value_t 136.000000 \n",
" alloc orte_state_t 64.000000 \n",
" alloc orte_routed_base_active_t 64.000000 \n",
" alloc mca_oob_ud_device_t 496.000000 \n",
" alloc mca_oob_ud_port_t 912.000000 \n",
" alloc orte_rml_pathway_t 176.000000 \n",
" alloc orte_attribute_t 112.000000 \n",
" alloc orte_rml_base_active_t 56.000000 \n",
" alloc orte_rml_posted_recv_t 80.000000 \n",
" alloc orte_rml_posted_recv_t <= orte_rml_recv_r... 80.000000 \n",
" alloc orte_rml_recv_request_t 168.000000 \n",
" alloc orte_grpcomm_base_active_t 64.000000 \n",
" alloc opal_hwloc_topo_data_t 96.000000 \n",
" alloc ompi_datatype_t 288.000000 \n",
" alloc opal_convertor_t 248.000000 \n",
" alloc ompi_proc_t 112.000000 \n",
" alloc opal_pointer_array_t 112.000000 \n",
"... ... \n",
"63 0 0 alloc orte_namelist_t 48.000000 \n",
" alloc orte_namelist_t <= oshmem_group_t 48.000000 \n",
" alloc opal_list_t <= oshmem_group_t 64.000000 \n",
" alloc mca_scoll_mpi_module_t 160.000000 \n",
" alloc mca_scoll_mpi_module_t <= oshmem_group_t 160.000000 \n",
" alloc avail_com_t 56.000000 \n",
" alloc avail_com_t <= oshmem_group_t 56.000000 \n",
" alloc mca_scoll_basic_module_t 64.000000 \n",
" alloc mca_scoll_basic_module_t <= oshmem_group_t 64.000000 \n",
" alloc mca_atomic_mxm_module_t 32.000000 \n",
" alloc mca_atomic_basic_module_t 32.000000 \n",
" alloc ompi_proc_t ** <= ompi_group_t 512.000000 \n",
" alloc ompi_comm_allreduce_context_t 80.000000 \n",
" alloc opal_buffer_t 64.000000 \n",
" alloc ompi_proc_t ** <= oshmem_group_t <= ompi_... 512.000000 \n",
" alloc ompi_group_t <= oshmem_group_t 72.000000 \n",
" alloc ompi_communicator_t <= oshmem_group_t 264.000000 \n",
" alloc opal_hash_table_t <= oshmem_group_t 72.000000 \n",
" alloc attribute_value_t <= oshmem_group_t 64.000000 \n",
" alloc ompi_comm_cid_context_t <= oshmem_group_t 120.000000 \n",
" alloc ompi_comm_request_item_t <= oshmem_group_t 72.000000 \n",
" alloc ompi_comm_allreduce_context_t <= oshmem_g... 80.000000 \n",
" alloc ompi_coll_libnbc_module_t <= oshmem_group_t 480.000000 \n",
" alloc avail_coll_t <= oshmem_group_t 64.000000 \n",
" alloc mca_coll_tuned_module_t <= oshmem_group_t 1024.000000 \n",
" alloc mca_coll_basic_module_t <= oshmem_group_t 408.000000 \n",
" alloc mca_coll_base_comm_t <= oshmem_group_t 136.000000 \n",
" alloc oshmem_group_cache_t 64.000000 \n",
" Message size received from all nodes 8.000000 \n",
" Message size sent to all nodes 47.844509 \n",
"\n",
" SumSq \n",
"Node Context Thread Timer \n",
"0 0 0 alloc opal_thread_t 1600 \n",
" alloc mca_base_component_list_item_t 207360 \n",
" alloc mca_base_var_group_t 15209600 \n",
" alloc mca_base_var_t 26671680 \n",
" alloc mca_base_var_enum_t 147136 \n",
" alloc opal_dss_type_info_t 294400 \n",
" alloc opal_list_t 286720 \n",
" alloc mca_base_component_repository_item_t 3686144 \n",
" alloc opal_if_t 150528 \n",
" alloc orte_schizo_base_active_module_t 8192 \n",
" alloc opal_progress_tracker_t 65536 \n",
" alloc opal_pmix_proc_data_t 815360 \n",
" alloc opal_hash_table_t 31104 \n",
" alloc opal_value_t 29316160 \n",
" alloc orte_state_t 8192 \n",
" alloc orte_routed_base_active_t 16384 \n",
" alloc mca_oob_ud_device_t 246016 \n",
" alloc mca_oob_ud_port_t 831744 \n",
" alloc orte_rml_pathway_t 30976 \n",
" alloc orte_attribute_t 62720 \n",
" alloc orte_rml_base_active_t 3136 \n",
" alloc orte_rml_posted_recv_t 25600 \n",
" alloc orte_rml_posted_recv_t <= orte_rml_recv_r... 25600 \n",
" alloc orte_rml_recv_request_t 112896 \n",
" alloc orte_grpcomm_base_active_t 4096 \n",
" alloc opal_hwloc_topo_data_t 9216 \n",
" alloc ompi_datatype_t 1907712 \n",
" alloc opal_convertor_t 123008 \n",
" alloc ompi_proc_t 802816 \n",
" alloc opal_pointer_array_t 25088 \n",
"... ... \n",
"63 0 0 alloc orte_namelist_t 297216 \n",
" alloc orte_namelist_t <= oshmem_group_t 297216 \n",
" alloc opal_list_t <= oshmem_group_t 16384 \n",
" alloc mca_scoll_mpi_module_t 76800 \n",
" alloc mca_scoll_mpi_module_t <= oshmem_group_t 51200 \n",
" alloc avail_com_t 31360 \n",
" alloc avail_com_t <= oshmem_group_t 15680 \n",
" alloc mca_scoll_basic_module_t 20480 \n",
" alloc mca_scoll_basic_module_t <= oshmem_group_t 12288 \n",
" alloc mca_atomic_mxm_module_t 1024 \n",
" alloc mca_atomic_basic_module_t 1024 \n",
" alloc ompi_proc_t ** <= ompi_group_t 262144 \n",
" alloc ompi_comm_allreduce_context_t 38400 \n",
" alloc opal_buffer_t 4096 \n",
" alloc ompi_proc_t ** <= oshmem_group_t <= ompi_... 262144 \n",
" alloc ompi_group_t <= oshmem_group_t 5184 \n",
" alloc ompi_communicator_t <= oshmem_group_t 69696 \n",
" alloc opal_hash_table_t <= oshmem_group_t 5184 \n",
" alloc attribute_value_t <= oshmem_group_t 28672 \n",
" alloc ompi_comm_cid_context_t <= oshmem_group_t 28800 \n",
" alloc ompi_comm_request_item_t <= oshmem_group_t 67392 \n",
" alloc ompi_comm_allreduce_context_t <= oshmem_g... 19200 \n",
" alloc ompi_coll_libnbc_module_t <= oshmem_group_t 230400 \n",
" alloc avail_coll_t <= oshmem_group_t 12288 \n",
" alloc mca_coll_tuned_module_t <= oshmem_group_t 1048576 \n",
" alloc mca_coll_basic_module_t <= oshmem_group_t 166464 \n",
" alloc mca_coll_base_comm_t <= oshmem_group_t 36992 \n",
" alloc oshmem_group_cache_t 4096 \n",
" Message size received from all nodes 4194304 \n",
" Message size sent to all nodes 43125997568 \n",
"\n",
"[6272 rows x 5 columns]"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"profile.atomic_data()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The interval_data() function returns the timer data. As with atomic_data(), it is returned as a multi-index Pandas dataframe with Node, Context, Thread, and Timer as the indices."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th>Calls</th>\n",
" <th>Subcalls</th>\n",
" <th>Exclusive</th>\n",
" <th>Inclusive</th>\n",
" <th>ProfileCalls</th>\n",
" <th>Group</th>\n",
" <th>Timer Name</th>\n",
" <th>Timer Location</th>\n",
" <th>Timer Type</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Node</th>\n",
" <th>Context</th>\n",
" <th>Thread</th>\n",
" <th>Timer</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th rowspan=\"14\" valign=\"top\">0</th>\n",
" <th rowspan=\"14\" valign=\"top\">0</th>\n",
" <th rowspan=\"14\" valign=\"top\">0</th>\n",
" <th>.TAU application</th>\n",
" <td>1</td>\n",
" <td>262834</td>\n",
" <td>54530</td>\n",
" <td>6493783</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>.TAU application</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_init(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>3974524</td>\n",
" <td>3974524</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_init(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_n_pes(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_n_pes(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_my_pe(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_my_pe(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_barrier_all(void) C</th>\n",
" <td>131107</td>\n",
" <td>0</td>\n",
" <td>2194807</td>\n",
" <td>2194807</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_barrier_all(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_int_sum_to_all(int *, const int *, int, int, int, int, int *, long *) C</th>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>3108</td>\n",
" <td>3108</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_int_sum_to_all(int *, const int *, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>long long shmem_longlong_fadd(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>222176</td>\n",
" <td>222176</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>long long shmem_longlong_fadd(long long *, lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_p(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>38757</td>\n",
" <td>38757</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_p(long long *, long long, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_broadcast64(void *, const void *, size_t, int, int, int, int, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>109</td>\n",
" <td>109</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_broadcast64(void *, const void *, s...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void *shmalloc(size_t) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void *shmalloc(size_t) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_put(long long *, const long long *, size_t, int) C</th>\n",
" <td>640</td>\n",
" <td>0</td>\n",
" <td>4576</td>\n",
" <td>4576</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_put(long long *, const lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shfree(void *) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>915</td>\n",
" <td>915</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shfree(void *) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_sum_to_all(long long *, const long long *, int, int, int, int, long long *, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>22</td>\n",
" <td>22</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_sum_to_all(long long *, co...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_finalize(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>239</td>\n",
" <td>239</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_finalize(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"14\" valign=\"top\">1</th>\n",
" <th rowspan=\"14\" valign=\"top\">0</th>\n",
" <th rowspan=\"14\" valign=\"top\">0</th>\n",
" <th>.TAU application</th>\n",
" <td>1</td>\n",
" <td>262834</td>\n",
" <td>55168</td>\n",
" <td>6450822</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>.TAU application</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_init(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>3931819</td>\n",
" <td>3931819</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_init(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_n_pes(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_n_pes(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_my_pe(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_my_pe(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_barrier_all(void) C</th>\n",
" <td>131107</td>\n",
" <td>0</td>\n",
" <td>2134030</td>\n",
" <td>2134030</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_barrier_all(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_int_sum_to_all(int *, const int *, int, int, int, int, int *, long *) C</th>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>3103</td>\n",
" <td>3103</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_int_sum_to_all(int *, const int *, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>long long shmem_longlong_fadd(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>278368</td>\n",
" <td>278368</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>long long shmem_longlong_fadd(long long *, lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_p(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>42489</td>\n",
" <td>42489</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_p(long long *, long long, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_broadcast64(void *, const void *, size_t, int, int, int, int, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>111</td>\n",
" <td>111</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_broadcast64(void *, const void *, s...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void *shmalloc(size_t) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>17</td>\n",
" <td>17</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void *shmalloc(size_t) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_put(long long *, const long long *, size_t, int) C</th>\n",
" <td>640</td>\n",
" <td>0</td>\n",
" <td>4744</td>\n",
" <td>4744</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_put(long long *, const lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shfree(void *) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>915</td>\n",
" <td>915</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shfree(void *) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_sum_to_all(long long *, const long long *, int, int, int, int, long long *, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_sum_to_all(long long *, co...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_finalize(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>35</td>\n",
" <td>35</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_finalize(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">2</th>\n",
" <th rowspan=\"2\" valign=\"top\">0</th>\n",
" <th rowspan=\"2\" valign=\"top\">0</th>\n",
" <th>.TAU application</th>\n",
" <td>1</td>\n",
" <td>262834</td>\n",
" <td>52874</td>\n",
" <td>6485231</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>.TAU application</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_init(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>3976504</td>\n",
" <td>3976504</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_init(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"2\" valign=\"top\">61</th>\n",
" <th rowspan=\"2\" valign=\"top\">0</th>\n",
" <th rowspan=\"2\" valign=\"top\">0</th>\n",
" <th>void shmem_longlong_sum_to_all(long long *, const long long *, int, int, int, int, long long *, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>19</td>\n",
" <td>19</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_sum_to_all(long long *, co...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_finalize(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1072</td>\n",
" <td>1072</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_finalize(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"14\" valign=\"top\">62</th>\n",
" <th rowspan=\"14\" valign=\"top\">0</th>\n",
" <th rowspan=\"14\" valign=\"top\">0</th>\n",
" <th>.TAU application</th>\n",
" <td>1</td>\n",
" <td>262834</td>\n",
" <td>63013</td>\n",
" <td>6243165</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>.TAU application</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_init(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>3724183</td>\n",
" <td>3724183</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_init(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_n_pes(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_n_pes(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_my_pe(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_my_pe(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_barrier_all(void) C</th>\n",
" <td>131107</td>\n",
" <td>0</td>\n",
" <td>2172075</td>\n",
" <td>2172075</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_barrier_all(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_int_sum_to_all(int *, const int *, int, int, int, int, int *, long *) C</th>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>2232</td>\n",
" <td>2232</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_int_sum_to_all(int *, const int *, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>long long shmem_longlong_fadd(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>224237</td>\n",
" <td>224237</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>long long shmem_longlong_fadd(long long *, lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_p(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>42345</td>\n",
" <td>42345</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_p(long long *, long long, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_broadcast64(void *, const void *, size_t, int, int, int, int, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>831</td>\n",
" <td>831</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_broadcast64(void *, const void *, s...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void *shmalloc(size_t) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void *shmalloc(size_t) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_put(long long *, const long long *, size_t, int) C</th>\n",
" <td>640</td>\n",
" <td>0</td>\n",
" <td>12446</td>\n",
" <td>12446</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_put(long long *, const lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shfree(void *) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>906</td>\n",
" <td>906</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shfree(void *) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_sum_to_all(long long *, const long long *, int, int, int, int, long long *, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>20</td>\n",
" <td>20</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_sum_to_all(long long *, co...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_finalize(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>849</td>\n",
" <td>849</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_finalize(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th rowspan=\"14\" valign=\"top\">63</th>\n",
" <th rowspan=\"14\" valign=\"top\">0</th>\n",
" <th rowspan=\"14\" valign=\"top\">0</th>\n",
" <th>.TAU application</th>\n",
" <td>1</td>\n",
" <td>262834</td>\n",
" <td>61511</td>\n",
" <td>6244331</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>.TAU application</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_init(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>3735137</td>\n",
" <td>3735137</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_init(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_n_pes(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_n_pes(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_my_pe(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_my_pe(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_barrier_all(void) C</th>\n",
" <td>131107</td>\n",
" <td>0</td>\n",
" <td>2162614</td>\n",
" <td>2162614</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_barrier_all(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_int_sum_to_all(int *, const int *, int, int, int, int, int *, long *) C</th>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>1733</td>\n",
" <td>1733</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_int_sum_to_all(int *, const int *, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>long long shmem_longlong_fadd(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>226262</td>\n",
" <td>226262</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>long long shmem_longlong_fadd(long long *, lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_p(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>43455</td>\n",
" <td>43455</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_p(long long *, long long, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_broadcast64(void *, const void *, size_t, int, int, int, int, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>605</td>\n",
" <td>605</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_broadcast64(void *, const void *, s...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void *shmalloc(size_t) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>25</td>\n",
" <td>25</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void *shmalloc(size_t) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_put(long long *, const long long *, size_t, int) C</th>\n",
" <td>640</td>\n",
" <td>0</td>\n",
" <td>11125</td>\n",
" <td>11125</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_put(long long *, const lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shfree(void *) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>906</td>\n",
" <td>906</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shfree(void *) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_sum_to_all(long long *, const long long *, int, int, int, int, long long *, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>26</td>\n",
" <td>26</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_sum_to_all(long long *, co...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_finalize(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>929</td>\n",
" <td>929</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_finalize(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>896 rows × 9 columns</p>\n",
"</div>"
],
"text/plain": [
" Calls \\\n",
"Node Context Thread Timer \n",
"0 0 0 .TAU application 1 \n",
" void shmem_init(void) C 1 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 2 \n",
" void shmem_barrier_all(void) C 131107 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 3 \n",
" long long shmem_longlong_fadd(long long *, long... 65536 \n",
" void shmem_longlong_p(long long *, long long, i... 65536 \n",
" void shmem_broadcast64(void *, const void *, si... 1 \n",
" void *shmalloc(size_t) C 2 \n",
" void shmem_longlong_put(long long *, const long... 640 \n",
" void shfree(void *) C 2 \n",
" void shmem_longlong_sum_to_all(long long *, con... 1 \n",
" void shmem_finalize(void) C 1 \n",
"1 0 0 .TAU application 1 \n",
" void shmem_init(void) C 1 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 2 \n",
" void shmem_barrier_all(void) C 131107 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 3 \n",
" long long shmem_longlong_fadd(long long *, long... 65536 \n",
" void shmem_longlong_p(long long *, long long, i... 65536 \n",
" void shmem_broadcast64(void *, const void *, si... 1 \n",
" void *shmalloc(size_t) C 2 \n",
" void shmem_longlong_put(long long *, const long... 640 \n",
" void shfree(void *) C 2 \n",
" void shmem_longlong_sum_to_all(long long *, con... 1 \n",
" void shmem_finalize(void) C 1 \n",
"2 0 0 .TAU application 1 \n",
" void shmem_init(void) C 1 \n",
"... ... \n",
"61 0 0 void shmem_longlong_sum_to_all(long long *, con... 1 \n",
" void shmem_finalize(void) C 1 \n",
"62 0 0 .TAU application 1 \n",
" void shmem_init(void) C 1 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 2 \n",
" void shmem_barrier_all(void) C 131107 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 3 \n",
" long long shmem_longlong_fadd(long long *, long... 65536 \n",
" void shmem_longlong_p(long long *, long long, i... 65536 \n",
" void shmem_broadcast64(void *, const void *, si... 1 \n",
" void *shmalloc(size_t) C 2 \n",
" void shmem_longlong_put(long long *, const long... 640 \n",
" void shfree(void *) C 2 \n",
" void shmem_longlong_sum_to_all(long long *, con... 1 \n",
" void shmem_finalize(void) C 1 \n",
"63 0 0 .TAU application 1 \n",
" void shmem_init(void) C 1 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 2 \n",
" void shmem_barrier_all(void) C 131107 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 3 \n",
" long long shmem_longlong_fadd(long long *, long... 65536 \n",
" void shmem_longlong_p(long long *, long long, i... 65536 \n",
" void shmem_broadcast64(void *, const void *, si... 1 \n",
" void *shmalloc(size_t) C 2 \n",
" void shmem_longlong_put(long long *, const long... 640 \n",
" void shfree(void *) C 2 \n",
" void shmem_longlong_sum_to_all(long long *, con... 1 \n",
" void shmem_finalize(void) C 1 \n",
"\n",
" Subcalls \\\n",
"Node Context Thread Timer \n",
"0 0 0 .TAU application 262834 \n",
" void shmem_init(void) C 0 \n",
" int shmem_n_pes(void) C 0 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 0 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 0 \n",
" long long shmem_longlong_fadd(long long *, long... 0 \n",
" void shmem_longlong_p(long long *, long long, i... 0 \n",
" void shmem_broadcast64(void *, const void *, si... 0 \n",
" void *shmalloc(size_t) C 0 \n",
" void shmem_longlong_put(long long *, const long... 0 \n",
" void shfree(void *) C 0 \n",
" void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"1 0 0 .TAU application 262834 \n",
" void shmem_init(void) C 0 \n",
" int shmem_n_pes(void) C 0 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 0 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 0 \n",
" long long shmem_longlong_fadd(long long *, long... 0 \n",
" void shmem_longlong_p(long long *, long long, i... 0 \n",
" void shmem_broadcast64(void *, const void *, si... 0 \n",
" void *shmalloc(size_t) C 0 \n",
" void shmem_longlong_put(long long *, const long... 0 \n",
" void shfree(void *) C 0 \n",
" void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"2 0 0 .TAU application 262834 \n",
" void shmem_init(void) C 0 \n",
"... ... \n",
"61 0 0 void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"62 0 0 .TAU application 262834 \n",
" void shmem_init(void) C 0 \n",
" int shmem_n_pes(void) C 0 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 0 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 0 \n",
" long long shmem_longlong_fadd(long long *, long... 0 \n",
" void shmem_longlong_p(long long *, long long, i... 0 \n",
" void shmem_broadcast64(void *, const void *, si... 0 \n",
" void *shmalloc(size_t) C 0 \n",
" void shmem_longlong_put(long long *, const long... 0 \n",
" void shfree(void *) C 0 \n",
" void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"63 0 0 .TAU application 262834 \n",
" void shmem_init(void) C 0 \n",
" int shmem_n_pes(void) C 0 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 0 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 0 \n",
" long long shmem_longlong_fadd(long long *, long... 0 \n",
" void shmem_longlong_p(long long *, long long, i... 0 \n",
" void shmem_broadcast64(void *, const void *, si... 0 \n",
" void *shmalloc(size_t) C 0 \n",
" void shmem_longlong_put(long long *, const long... 0 \n",
" void shfree(void *) C 0 \n",
" void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"\n",
" Exclusive \\\n",
"Node Context Thread Timer \n",
"0 0 0 .TAU application 54530 \n",
" void shmem_init(void) C 3974524 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 2194807 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 3108 \n",
" long long shmem_longlong_fadd(long long *, long... 222176 \n",
" void shmem_longlong_p(long long *, long long, i... 38757 \n",
" void shmem_broadcast64(void *, const void *, si... 109 \n",
" void *shmalloc(size_t) C 18 \n",
" void shmem_longlong_put(long long *, const long... 4576 \n",
" void shfree(void *) C 915 \n",
" void shmem_longlong_sum_to_all(long long *, con... 22 \n",
" void shmem_finalize(void) C 239 \n",
"1 0 0 .TAU application 55168 \n",
" void shmem_init(void) C 3931819 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 2 \n",
" void shmem_barrier_all(void) C 2134030 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 3103 \n",
" long long shmem_longlong_fadd(long long *, long... 278368 \n",
" void shmem_longlong_p(long long *, long long, i... 42489 \n",
" void shmem_broadcast64(void *, const void *, si... 111 \n",
" void *shmalloc(size_t) C 17 \n",
" void shmem_longlong_put(long long *, const long... 4744 \n",
" void shfree(void *) C 915 \n",
" void shmem_longlong_sum_to_all(long long *, con... 19 \n",
" void shmem_finalize(void) C 35 \n",
"2 0 0 .TAU application 52874 \n",
" void shmem_init(void) C 3976504 \n",
"... ... \n",
"61 0 0 void shmem_longlong_sum_to_all(long long *, con... 19 \n",
" void shmem_finalize(void) C 1072 \n",
"62 0 0 .TAU application 63013 \n",
" void shmem_init(void) C 3724183 \n",
" int shmem_n_pes(void) C 3 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 2172075 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 2232 \n",
" long long shmem_longlong_fadd(long long *, long... 224237 \n",
" void shmem_longlong_p(long long *, long long, i... 42345 \n",
" void shmem_broadcast64(void *, const void *, si... 831 \n",
" void *shmalloc(size_t) C 25 \n",
" void shmem_longlong_put(long long *, const long... 12446 \n",
" void shfree(void *) C 906 \n",
" void shmem_longlong_sum_to_all(long long *, con... 20 \n",
" void shmem_finalize(void) C 849 \n",
"63 0 0 .TAU application 61511 \n",
" void shmem_init(void) C 3735137 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 1 \n",
" void shmem_barrier_all(void) C 2162614 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 1733 \n",
" long long shmem_longlong_fadd(long long *, long... 226262 \n",
" void shmem_longlong_p(long long *, long long, i... 43455 \n",
" void shmem_broadcast64(void *, const void *, si... 605 \n",
" void *shmalloc(size_t) C 25 \n",
" void shmem_longlong_put(long long *, const long... 11125 \n",
" void shfree(void *) C 906 \n",
" void shmem_longlong_sum_to_all(long long *, con... 26 \n",
" void shmem_finalize(void) C 929 \n",
"\n",
" Inclusive \\\n",
"Node Context Thread Timer \n",
"0 0 0 .TAU application 6493783 \n",
" void shmem_init(void) C 3974524 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 2194807 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 3108 \n",
" long long shmem_longlong_fadd(long long *, long... 222176 \n",
" void shmem_longlong_p(long long *, long long, i... 38757 \n",
" void shmem_broadcast64(void *, const void *, si... 109 \n",
" void *shmalloc(size_t) C 18 \n",
" void shmem_longlong_put(long long *, const long... 4576 \n",
" void shfree(void *) C 915 \n",
" void shmem_longlong_sum_to_all(long long *, con... 22 \n",
" void shmem_finalize(void) C 239 \n",
"1 0 0 .TAU application 6450822 \n",
" void shmem_init(void) C 3931819 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 2 \n",
" void shmem_barrier_all(void) C 2134030 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 3103 \n",
" long long shmem_longlong_fadd(long long *, long... 278368 \n",
" void shmem_longlong_p(long long *, long long, i... 42489 \n",
" void shmem_broadcast64(void *, const void *, si... 111 \n",
" void *shmalloc(size_t) C 17 \n",
" void shmem_longlong_put(long long *, const long... 4744 \n",
" void shfree(void *) C 915 \n",
" void shmem_longlong_sum_to_all(long long *, con... 19 \n",
" void shmem_finalize(void) C 35 \n",
"2 0 0 .TAU application 6485231 \n",
" void shmem_init(void) C 3976504 \n",
"... ... \n",
"61 0 0 void shmem_longlong_sum_to_all(long long *, con... 19 \n",
" void shmem_finalize(void) C 1072 \n",
"62 0 0 .TAU application 6243165 \n",
" void shmem_init(void) C 3724183 \n",
" int shmem_n_pes(void) C 3 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 2172075 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 2232 \n",
" long long shmem_longlong_fadd(long long *, long... 224237 \n",
" void shmem_longlong_p(long long *, long long, i... 42345 \n",
" void shmem_broadcast64(void *, const void *, si... 831 \n",
" void *shmalloc(size_t) C 25 \n",
" void shmem_longlong_put(long long *, const long... 12446 \n",
" void shfree(void *) C 906 \n",
" void shmem_longlong_sum_to_all(long long *, con... 20 \n",
" void shmem_finalize(void) C 849 \n",
"63 0 0 .TAU application 6244331 \n",
" void shmem_init(void) C 3735137 \n",
" int shmem_n_pes(void) C 2 \n",
" int shmem_my_pe(void) C 1 \n",
" void shmem_barrier_all(void) C 2162614 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 1733 \n",
" long long shmem_longlong_fadd(long long *, long... 226262 \n",
" void shmem_longlong_p(long long *, long long, i... 43455 \n",
" void shmem_broadcast64(void *, const void *, si... 605 \n",
" void *shmalloc(size_t) C 25 \n",
" void shmem_longlong_put(long long *, const long... 11125 \n",
" void shfree(void *) C 906 \n",
" void shmem_longlong_sum_to_all(long long *, con... 26 \n",
" void shmem_finalize(void) C 929 \n",
"\n",
" ProfileCalls \\\n",
"Node Context Thread Timer \n",
"0 0 0 .TAU application 0 \n",
" void shmem_init(void) C 0 \n",
" int shmem_n_pes(void) C 0 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 0 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 0 \n",
" long long shmem_longlong_fadd(long long *, long... 0 \n",
" void shmem_longlong_p(long long *, long long, i... 0 \n",
" void shmem_broadcast64(void *, const void *, si... 0 \n",
" void *shmalloc(size_t) C 0 \n",
" void shmem_longlong_put(long long *, const long... 0 \n",
" void shfree(void *) C 0 \n",
" void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"1 0 0 .TAU application 0 \n",
" void shmem_init(void) C 0 \n",
" int shmem_n_pes(void) C 0 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 0 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 0 \n",
" long long shmem_longlong_fadd(long long *, long... 0 \n",
" void shmem_longlong_p(long long *, long long, i... 0 \n",
" void shmem_broadcast64(void *, const void *, si... 0 \n",
" void *shmalloc(size_t) C 0 \n",
" void shmem_longlong_put(long long *, const long... 0 \n",
" void shfree(void *) C 0 \n",
" void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"2 0 0 .TAU application 0 \n",
" void shmem_init(void) C 0 \n",
"... ... \n",
"61 0 0 void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"62 0 0 .TAU application 0 \n",
" void shmem_init(void) C 0 \n",
" int shmem_n_pes(void) C 0 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 0 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 0 \n",
" long long shmem_longlong_fadd(long long *, long... 0 \n",
" void shmem_longlong_p(long long *, long long, i... 0 \n",
" void shmem_broadcast64(void *, const void *, si... 0 \n",
" void *shmalloc(size_t) C 0 \n",
" void shmem_longlong_put(long long *, const long... 0 \n",
" void shfree(void *) C 0 \n",
" void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"63 0 0 .TAU application 0 \n",
" void shmem_init(void) C 0 \n",
" int shmem_n_pes(void) C 0 \n",
" int shmem_my_pe(void) C 0 \n",
" void shmem_barrier_all(void) C 0 \n",
" void shmem_int_sum_to_all(int *, const int *, i... 0 \n",
" long long shmem_longlong_fadd(long long *, long... 0 \n",
" void shmem_longlong_p(long long *, long long, i... 0 \n",
" void shmem_broadcast64(void *, const void *, si... 0 \n",
" void *shmalloc(size_t) C 0 \n",
" void shmem_longlong_put(long long *, const long... 0 \n",
" void shfree(void *) C 0 \n",
" void shmem_longlong_sum_to_all(long long *, con... 0 \n",
" void shmem_finalize(void) C 0 \n",
"\n",
" Group \\\n",
"Node Context Thread Timer \n",
"0 0 0 .TAU application GROUP=\"TAU_USER\" \n",
" void shmem_init(void) C GROUP=\"TAU_USER\" \n",
" int shmem_n_pes(void) C GROUP=\"TAU_USER\" \n",
" int shmem_my_pe(void) C GROUP=\"TAU_USER\" \n",
" void shmem_barrier_all(void) C GROUP=\"TAU_USER\" \n",
" void shmem_int_sum_to_all(int *, const int *, i... GROUP=\"TAU_USER\" \n",
" long long shmem_longlong_fadd(long long *, long... GROUP=\"TAU_USER\" \n",
" void shmem_longlong_p(long long *, long long, i... GROUP=\"TAU_USER\" \n",
" void shmem_broadcast64(void *, const void *, si... GROUP=\"TAU_USER\" \n",
" void *shmalloc(size_t) C GROUP=\"TAU_USER\" \n",
" void shmem_longlong_put(long long *, const long... GROUP=\"TAU_USER\" \n",
" void shfree(void *) C GROUP=\"TAU_USER\" \n",
" void shmem_longlong_sum_to_all(long long *, con... GROUP=\"TAU_USER\" \n",
" void shmem_finalize(void) C GROUP=\"TAU_USER\" \n",
"1 0 0 .TAU application GROUP=\"TAU_USER\" \n",
" void shmem_init(void) C GROUP=\"TAU_USER\" \n",
" int shmem_n_pes(void) C GROUP=\"TAU_USER\" \n",
" int shmem_my_pe(void) C GROUP=\"TAU_USER\" \n",
" void shmem_barrier_all(void) C GROUP=\"TAU_USER\" \n",
" void shmem_int_sum_to_all(int *, const int *, i... GROUP=\"TAU_USER\" \n",
" long long shmem_longlong_fadd(long long *, long... GROUP=\"TAU_USER\" \n",
" void shmem_longlong_p(long long *, long long, i... GROUP=\"TAU_USER\" \n",
" void shmem_broadcast64(void *, const void *, si... GROUP=\"TAU_USER\" \n",
" void *shmalloc(size_t) C GROUP=\"TAU_USER\" \n",
" void shmem_longlong_put(long long *, const long... GROUP=\"TAU_USER\" \n",
" void shfree(void *) C GROUP=\"TAU_USER\" \n",
" void shmem_longlong_sum_to_all(long long *, con... GROUP=\"TAU_USER\" \n",
" void shmem_finalize(void) C GROUP=\"TAU_USER\" \n",
"2 0 0 .TAU application GROUP=\"TAU_USER\" \n",
" void shmem_init(void) C GROUP=\"TAU_USER\" \n",
"... ... \n",
"61 0 0 void shmem_longlong_sum_to_all(long long *, con... GROUP=\"TAU_USER\" \n",
" void shmem_finalize(void) C GROUP=\"TAU_USER\" \n",
"62 0 0 .TAU application GROUP=\"TAU_USER\" \n",
" void shmem_init(void) C GROUP=\"TAU_USER\" \n",
" int shmem_n_pes(void) C GROUP=\"TAU_USER\" \n",
" int shmem_my_pe(void) C GROUP=\"TAU_USER\" \n",
" void shmem_barrier_all(void) C GROUP=\"TAU_USER\" \n",
" void shmem_int_sum_to_all(int *, const int *, i... GROUP=\"TAU_USER\" \n",
" long long shmem_longlong_fadd(long long *, long... GROUP=\"TAU_USER\" \n",
" void shmem_longlong_p(long long *, long long, i... GROUP=\"TAU_USER\" \n",
" void shmem_broadcast64(void *, const void *, si... GROUP=\"TAU_USER\" \n",
" void *shmalloc(size_t) C GROUP=\"TAU_USER\" \n",
" void shmem_longlong_put(long long *, const long... GROUP=\"TAU_USER\" \n",
" void shfree(void *) C GROUP=\"TAU_USER\" \n",
" void shmem_longlong_sum_to_all(long long *, con... GROUP=\"TAU_USER\" \n",
" void shmem_finalize(void) C GROUP=\"TAU_USER\" \n",
"63 0 0 .TAU application GROUP=\"TAU_USER\" \n",
" void shmem_init(void) C GROUP=\"TAU_USER\" \n",
" int shmem_n_pes(void) C GROUP=\"TAU_USER\" \n",
" int shmem_my_pe(void) C GROUP=\"TAU_USER\" \n",
" void shmem_barrier_all(void) C GROUP=\"TAU_USER\" \n",
" void shmem_int_sum_to_all(int *, const int *, i... GROUP=\"TAU_USER\" \n",
" long long shmem_longlong_fadd(long long *, long... GROUP=\"TAU_USER\" \n",
" void shmem_longlong_p(long long *, long long, i... GROUP=\"TAU_USER\" \n",
" void shmem_broadcast64(void *, const void *, si... GROUP=\"TAU_USER\" \n",
" void *shmalloc(size_t) C GROUP=\"TAU_USER\" \n",
" void shmem_longlong_put(long long *, const long... GROUP=\"TAU_USER\" \n",
" void shfree(void *) C GROUP=\"TAU_USER\" \n",
" void shmem_longlong_sum_to_all(long long *, con... GROUP=\"TAU_USER\" \n",
" void shmem_finalize(void) C GROUP=\"TAU_USER\" \n",
"\n",
" Timer Name \\\n",
"Node Context Thread Timer \n",
"0 0 0 .TAU application .TAU application \n",
" void shmem_init(void) C void shmem_init(void) C \n",
" int shmem_n_pes(void) C int shmem_n_pes(void) C \n",
" int shmem_my_pe(void) C int shmem_my_pe(void) C \n",
" void shmem_barrier_all(void) C void shmem_barrier_all(void) C \n",
" void shmem_int_sum_to_all(int *, const int *, i... void shmem_int_sum_to_all(int *, const int *, ... \n",
" long long shmem_longlong_fadd(long long *, long... long long shmem_longlong_fadd(long long *, lon... \n",
" void shmem_longlong_p(long long *, long long, i... void shmem_longlong_p(long long *, long long, ... \n",
" void shmem_broadcast64(void *, const void *, si... void shmem_broadcast64(void *, const void *, s... \n",
" void *shmalloc(size_t) C void *shmalloc(size_t) C \n",
" void shmem_longlong_put(long long *, const long... void shmem_longlong_put(long long *, const lon... \n",
" void shfree(void *) C void shfree(void *) C \n",
" void shmem_longlong_sum_to_all(long long *, con... void shmem_longlong_sum_to_all(long long *, co... \n",
" void shmem_finalize(void) C void shmem_finalize(void) C \n",
"1 0 0 .TAU application .TAU application \n",
" void shmem_init(void) C void shmem_init(void) C \n",
" int shmem_n_pes(void) C int shmem_n_pes(void) C \n",
" int shmem_my_pe(void) C int shmem_my_pe(void) C \n",
" void shmem_barrier_all(void) C void shmem_barrier_all(void) C \n",
" void shmem_int_sum_to_all(int *, const int *, i... void shmem_int_sum_to_all(int *, const int *, ... \n",
" long long shmem_longlong_fadd(long long *, long... long long shmem_longlong_fadd(long long *, lon... \n",
" void shmem_longlong_p(long long *, long long, i... void shmem_longlong_p(long long *, long long, ... \n",
" void shmem_broadcast64(void *, const void *, si... void shmem_broadcast64(void *, const void *, s... \n",
" void *shmalloc(size_t) C void *shmalloc(size_t) C \n",
" void shmem_longlong_put(long long *, const long... void shmem_longlong_put(long long *, const lon... \n",
" void shfree(void *) C void shfree(void *) C \n",
" void shmem_longlong_sum_to_all(long long *, con... void shmem_longlong_sum_to_all(long long *, co... \n",
" void shmem_finalize(void) C void shmem_finalize(void) C \n",
"2 0 0 .TAU application .TAU application \n",
" void shmem_init(void) C void shmem_init(void) C \n",
"... ... \n",
"61 0 0 void shmem_longlong_sum_to_all(long long *, con... void shmem_longlong_sum_to_all(long long *, co... \n",
" void shmem_finalize(void) C void shmem_finalize(void) C \n",
"62 0 0 .TAU application .TAU application \n",
" void shmem_init(void) C void shmem_init(void) C \n",
" int shmem_n_pes(void) C int shmem_n_pes(void) C \n",
" int shmem_my_pe(void) C int shmem_my_pe(void) C \n",
" void shmem_barrier_all(void) C void shmem_barrier_all(void) C \n",
" void shmem_int_sum_to_all(int *, const int *, i... void shmem_int_sum_to_all(int *, const int *, ... \n",
" long long shmem_longlong_fadd(long long *, long... long long shmem_longlong_fadd(long long *, lon... \n",
" void shmem_longlong_p(long long *, long long, i... void shmem_longlong_p(long long *, long long, ... \n",
" void shmem_broadcast64(void *, const void *, si... void shmem_broadcast64(void *, const void *, s... \n",
" void *shmalloc(size_t) C void *shmalloc(size_t) C \n",
" void shmem_longlong_put(long long *, const long... void shmem_longlong_put(long long *, const lon... \n",
" void shfree(void *) C void shfree(void *) C \n",
" void shmem_longlong_sum_to_all(long long *, con... void shmem_longlong_sum_to_all(long long *, co... \n",
" void shmem_finalize(void) C void shmem_finalize(void) C \n",
"63 0 0 .TAU application .TAU application \n",
" void shmem_init(void) C void shmem_init(void) C \n",
" int shmem_n_pes(void) C int shmem_n_pes(void) C \n",
" int shmem_my_pe(void) C int shmem_my_pe(void) C \n",
" void shmem_barrier_all(void) C void shmem_barrier_all(void) C \n",
" void shmem_int_sum_to_all(int *, const int *, i... void shmem_int_sum_to_all(int *, const int *, ... \n",
" long long shmem_longlong_fadd(long long *, long... long long shmem_longlong_fadd(long long *, lon... \n",
" void shmem_longlong_p(long long *, long long, i... void shmem_longlong_p(long long *, long long, ... \n",
" void shmem_broadcast64(void *, const void *, si... void shmem_broadcast64(void *, const void *, s... \n",
" void *shmalloc(size_t) C void *shmalloc(size_t) C \n",
" void shmem_longlong_put(long long *, const long... void shmem_longlong_put(long long *, const lon... \n",
" void shfree(void *) C void shfree(void *) C \n",
" void shmem_longlong_sum_to_all(long long *, con... void shmem_longlong_sum_to_all(long long *, co... \n",
" void shmem_finalize(void) C void shmem_finalize(void) C \n",
"\n",
" Timer Location \\\n",
"Node Context Thread Timer \n",
"0 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
" int shmem_n_pes(void) C None \n",
" int shmem_my_pe(void) C None \n",
" void shmem_barrier_all(void) C None \n",
" void shmem_int_sum_to_all(int *, const int *, i... None \n",
" long long shmem_longlong_fadd(long long *, long... None \n",
" void shmem_longlong_p(long long *, long long, i... None \n",
" void shmem_broadcast64(void *, const void *, si... None \n",
" void *shmalloc(size_t) C None \n",
" void shmem_longlong_put(long long *, const long... None \n",
" void shfree(void *) C None \n",
" void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"1 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
" int shmem_n_pes(void) C None \n",
" int shmem_my_pe(void) C None \n",
" void shmem_barrier_all(void) C None \n",
" void shmem_int_sum_to_all(int *, const int *, i... None \n",
" long long shmem_longlong_fadd(long long *, long... None \n",
" void shmem_longlong_p(long long *, long long, i... None \n",
" void shmem_broadcast64(void *, const void *, si... None \n",
" void *shmalloc(size_t) C None \n",
" void shmem_longlong_put(long long *, const long... None \n",
" void shfree(void *) C None \n",
" void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"2 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
"... ... \n",
"61 0 0 void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"62 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
" int shmem_n_pes(void) C None \n",
" int shmem_my_pe(void) C None \n",
" void shmem_barrier_all(void) C None \n",
" void shmem_int_sum_to_all(int *, const int *, i... None \n",
" long long shmem_longlong_fadd(long long *, long... None \n",
" void shmem_longlong_p(long long *, long long, i... None \n",
" void shmem_broadcast64(void *, const void *, si... None \n",
" void *shmalloc(size_t) C None \n",
" void shmem_longlong_put(long long *, const long... None \n",
" void shfree(void *) C None \n",
" void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"63 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
" int shmem_n_pes(void) C None \n",
" int shmem_my_pe(void) C None \n",
" void shmem_barrier_all(void) C None \n",
" void shmem_int_sum_to_all(int *, const int *, i... None \n",
" long long shmem_longlong_fadd(long long *, long... None \n",
" void shmem_longlong_p(long long *, long long, i... None \n",
" void shmem_broadcast64(void *, const void *, si... None \n",
" void *shmalloc(size_t) C None \n",
" void shmem_longlong_put(long long *, const long... None \n",
" void shfree(void *) C None \n",
" void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"\n",
" Timer Type \n",
"Node Context Thread Timer \n",
"0 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
" int shmem_n_pes(void) C None \n",
" int shmem_my_pe(void) C None \n",
" void shmem_barrier_all(void) C None \n",
" void shmem_int_sum_to_all(int *, const int *, i... None \n",
" long long shmem_longlong_fadd(long long *, long... None \n",
" void shmem_longlong_p(long long *, long long, i... None \n",
" void shmem_broadcast64(void *, const void *, si... None \n",
" void *shmalloc(size_t) C None \n",
" void shmem_longlong_put(long long *, const long... None \n",
" void shfree(void *) C None \n",
" void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"1 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
" int shmem_n_pes(void) C None \n",
" int shmem_my_pe(void) C None \n",
" void shmem_barrier_all(void) C None \n",
" void shmem_int_sum_to_all(int *, const int *, i... None \n",
" long long shmem_longlong_fadd(long long *, long... None \n",
" void shmem_longlong_p(long long *, long long, i... None \n",
" void shmem_broadcast64(void *, const void *, si... None \n",
" void *shmalloc(size_t) C None \n",
" void shmem_longlong_put(long long *, const long... None \n",
" void shfree(void *) C None \n",
" void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"2 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
"... ... \n",
"61 0 0 void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"62 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
" int shmem_n_pes(void) C None \n",
" int shmem_my_pe(void) C None \n",
" void shmem_barrier_all(void) C None \n",
" void shmem_int_sum_to_all(int *, const int *, i... None \n",
" long long shmem_longlong_fadd(long long *, long... None \n",
" void shmem_longlong_p(long long *, long long, i... None \n",
" void shmem_broadcast64(void *, const void *, si... None \n",
" void *shmalloc(size_t) C None \n",
" void shmem_longlong_put(long long *, const long... None \n",
" void shfree(void *) C None \n",
" void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"63 0 0 .TAU application None \n",
" void shmem_init(void) C None \n",
" int shmem_n_pes(void) C None \n",
" int shmem_my_pe(void) C None \n",
" void shmem_barrier_all(void) C None \n",
" void shmem_int_sum_to_all(int *, const int *, i... None \n",
" long long shmem_longlong_fadd(long long *, long... None \n",
" void shmem_longlong_p(long long *, long long, i... None \n",
" void shmem_broadcast64(void *, const void *, si... None \n",
" void *shmalloc(size_t) C None \n",
" void shmem_longlong_put(long long *, const long... None \n",
" void shfree(void *) C None \n",
" void shmem_longlong_sum_to_all(long long *, con... None \n",
" void shmem_finalize(void) C None \n",
"\n",
"[896 rows x 9 columns]"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"profile.interval_data()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We can manipulate this using normal Pandas functions. For example, here are the timers on (0,0,0) sorted by number of calls descending."
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Calls</th>\n",
" <th>Subcalls</th>\n",
" <th>Exclusive</th>\n",
" <th>Inclusive</th>\n",
" <th>ProfileCalls</th>\n",
" <th>Group</th>\n",
" <th>Timer Name</th>\n",
" <th>Timer Location</th>\n",
" <th>Timer Type</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Timer</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>void shmem_barrier_all(void) C</th>\n",
" <td>131107</td>\n",
" <td>0</td>\n",
" <td>2194807</td>\n",
" <td>2194807</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_barrier_all(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>long long shmem_longlong_fadd(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>222176</td>\n",
" <td>222176</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>long long shmem_longlong_fadd(long long *, lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_p(long long *, long long, int) C</th>\n",
" <td>65536</td>\n",
" <td>0</td>\n",
" <td>38757</td>\n",
" <td>38757</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_p(long long *, long long, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_put(long long *, const long long *, size_t, int) C</th>\n",
" <td>640</td>\n",
" <td>0</td>\n",
" <td>4576</td>\n",
" <td>4576</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_put(long long *, const lon...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_int_sum_to_all(int *, const int *, int, int, int, int, int *, long *) C</th>\n",
" <td>3</td>\n",
" <td>0</td>\n",
" <td>3108</td>\n",
" <td>3108</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_int_sum_to_all(int *, const int *, ...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_n_pes(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_n_pes(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_my_pe(void) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>int shmem_my_pe(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void *shmalloc(size_t) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>18</td>\n",
" <td>18</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void *shmalloc(size_t) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shfree(void *) C</th>\n",
" <td>2</td>\n",
" <td>0</td>\n",
" <td>915</td>\n",
" <td>915</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shfree(void *) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>.TAU application</th>\n",
" <td>1</td>\n",
" <td>262834</td>\n",
" <td>54530</td>\n",
" <td>6493783</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>.TAU application</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_init(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>3974524</td>\n",
" <td>3974524</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_init(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_broadcast64(void *, const void *, size_t, int, int, int, int, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>109</td>\n",
" <td>109</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_broadcast64(void *, const void *, s...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_sum_to_all(long long *, const long long *, int, int, int, int, long long *, long *) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>22</td>\n",
" <td>22</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_longlong_sum_to_all(long long *, co...</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_finalize(void) C</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>239</td>\n",
" <td>239</td>\n",
" <td>0</td>\n",
" <td>GROUP=\"TAU_USER\"</td>\n",
" <td>void shmem_finalize(void) C</td>\n",
" <td>None</td>\n",
" <td>None</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Calls Subcalls \\\n",
"Timer \n",
"void shmem_barrier_all(void) C 131107 0 \n",
"long long shmem_longlong_fadd(long long *, long... 65536 0 \n",
"void shmem_longlong_p(long long *, long long, i... 65536 0 \n",
"void shmem_longlong_put(long long *, const long... 640 0 \n",
"void shmem_int_sum_to_all(int *, const int *, i... 3 0 \n",
"int shmem_n_pes(void) C 2 0 \n",
"int shmem_my_pe(void) C 2 0 \n",
"void *shmalloc(size_t) C 2 0 \n",
"void shfree(void *) C 2 0 \n",
".TAU application 1 262834 \n",
"void shmem_init(void) C 1 0 \n",
"void shmem_broadcast64(void *, const void *, si... 1 0 \n",
"void shmem_longlong_sum_to_all(long long *, con... 1 0 \n",
"void shmem_finalize(void) C 1 0 \n",
"\n",
" Exclusive Inclusive \\\n",
"Timer \n",
"void shmem_barrier_all(void) C 2194807 2194807 \n",
"long long shmem_longlong_fadd(long long *, long... 222176 222176 \n",
"void shmem_longlong_p(long long *, long long, i... 38757 38757 \n",
"void shmem_longlong_put(long long *, const long... 4576 4576 \n",
"void shmem_int_sum_to_all(int *, const int *, i... 3108 3108 \n",
"int shmem_n_pes(void) C 2 2 \n",
"int shmem_my_pe(void) C 0 0 \n",
"void *shmalloc(size_t) C 18 18 \n",
"void shfree(void *) C 915 915 \n",
".TAU application 54530 6493783 \n",
"void shmem_init(void) C 3974524 3974524 \n",
"void shmem_broadcast64(void *, const void *, si... 109 109 \n",
"void shmem_longlong_sum_to_all(long long *, con... 22 22 \n",
"void shmem_finalize(void) C 239 239 \n",
"\n",
" ProfileCalls \\\n",
"Timer \n",
"void shmem_barrier_all(void) C 0 \n",
"long long shmem_longlong_fadd(long long *, long... 0 \n",
"void shmem_longlong_p(long long *, long long, i... 0 \n",
"void shmem_longlong_put(long long *, const long... 0 \n",
"void shmem_int_sum_to_all(int *, const int *, i... 0 \n",
"int shmem_n_pes(void) C 0 \n",
"int shmem_my_pe(void) C 0 \n",
"void *shmalloc(size_t) C 0 \n",
"void shfree(void *) C 0 \n",
".TAU application 0 \n",
"void shmem_init(void) C 0 \n",
"void shmem_broadcast64(void *, const void *, si... 0 \n",
"void shmem_longlong_sum_to_all(long long *, con... 0 \n",
"void shmem_finalize(void) C 0 \n",
"\n",
" Group \\\n",
"Timer \n",
"void shmem_barrier_all(void) C GROUP=\"TAU_USER\" \n",
"long long shmem_longlong_fadd(long long *, long... GROUP=\"TAU_USER\" \n",
"void shmem_longlong_p(long long *, long long, i... GROUP=\"TAU_USER\" \n",
"void shmem_longlong_put(long long *, const long... GROUP=\"TAU_USER\" \n",
"void shmem_int_sum_to_all(int *, const int *, i... GROUP=\"TAU_USER\" \n",
"int shmem_n_pes(void) C GROUP=\"TAU_USER\" \n",
"int shmem_my_pe(void) C GROUP=\"TAU_USER\" \n",
"void *shmalloc(size_t) C GROUP=\"TAU_USER\" \n",
"void shfree(void *) C GROUP=\"TAU_USER\" \n",
".TAU application GROUP=\"TAU_USER\" \n",
"void shmem_init(void) C GROUP=\"TAU_USER\" \n",
"void shmem_broadcast64(void *, const void *, si... GROUP=\"TAU_USER\" \n",
"void shmem_longlong_sum_to_all(long long *, con... GROUP=\"TAU_USER\" \n",
"void shmem_finalize(void) C GROUP=\"TAU_USER\" \n",
"\n",
" Timer Name \\\n",
"Timer \n",
"void shmem_barrier_all(void) C void shmem_barrier_all(void) C \n",
"long long shmem_longlong_fadd(long long *, long... long long shmem_longlong_fadd(long long *, lon... \n",
"void shmem_longlong_p(long long *, long long, i... void shmem_longlong_p(long long *, long long, ... \n",
"void shmem_longlong_put(long long *, const long... void shmem_longlong_put(long long *, const lon... \n",
"void shmem_int_sum_to_all(int *, const int *, i... void shmem_int_sum_to_all(int *, const int *, ... \n",
"int shmem_n_pes(void) C int shmem_n_pes(void) C \n",
"int shmem_my_pe(void) C int shmem_my_pe(void) C \n",
"void *shmalloc(size_t) C void *shmalloc(size_t) C \n",
"void shfree(void *) C void shfree(void *) C \n",
".TAU application .TAU application \n",
"void shmem_init(void) C void shmem_init(void) C \n",
"void shmem_broadcast64(void *, const void *, si... void shmem_broadcast64(void *, const void *, s... \n",
"void shmem_longlong_sum_to_all(long long *, con... void shmem_longlong_sum_to_all(long long *, co... \n",
"void shmem_finalize(void) C void shmem_finalize(void) C \n",
"\n",
" Timer Location Timer Type \n",
"Timer \n",
"void shmem_barrier_all(void) C None None \n",
"long long shmem_longlong_fadd(long long *, long... None None \n",
"void shmem_longlong_p(long long *, long long, i... None None \n",
"void shmem_longlong_put(long long *, const long... None None \n",
"void shmem_int_sum_to_all(int *, const int *, i... None None \n",
"int shmem_n_pes(void) C None None \n",
"int shmem_my_pe(void) C None None \n",
"void *shmalloc(size_t) C None None \n",
"void shfree(void *) C None None \n",
".TAU application None None \n",
"void shmem_init(void) C None None \n",
"void shmem_broadcast64(void *, const void *, si... None None \n",
"void shmem_longlong_sum_to_all(long long *, con... None None \n",
"void shmem_finalize(void) C None None "
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"profile.interval_data().loc[0,0,0].sort_values('Calls', ascending=False)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Find the mean exclusive time for each timer across all (node, context, thread) indices."
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Exclusive</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Timer</th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>.TAU application</th>\n",
" <td>5.818211e+04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_init(void) C</th>\n",
" <td>3.902098e+06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_n_pes(void) C</th>\n",
" <td>1.562500e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>int shmem_my_pe(void) C</th>\n",
" <td>1.078125e+00</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_barrier_all(void) C</th>\n",
" <td>2.160057e+06</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_int_sum_to_all(int *, const int *, int, int, int, int, int *, long *) C</th>\n",
" <td>2.859750e+03</td>\n",
" </tr>\n",
" <tr>\n",
" <th>long long shmem_longlong_fadd(long long *, long long, int) C</th>\n",
" <td>2.407764e+05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_p(long long *, long long, int) C</th>\n",
" <td>4.205644e+04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_broadcast64(void *, const void *, size_t, int, int, int, int, long *) C</th>\n",
" <td>2.562969e+02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void *shmalloc(size_t) C</th>\n",
" <td>2.093750e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_put(long long *, const long long *, size_t, int) C</th>\n",
" <td>1.089719e+04</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shfree(void *) C</th>\n",
" <td>9.131719e+02</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_longlong_sum_to_all(long long *, const long long *, int, int, int, int, long long *, long *) C</th>\n",
" <td>1.981250e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>void shmem_finalize(void) C</th>\n",
" <td>2.581562e+02</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Exclusive\n",
"Timer \n",
".TAU application 5.818211e+04\n",
"void shmem_init(void) C 3.902098e+06\n",
"int shmem_n_pes(void) C 1.562500e+00\n",
"int shmem_my_pe(void) C 1.078125e+00\n",
"void shmem_barrier_all(void) C 2.160057e+06\n",
"void shmem_int_sum_to_all(int *, const int *, i... 2.859750e+03\n",
"long long shmem_longlong_fadd(long long *, long... 2.407764e+05\n",
"void shmem_longlong_p(long long *, long long, i... 4.205644e+04\n",
"void shmem_broadcast64(void *, const void *, si... 2.562969e+02\n",
"void *shmalloc(size_t) C 2.093750e+01\n",
"void shmem_longlong_put(long long *, const long... 1.089719e+04\n",
"void shfree(void *) C 9.131719e+02\n",
"void shmem_longlong_sum_to_all(long long *, con... 1.981250e+01\n",
"void shmem_finalize(void) C 2.581562e+02"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"profile.interval_data().groupby('Timer').agg({'Exclusive': 'mean'})"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Log-scale bar plot of mean exclusive time using Matplotlib."
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x1140dbbe0>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXoAAAL5CAYAAAC+bO97AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzsnXm4XFWVvt+PSRAIk6CYgEFAFBklTErjgAioAVoBEwQFIbSiCK2tgO2vGRptxZFRRZkEmQIiUwQUZZIxwYTBiNAMEkFBoCEoCMj3+2Ofyq17U3c8e9e9VVnv89Rzc3bdWvuk6txV+6y91rdkmyAIgqB7WWy0TyAIgiAoSzj6IAiCLiccfRAEQZcTjj4IgqDLCUcfBEHQ5YSjD4Ig6HLC0QdBEHQ54eiDIAi6nHD0QRAEXc4So30CAK95zWs8ceLE0T6NIAiCjmLWrFl/tb3qYL83qo5e0mRg8jrrrMPMmTNH81SCIAg6DkkPD+X3RjV0Y/sy2wessMIKo3kaQRAEXc2oOnpJkyWd8swzz4zmaQRBEHQ1saIPgiDocsZMjD4Igu7jpZdeYt68ebzwwgujfSodzdJLL82ECRNYcsklR/R6jQU9+kmTJjk2Y4Og+3jwwQdZfvnlWWWVVZA02qfTkdjmySefZP78+ay11lq9npM0y/akwWxEjD4IgmK88MIL4eRrIolVVlml1l1RxOiDIChKOPn61H0PozI2CIKgyxkTlbFBECwaTDzsiqz2HvraBwb9ncUXX5wNN9xwwfGUKVM47LDDhjXPGWecwcyZMznxxBOHfY7vf//7Oeecc1hxxRWH/dpcLNJZN8O96IZyUQVBMLZYZpllmD179qjNP2PGjFGbu0HE6IMgWOR45plnWG+99bj33nsBmDp1Kj/84Q8BuPLKK3nb297GxhtvzHbbbbfQa/fZZx8uvPDCBcfLLbccAI899hjbbrstm2yyCRtssAE33HADABMnTuSvf/0rhx56KCeffPKC1x155JF861vfAuAb3/gGm2++ORtttBFHHHFE9v9vxOiDIOhqnn/+eTbZZJMFj/PPP58VVliBE088kX322YfzzjuPp59+mmnTpvHEE08wbdo0LrroIubMmcP06dOHPM8555zDDjvswOzZs5kzZw6bbLJJr+enTJnC+eefv+D4ggsuYPfdd+fqq6/mvvvu47bbbmP27NnMmjWL66+/Ptv/Hxbx0E0QBN1Pf6Gb7bffnunTp/PpT3+aOXPmAHDLLbew7bbbLshXX3nllYc8z+abb84nPvEJXnrpJXbdddeFHP2mm27K448/zqOPPsoTTzzBSiutxJprrsnxxx/P1VdfzaabbgrAc889x3333ce222470v/yQkToJgiCRZJXXnmFuXPnsswyy/DUU08BqThpsFTGJZZYgldeeWXB77/44osAbLvttlx//fWMHz+evffemx//+McLvXa33Xbjwgsv5Pzzz2fKlCkLbBx++OHMnj2b2bNnc//997Pffvvl/K9G6CYIgkWT73znO7zlLW/h3HPPXbAS33rrrbnuuut48MEHARZ8ATQzceJEZs2aBcAll1zCSy+9BMDDDz/MaqutxrRp09hvv/244447FnrtlClTOO+887jwwgvZbbfdANhhhx047bTTeO655wD405/+xOOPP571/xrplUEQtI3RyFxrxOgb7LjjjnziE5/gRz/6EbfddhvLL7882267LccccwxHHXUUp5xyCh/60Id45ZVXWG211fjFL37Ry960adPYZZdd2GKLLdhuu+1YdtllAbj22mv5xje+wZJLLslyyy3XckX/1re+lfnz5zN+/HhWX311AN73vvcxd+5ctt56ayBt7p599tmsttpq2d6DRVrrJtIrg6Asc+fO5S1vecton0ZX0Oq9HKrWTazog36JL8Ig6A5C1CwIgqDLiaybIAiKMhbCw51O3fcwsm6CICjG0ksvzZNPPhnOvgYNPfqll156xDYiRh8EQTEmTJjAvHnzeOKJJ0b7VDqaRoepkRKOPgiCYiy55JILdUUK2k+EboIgCLqc7Ct6SYsB/w2MA2baPjP3HEEQBMHQGdKKXtJpkh6XdHef8R0l3SvpfkkNJf9dgPHAS8C8vKcbBEEQDJehhm7OAHZsHpC0OHASsBOwPjBV0vrAesDNtj8HfCrfqQZBEAQjYUiO3vb1QF91ny2A+20/YPtF4DzSan4e8HT1O//sz6akAyTNlDQzduSDIAjKUWczdjzwSNPxvGrsp8AOkk4A+lXPt32K7Um2J6266qo1TiMIgiAYiDqbsa1Em23778CQxJSj8UgQBEF56qzo5wFrNB1PAB6tdzpBEARBbuo4+tuBdSWtJWkpYApw6XAMhNZNEARBeYaaXnkucDOwnqR5kvaz/TLwGeAqYC5wge17hjN5qFcGQRCUZ0gxettT+xmfAcwY6eS2LwMumzRp0rSR2giCIAgGJvTogyAIupzQow+CIOhyQtQsCIKgy4nQTRAEQZcToZsgCIIuJ0I3QRAEXU6EboIgCLqcCN0EQRB0ORG6CYIg6HLC0QdBEHQ5EaMPgiDociJGHwRB0OVE6CYIgqDLqdNhKgjGNBMPu2LIv/vQ1z5Q8EyCYHSJFX0QBEGXE5uxQRAEXU5sxgZBEHQ5EboJgiDocsLRB0EQdDnh6IMgCLqccPRBEARdTnZHL+ldkm6Q9H1J78ptPwiCIBgeQ3L0kk6T9Liku/uM7yjpXkn3SzqsGjbwHLA0MC/v6QZBEATDZagr+jOAHZsHJC0OnATsBKwPTJW0PnCD7Z2AQ4Gj8p1qEARBMBKG5OhtXw881Wd4C+B+2w/YfhE4D9jF9ivV808Dr8p2pkEQBMGIqKN1Mx54pOl4HrClpA8BOwArAif292JJBwAHAKy55po1TiMIgiAYiDqOXi3GbPunwE8He7HtUyQ9BkxeaqmlNqtxHkEQBMEA1Mm6mQes0XQ8AXh0OAZCAiEIgqA8dRz97cC6ktaStBQwBbh0OAZC1CwIgqA8Q02vPBe4GVhP0jxJ+9l+GfgMcBUwF7jA9j3DmTxW9EEQBOUZUoze9tR+xmcAM0Y6uaTJwOR11llnpCaCIAiCQQiZ4iAIgi5nVFsJDraiH04rOIh2cEEQBK2IFX0QBEGXE60EgyAIupxY0QdBEHQ5oUcfBEHQ5YzpzdggGKtEokDQSUToJgiCoMuJ0E0QBEGXE44+CIKgy4n0yiAIgi4nYvRBEARdToRugiAIupxw9EEQBF1OOPogCIIuJxx9EARBlxNZN0EQBF1OZN0EQRB0ORG6CYIg6HLC0QdBEHQ54eiDIAi6nCKOXtKykmZJ+mAJ+0EQBMHQGZKjl3SapMcl3d1nfEdJ90q6X9JhTU8dClyQ80SDIAiCkTHUFf0ZwI7NA5IWB04CdgLWB6ZKWl/Se4HfAX/JeJ5BEATBCBlShynb10ua2Gd4C+B+2w8ASDoP2AVYDliW5PyflzTD9ivZzjgIgjFPdOAaW9RpJTgeeKTpeB6wpe3PAEjaB/hrf05e0gHAAQBrrrlmjdMIgiAIBqLOZqxajHnBP+wzbF/e34ttn2J7ku1Jq666ao3TCIIgCAaijqOfB6zRdDwBeHQ4BkICIQiCoDx1HP3twLqS1pK0FDAFuDTPaQVBEAS5GGp65bnAzcB6kuZJ2s/2y8BngKuAucAFtu8ZzuShdRMEQVCeoWbdTO1nfAYwY6STS5oMTF5nnXVGaiIIgiAYhFCvDIIg6HJCjz4IgqDLiRV9EARBlxPqlUEQBF1OhG6CIAi6nAjdBEEQdDkRugmCIOhyInQTBEHQ5UToJgiCoMuJ0E0QBEGXE44+CIKgy6nTeKQ2oXWzaBNdiIKgPUSMPgiCoMuJ0E0QBEGXE44+CIKgywlHHwRB0OVEwVQQBEGXE5uxQRAEXU6EboIgCLqccPRBEARdTjj6IAiCLiccfRAEQZeT3dFLeouk70u6UNKnctsPgiAIhseQHL2k0yQ9LunuPuM7SrpX0v2SDgOwPdf2J4E9gEn5TzkIgiAYDkNd0Z8B7Ng8IGlx4CRgJ2B9YKqk9avndgZuBK7JdqZBEATBiBiSo7d9PfBUn+EtgPttP2D7ReA8YJfq9y+1/XbgozlPNgiCIBg+dWSKxwOPNB3PA7aU9C7gQ8CrgBn9vVjSAcABAGuuuWaN0wiCIAgGoo6jV4sx274WuHawF9s+RdJjwOSlllpqsxrnEQTBIkb0MhgedbJu5gFrNB1PAB4djoGQQAiCIChPHUd/O7CupLUkLQVMAS4djoEQNQuCICjPUNMrzwVuBtaTNE/SfrZfBj4DXAXMBS6wfc9wJo8VfRAEQXmGFKO3PbWf8RkMsOE6GNEzNgiCoDwhUxwEQdDlROORIAiCLidW9EEQBF1OrOiDIAi6nFjRB0EQdDmhRx8EQdDlROgmCIKgy4nQTRAEQZcToZsgCIIuJxx9EARBlxMx+iAIgi4nYvRBEARdTp3GI0EQFCIaa3Q37f58I0YfBEHQ5YSjD4Ig6HLC0QdBEHQ5kXUTBEHQ5UTWTRAEQZcToZsgCIIuJxx9EARBlxOOPgiCoMsp4ugl7Srph5IukfS+EnMEQRAEQ2PIjl7SaZIel3R3n/EdJd0r6X5JhwHY/pntacA+wEeynnEQBEEwLIazoj8D2LF5QNLiwEnATsD6wFRJ6zf9yper54MgCIJRYsiO3vb1wFN9hrcA7rf9gO0XgfOAXZT4OvBz23fkO90gCIJguNSN0Y8HHmk6nleNHQS8F9hN0idbvVDSAZJmSpr5xBNP1DyNIAiCoD/qqleqxZhtHw8cP9ALbZ8CnAIwadIk1zyPIAiCoB/qrujnAWs0HU8AHh3qi0MCIQiCoDx1Hf3twLqS1pK0FDAFuLT+aQVBEAS5GE565bnAzcB6kuZJ2s/2y8BngKuAucAFtu8Zqs3QugmCICjPkGP0tqf2Mz4DmDGSySVNBiavs846I3l5EARBMARCvTIIgqDLCT36IAiCLidW9EEQBF1OqFcGQRB0ORG6CYIg6HIidBMEQdDlROgmCIKgy4nQTRAEQZcToZsgCIIuJ0I3QRAEXU44+iAIgi4nYvRBEARdTsTogyAIupwI3QRBEHQ54eiDIAi6nLo9Y4Mg6EAmHnbFsH7/oa99oNCZBO1gVB19NB4JgmAs0m1fhLEZGwRB0OVEjD4IgqDLCUcfBEHQ5YSjD4Ig6HLC0QdBEHQ52R29pDdKOlXShbltB0EQBMNnSI5e0mmSHpd0d5/xHSXdK+l+SYcB2H7A9n4lTjYIgiAYPkNd0Z8B7Ng8IGlx4CRgJ2B9YKqk9bOeXRAEQVCbITl629cDT/UZ3gK4v1rBvwicB+yS+fyCIAiCmtSJ0Y8HHmk6ngeMl7SKpO8Dm0o6vL8XSzpA0kxJM5944okapxEEQRAMRB0JBLUYs+0ngU8O9mLbp0h6DJi81FJLbVbjPIIgCIIBqLOinwes0XQ8AXh0OAZCAiEIgqA8dRz97cC6ktaStBQwBbh0OAaiw1QQBEF5hppeeS5wM7CepHmS9rP9MvAZ4CpgLnCB7XvKnWoQBEEwEoYUo7c9tZ/xGcCMkU5u+zLgskmTJk0bqY0gCIJgYKI5eBAEQZcTevRBEARdToiaBUEQdDkRugmCIOhyInQTBEHQ5UToJgiCoMuJ0E0QBEGXE6GbIAiCLidCN0EQBF1OOPogCIIuJ2L0QRAEXU7E6IMgCLqcOo1HgkGYeNgVw/r9h772gUJnEgTBokzE6IMgCLqccPRBEARdzqiGbiRNBiavs846o3kaHUuEhoIgGAqxGRsEQdDlROgmCIKgywlHHwRB0OWEow+CIOhywtEHQRB0OdmzbiQtC5wMvAhca/snuecIgiAIhs6QVvSSTpP0uKS7+4zvKOleSfdLOqwa/hBwoe1pwM6ZzzcIgiAYJkMN3ZwB7Ng8IGlx4CRgJ2B9YKqk9YEJwCPVr/0zz2kGQRAEI2VIjt729cBTfYa3AO63/YDtF4HzgF2AeSRnP2T7QRAEQTlke2i/KE0ELre9QXW8G7Cj7f2r472BLYFDgROBF4Ab+4vRSzoAOKA6XA+4dxjn/Rrgr8P4/eES9rvXfiefe9gP+315g+1VB/ulOpuxajFm238D9h3sxbZPAU4Z0cTSTNuTRvLasL9o2+/kcw/7YX+k1AmtzAPWaDqeADxa73SCIAiC3NRx9LcD60paS9JSwBTg0jynFQRBEORiqOmV5wI3A+tJmidpP9svA58BrgLmAhfYvqfcqfZiRCGfsB/2C9sO+2F/TNof8mZsEARB0JlE+mMQBEGXE44+CIKgy1mkHb2kHap6gL7jH5W0fQfY31zSTi3Gd5a0WQb7q1bVzn3H3ypp0NzdIdgvev6lacP7X/r6WUfSO1qM/4uktTPYL/3+FDv/Nrw3RT/bhbA95h/AO4BfAH8AHgAeBB7IYPcWYNUW468Dbu4A+9cCE1uMrwP8KoP984B3thjfATinA87/WOCTLcb/Hfh6B5x/6evncmCjFuOTgMs64P0pdv5teG+KfrZ9H6PaM3YYnEr645xFXv2cV9t+ou+g7T9XKpxj3f4qth9qYf9+SatksL+h7eta2L9K0rcy2C99/h8ENmgxfhxwJ6mKuw6lz7/09TPR9p0t7M+sKuHrUvr9KXn+pd+b0p9tLzrF0T9j++cF7C4taQmnVNEFSFoSWKYD7A9kI8fFsuQInxsqpc/ftl9pMfiKpFaV3cOl9PkXvz4HeK4Trs+S51/6vSn92faiU2L0v5b0DUlbS3pb45HB7k+BHzZ/g1b//n713Fi3/0tJX+nrtCQdBfwqg/37JL2/72AVd30gg/3S5/93Sev2HazGns9gv/T5l75+bpc0re+gpP1Id891Kf3+lDz/0u9N6c+2Fx2RRy/p1y2Gbfs9Ne0uARwD7A88XA2vSQoV/T/bL41x+8sCPyIpic6uhjcGZgL7236upv03kWKVN9FzcU8CtgY+aPsPNe2XPv+dgBNIn0Hz+R8OHGJ7Rk37pc+/9PXzWuBiUpOg5vdnKeBfbf+5pv3S70+x82/De1P0s11ovk5w9KWRtAxpgwiS9HKO1V477b8ReGt1eI/tHKvthu1XAXvSE+u+h7QR+0LGOUqe/wbAF+g5/7uBb9q+K+Mcxc6/sl/6+nk3TZ+v7Ryr7Wb7pd+fYuffhvem6Ge7YJ5OcPSSVgCOALathq4Djrb9zOidVRAEQWfQKTH604D5wB7V41ng9FE9oyAIgg6hU1b0s21vMthYEARBsDCdkl75vKRtbN8IUFWsZYtlSVqMtEn0+sruPbb/0in2qzlWarL/UKu0wrFMnP+AtotfP9U8ywIv2M7e67kdn2/h8y9iu22fbYes6DcBzgRWIHW2egrYx/acmnbXJhXNvBe4D3iClD/7JuDvwA+AM0d6UbbB/grAp4GppGyAhv3XkirvTrbdKmNpOHNsDewF/AuwOulivBu4Aji7zj5Jm85/aVLh1L/Q88d0N3CFa8pqlz7/Nlw/i5H6SHwU2Bz4B/Cqap4ZwCm276tx/qXfn2Ln34b3puhnuxC5S21LPoBxwLiM9s4lbfCqxXOrAYcAHx/D9n8B7A2s2OK5zYDvAvvVsP9zUrrXziQnuQSwHPA24POkEvedx/D5H0lKjfsWKXPovSSn/zngsmr+hcrcM53/pAznX/r6uQ74f8BGwGJN4ysDHwYuAvYaw+9PsfNvw3tT9LPt+xjTK3pJe9k+W9LnWj1v+9vtPqdFCUmvsT1go+Kh/M5oIekDtq8Y4PnVgDVtz2zjaY0ZJC3pQfK1h/I7o0XJ8+/096YvYz1G36gaW77Fc7W/oSR9aKDnbdeqUGuD/QGrg23fUcf+UBx4XScv6WDbx0k6yPYJdWz1peHkJe1ue3qfeRtjj9edR9I1trcbbGyEto+x/WVJR9v+r7r2mmk4KUln2d67z7xn2d47hyMr9f7YfknSnrbPkTTF9nmtfmes2YbyvqEvY9rR2/5B9c9f2v5N83NqISE6AiZXP1cD3k5PWfa7SWGJum92afsNYbGlSbfCc0h7GBsBtwLb1DEuaT4DfKHaHlfHfsVzkr4APJnBVn8cDkwfwtiwqOL/rwZeU202Nkr9x5FCXTm4XdJJpJadpXhr84GkxUmhs1q06f0ZL2kPYEIme+2yXdo39GJMO/omTiDFhQcbGxa29wWQdDmwvu3HquPVgZPq2G6T/XdX9s4DDnBV7VlVg/5HBvvLV/aOBv4MnEX6Y/0ore+yhoWkI0h3bZ8FjpP0X7aPrmu3yf5OwPtJf7DHNz01Dni59auGxb+RYqmvJ+0FNBzZs2T4fKv3Z2XSZubLkjbJ/P4cDnwJWEbSs41hUtl/jt6l7Xh/lgb+Bzg25/VT0jaU9w19Gesx+q1J33aHAN9pemocSW9i40zz3G17g6bjxYA7m8fGuP2idQaSbrW95WBjI7R9DGm1uoPtL9e118f2xsAmwNFAc9hjPvBr209nmid72KnJ9nHAycCBtg8uNMf/2D58gOff6hoZSoXfny8AjwATbH+zU2w3zVHUNzQY6yv6pUhZHkvQewX5LLBQd5YaXCvpKtJOuElpVbXS+tpsf66kHwFnV/b3AuZmtP9PSR8lNSIxaYWZK5/4ets3VJo6WXFKv50j6ZySm2a2T5D0dmAiTX9Ttn+cwfzptu+VdFoGWy0ZyMlXnEWNu+fC78+jts+TNDWDrXbablDaNwBjfEXfQNIbbD88+G/WmuNDpFxrSM7n4k6xX8VCP0WPFtD1wPecSXhMqdHCcaROXwZ+Q1J/fCiH/dJU+zlHAm8gORqR1E/fmMn+WcDaJIXGxhegbX82h/3RRtJvbW9a4/Vd/f7UpbTvgc5x9KsCXyRtGi1oCOCaMsXBooGk39OiQ5ntLBvAkuaS4qxj/49pBEi6w/aIV/Td/v50AmM9dNPgJ8D5pGKXTwIfJ1WS1ULSjba3aZFd0ljx1coqaYP9C2zvIekuWmTH2N6opv0v2j5W0gn92O+UFVmpDmUN7ib1+nys4BydTLw/fSjtG/rSKY5+FdunVjnX1wHXSVqol+lwsb1N9bN2Bslo2Acam3MfLGS/EecvWlAkaeUWw/MzxtV/LekbpJS1fzQG69YZNPEa4HeSbutjf+ccxvupl3gGeNh9WtEV4sWary/6/nQibfANveiU0M0ttreqNi2OBx4FLrS9dsY5NqZ3nGyhxsBj3P5rSZocALfZrl0I1GKO5UmrjVqdgVrYfQhYA3iatKJZkbT6exyYZrtW6zYV6lDWZP+drcbdorH6CO3fQtoMvZP0/mxQ/XsV4JO2r65pv5Ey+0bbR0taE3id7dvqnfkC+0Xen3bUefQzxzOkxc/nnaGJSmnfAHSG1g1pxboC6QL/NSnWOmKNlRb2DybdXh5dPe4CDuog+3uQ2pGdCfwYeBDYLaP9DYDfVnP8sXr/35rR/vdJ6ZWN4/cB3wa2Am4d7etvtB+kbKe3Nh2vT+rH8EZgdgb73yPlbs+tjlcCbh/t//cwzv9o4EBSZt44UmLCFzPZPopUD9CwfQApVfcjwLUZ7Bf1DQvmGe0PaSw8SKujZZuOlyXlsnaK/TnAak3HqwJzMtq/CXh30/G7gJsy2p/Z31gdR0YlOkUSMVvokeG8b6x+ziel/DYe84FnM74/C70HjbFMjv6O6udvm6+pDnp/FloM5Fog9GP7lozvUVHf0Hh0RIcpSWdKWrHpeKXMecWid174P+mp4usE+4u5d6jmSfJ2D1vWTXKytq+lR4coB09JOlTSG6rHF4Gnq1L8OjKtzVpJrR61cFOc1fa4psfyzruZdq+k70l6Z/U4GfhDVXuQYx/jpeq9NizIcqstj9vG9+efkj4qaXFJi1U1H7nqPF6RtEdld7FKEqFBjrh3ad8AdM5m7Ea2/69xYPtpSSPO623B6cCtkhr5q7uS5Hk7xf6VTUUXkG4rZ2S0/4Ck/0cqnIFUkPVgRvt7knoC/4x0kd9YjS1OCkuNCFdaSbaPynCOo8k+pNDEIfS8P/9BcvLvzmD/eOBiYDVJXyEVI2atUi7MnqQ6j+PoqfPYM5Ptj1Z2T65s3wLspdTU+zMZ7Jf2DUDnbMbOAd7lqmS9ytK4zvaGGed4G0kETKQNkd/mst0m+x/qYz9nQdZKpFhlw/51wFHOJCEQjD6S3gxsR/p8r7Gds7I6GIDSvgE6x9F/jKQ2eGE1tDvwFdtn9f+qYdk/Djjf9k057I2C/X8HptueV8j+piUuvib7byKtUCfSu0Q+CuJoWdkLgPNV9p4KnGB7dtPYkbaPzGG/FO2o86jCWNNY+Nr8RF3blf2ivqFBR4RubP9Y0kzgPaRvvQ/Z/l3GKe4Avlw5nItJb3zO3PHS9scBV0l6ipShcaHz9p38tpKq3nTgPNdswdeC6aTMmx+RL7baTZxKi8rejOwAbCbp2+7Rn9mZ9OUylmlHncclwA3ALynz3pf2DcAYX9FLGmf72X4KarD9VOb5Gm3CppA6D63bYfY3IsXnPwzMs/3ejLZfR4qXf4T0xXK+7WMy2Z5lu7b++TDm2wX4s+1bC9n/JSl+fpLtyzPYy6IUOoD9O0iZVD8hpc8eTEqvzLkP1jxf1venyW72Og9lVIEdZJ6ivmGsr+jPIeXQz6JFmTApjzgn6wBvJt2m5bxjaJf9x0m68U+SGhpkw/afgeOr4qMvknKJszh64DJJB5JWNM2Vk1m/yJvYEthQ0hK2dypg/2OkRupbZbJXurJXtp8FJks6krQHs0Im263I+v4o9V84i6TdL0lPAB/LdOd5uaT3286Z3NCKor5hTK/o24WkrwMfAv6XpKlzcXOWTwfY/xRppb0qaR/j/JyhLUlvqezvRvoSOQ+4yJmqbyW1yuBxrhh0p9OGyt6jbB/RdPxBUp1BLvsH2z5usLEa9m8C/rORAizpXcBXbb89g+35pDTdF+lJZXWu9NDSvmHBPGPZ0fej8bGAXCsaSZ8kxbWLNLlug/2vkWLnswf95ZHZv4WUujnd9qMl5iiJWvfnfAa4K8eXlVqLyjXK5I9xJpXMTkUt1C9VU/q4j6057tOEqNXYWKS0b1gwzxh39AMJ8Nde0Uia6AE6rr+HAAAgAElEQVQ01SsNkPEjzWZpg/3lBotHDuV3RhtJS9JbT/9a4AfOJGom6Qpga3oaOryLlA/9JuDoutlbko4lbdSdUw1NIYUXnwG2sT25v9cO0f4KpDqDxvtzHem8n6lpt7S66lRSPvs2pA3NBssD/8y1h1TloN9B7zqPSbZ3zWR/Z5quzUz7LkV9w0L2xrKjL42k6aQK0ktI+wBPkPTu1yEVomwHHGH7F2PU/jWkZg6XALNs/60af2Nlfw/gh7Yv7N/KgPYvI/UOvbKv063m2Ad4yHatKmWl7lhLkrR6APYmOYL969htsn8ZsH8jE0lJAO57wP6kvOVabdsk/cb2O1qNSbqrbr2HpItIeijN78/GtlvdqYwZJL0BWIvUd/Wwpqfmk8r8syhvlqzzqO6WNydtVEPqrjbL9mH9v2pIdov6hoXm6wRHr9RB6UDSB2nS6uD7ztBBSdL6pOq3d5A2iP5OStuaQbqlqjVHC/vPV/avyGT//U32VybFEe+t7J9abaKO1PbrSLowHwaeoudinEiKKZ5o+5I651/NU/TWu6+zrVZLd9neIEcIoSroO6CRxSNpC9IX7MaZ7JfuCbw2KUvrH1V8eyPgxyVixf3Mf7PtrWu8vlidh6Q7gU1sv1IdL07SBKrV66GyVdT39JqrQxz9BaRVwNnV0FRgJdu7Z7L/Ktv/GGxsUUapnWDji+oPtv+e0fYdwO62/7c6fiPpQh9xV6M+9k8G1iTl60OVfgp8Abjcdi0ZAUmbA6eR+huLJNy1P3AP8AHbF9S0fzPwBds3VsfvAL5Zxzn2sT8bmET6Ar8KuBRYz/b7c9gfwvx1WxX+mnRtZq/zqBz9uxoZYFUa5LU5HH076RRHX3rF12qzqFb7tD62dieFP+ZL+jJJW/yYjJvJDT3xtWz/tzLriZdG0nYkzY8HSI7yDcC+bhJSq2lfJOf+jsr+jaSsoawXfxVLV+6VsKRNSGGbFUjn/xSwj1Pz8xz277D9NklfAF5wauadbbN0qPPXtFGkzqPaZ/gaaX9HpFj94bbPq2u7sv9q0l3zmrYPkLQu6Us2W30BdI6jP4MUqrmlOt4S+LjtA2vafR0wnnSnsCcsUI0bV8335jr2m+a50/ZGkrYhxSu/CXzJmYpgJH2PpDb4HttvqWKWV9vefJCXDma3sUnXqFtY8BSZ250pKTGuV9n+fSfdTVXn/mEWLpM/OvM84yq7z2a2eyvwXeA/gcm2H5R0d929i2HMn3NRtSGpzuMjtpfKZHN1UpxeJNniEYdDW9g+nxSj/1gVSlwGuDlXWK7BWC+YarAl8DFJf6yO1wTmNtLaatxG7UDaUJxAanTRYD7wpRHabEWjdPoDwPdsX6JUmJKLLasV2W9hgbpn7Yvchduc9ZP2CLC2JGz/NOM8XycVkYn8X1SXkDJsZtFU0FQXSZ/rZxwA299u9fwI2JfUi/krlZNfi54waTuoJcur1nUen69ps+8XTyP75fWSXp/rbhxY2/ZHqjsHbD+vxgeckU5x9DuWMGr7TOBMSR+2fVGJOSr+JOkHwHuBr1crwJx68UX0xNWP9EQD169cHSjt0KRK0BwcS1qpllJknGC7xDXaln6iTsV1n206fpAUrshGlYGzru1fVqvWJWzPr57eu6b500l1Hu9zvjqPbw3wnEm6Wzl4sXo/Gn+7a5NxsdCgI0I3sOAbtpF185sc36iS9rJ9tqTP01r9LsuKqYrD7UjK9LivuhXc0DV7fTbZ/yhpRbMZcAaVnrjt6QO9bgh2H6QndNMXu0MqV1ulP2a2fwpJ/fGuUnOUoI3ps9NILfhWtr12FYf+vu3t6tjtBiS9jxQyWx+4mrSPtI9Tc59sdMSKXtJ/kaSJGyu80yVNz7DZ0uhAtFxNOwNi+++SHid9Ud0HvFz9zGX/J5JmkXJvAXbNsXq1vVZdG2OEmVUs9Gf01orJdcewDbBP9cX4D3pCQ2M9M2MaaSPwu0rKp0XSZ4FPA1sAtwJUi53aWkzt+qIqie2rq7/drUjXzcEuUCXbESt6SXOBTRt5pdWtzh223zK6ZzY0JB1BSl9bz/abJL2eJCeQbZVZ4o6nj/2VgHVJjgAA29fnnKMUkk5vMWzn0xR/Q6tx2w/nsN8OCqfP3mp7y0Ymj6QlSH+/tb4I1aY6j5IoFT1+y02iaZJOsX1Aznk6YkUPPET6ABsFBK8ifZBZUOHmAsC/ApuSyrSx/aiSpGoWmu54LiKtCnLd8TTs70+Srp1AqsTdCriZfHHKotjet7D9hyVtDPxLNXRDrtTHdlBtvj7mqiRf0tIapER/mFwn6UvAMpK2JxU/XlbXaJX98kXgiyW/qAqzFnCopM3d0/JyUu5JOqI5OOl2+B5JZ1Srs7uB5yQdL+n4DPYvIeUo/5JUUdp45OLFKme7seGSs7E2pAKyzW0f6aRCuBUprz4XB5PSyx52Ki7alLR6KoKkSZLGZ7Q3QdLFkh6X9BdJF0makNH+waQS+dWqx9mSDsplv8V8u1QpxrmYTu/N+1foKS7LwWGk6+Uu4N+AGbb/M6N9SH9byzoJ+znnQqoZSatXyRS5+D9SyPW1ki5TqsXITqes6C+uHg2uzWz/1bYPzWyzmQuqrJsVq42pTwA/zGj/IQre8ZCKaF6Q1KgY/r2k9TLa78tBwEaS/mD7IxnsnU4SHGtUUu9VjW2fwTbAfqQU14bW0NdJdzwnZLLfl9x6+kvYfrFxYPvFHOm5TXyUVLG64JqX9MFcRUHNm73A2qQ7z+/Ts2eVk7NI6b8X2f6PDPbkpPlzoKR9SMV8K2Wwu9AkuW12HJKOAW5yweYC1S3r+6rDq51JrKiy/TPSivsXpJXN9qQL5nGo3ztTSR1wX+AQUrjmaWBJFy6Rl7R8UwpeHTultWLuIt1RNfaQliZ1aMrSvF6tJTqWdiYtFEm/IGUNXVod7wJ8NldWjKT/Iy1GpjaSBJS3SGo21Wavq2peZRCTG2A+Aes7g9SCpH+z/YOm482AT2cMGwMdsqKv0rH+h5SC1LwZmCu972DgS5L+QRIFy175SbptbeTL5k7DK3rHY/tfq38eqaQrsgJwZeN5SSt5hEqBqhpQSDrIdq8VcA4nX/FXSXuRcq0hhbpyasSfDtxafSEC7Erq85qLm0myGc3c1GJspHwS+Imkk6rjR6if297Mg6S7nguVmo5Pp2aRVB/+Ud2FAFBt9tZewUra0/Y5kqa4SfKgCsPWcvKq2qQC09W7XuVBIMedQi86wtGT/pCOAL5DkvDcl4wXistXgO5Par33K9J5nyDp6FxpX1Xh10DzX2T7w5nmuq7F8DWM3Ok8p6SxUrI5xyeAE0nXj0lOMtuKyfa3JV1Lj0zuvs6gpqgeiY5lJG1Kb4mOV9e138BJTG4rScuR7vJzfcE2TeE7JL0TOLfaX1g8o/0im73AeEl7kEJBuenbJrXZn2Vvk9oRoRtVzaObb8ck3WD7XwZ77SB231zFm1s6qVwpipLuBd7uqtOQpFVIoaKSce7m+YsKVI3UfpV2uiypKvM44G/OrA9TEhWuHJb0cVIu+CRSt6oG84EzctUBqFBjkyb7V9j+QPXvxUhyFJ+3nSUZpLK5Hyk0KpIC549cw7lV1+bSJIXTY0n7VB1zbfalUxz9b0ipaxeSVsV/Ar5W11E28lVVvifnNcBOjQ2vaqNrhjN12BnC/NniobntV/sjVwE72P5y5vM6gQFu4TPsXfStHG7M1Qj9ZVmVqbBEhzq0sUkzSrU1a9q+N6PNL5DCWBNsfzOX3cp2W9qkNuiU0M0hpFvVzwL/TQrffLyu0UZRggfRI5e0fc3N0z+RYriXkJzBLsBtqkSrnE+cqhO53vYNmVPWGswc/FdGjttXOXy5pD0pp465dp/Q3lHVBmctJH3X9iFKFaytJEZ2rjtHNc/OwDeApYC1lGSdj85g/1Hb56kSHMtMu7R0gA5Z0Y82dVfE1W1gvzQVShRhrIZugqEh6Up61DEbSqjYHshZDMd+kcYmkjazPauKzS9EP/s9I5lnFskxXtuUdXOnx74ERdvolBX9aFNr43cwRy7pBNsjLrCR9EFSKKg/xcoR1whU8c87PbA2+SIvTlWYUuqYDT5FUnHt1dikrlHbs6qfCxy6kpTGGrbvrGu/iZdtP6P86r5tQdIGLJxR+OOcc3RKZexoU/q2p67mzRTgPknHKmlz98I1VDKrL485Sl2r+vudunLFwcDcpNRQowi2Zzt1a9uIpKq6qTNKOEi6VtK4avN6DkmiI2e48u4qtLW4pHWrvZmbMtovRnW3f0L1eDdp4zdLSKuZWNF3Abb3Uuo+NJX0R2Qqje5MqXKrkyQobgP+1jRvrhjrWbb3HmxsrNJP9s1891FUrEERdUy1r7HJCrafrdKMT7d9hFIv1lwcRJL6/QcpbfEqIIvOUxvYDdiY1HB8X0mvBX6Ue5Ix7ehbZE0Y+Cvw60Y8sU081Ma5RkT1h3QRqSjrEJKQ2hckHd+3EGkEFN1DAN7afKDURGWzXMbVWg/pGWCm86gb3gGsQaoYFrAi8JiSNPW0RgijBjlkDlrRlsYmwBJKPRj2IDnkbFTXylG2v5DbdmW/0U6zmWdIG/2ft/1AzSmet/2KpJerxdrjZM6hhzHu6GmdNbEy8A1J59v+bo5JqovlAyyc1fDt6mfpNLO6rdQmkwqA1iZpcWxh+3Glhidzqam5Yvs69e4Q9GoyFLxIOpzUsnEZSY0+qAJeJOmM52Jp4M30CHV9mFTZuJ+kd9s+pKb9K4GLbV8FoNRMYkfgAuBkkjbNsGmqnsxdwASUTwJo4mjSKvtG27cracVn6cdg+59KsgGl+DbwKOlOQaQw6euAe4HTgHfVtD9T0ook7atZwHPAbTVtLkRHZt1UObM35cr0kDSDJAh2F00qfu36Q5C0j+0zarz+x6QCkYX04SVtZ/uamudXtEOQpP+xfXgOW/3Y/xWpzdzL1fESpG4+25O6fq1f0/5M25NajamGpo6ky21/sEW+PmTI0+/nTqd5glp1Bu1C0rdIvRKm0zu0WLugTJWWfp+xW2xvJWlOtbeRBSWp5XGZN6qBsb+ib4lTA92cJieUTMWS9CZShd0b6H3H8J7q5xl17Nv+WDXPuD72n6rr5CuKdAhqYPtwJVnivu9PrsYm40kVuI1Kz2WB11erwRz9OZ+SdCipKTWkto5PV3eKI+7da/uD1c9S+fp1Q0pjhZVJEhrNuee5eg6/oiSDcGF1vFufOWrT99qXtG3Gax/oQEdfrcb2pqcrew5+Lul9dbJTBmE6STb1hzTlQedC0gGkQrLn6bn4cuplFBGNaiDpa6Rb4t/R8/4YyHWxHwvMVtKjEanU/6tKfQF+mcH+niQJgZ9V9m+sxhYnxaXHJB5EI2msI+nrTvLiM1yzP/IAfJQkz3Ey6Zq8Bdiriip8pq5xJUnrj1Du2k/zjOXQTT8bIc+TtDgOcaaO75L+FTiblG6aXb1SlVZPDlv92L8P2NoFek1W9o8lNUj4GCnD4UDgd87UPEJJC2gj95HizUm1GbgF6bO9Lde10w0odVg7lIVzucd0BzEleei3keSJi0l8lKQd1z6M8RW9C6tKNvEtYGtSvLbEN99lkg4kSQk3N6fOlX/+v0DJ1mmHkUSjFnQIIm8K2APAkjS9NwVYjNTlaAlgHUnr5Lo9rkJz/8HCm/lj2lE28RPgfFJCwidJ8iIlO4jtAvzZ9q01TV1JysJbtmkzHzIu1FS+zWg7rv2xvaJvhaS1SfniUwap1hyOzatIomMjjqcOYv/BFsO1N9Oa7G9KpYlO7y+STtlMu4iUS3wNBc6/6fb4Hnpi5s5YBzCHFJrrK1HQETFw9ajDLpANkHSd7ZbSBRnm+yqwIamzVe3UUUmX2N6l/pm1tH0TcAMLf7ZZROZKX/sNxvSKvkF12z2F5OA3IjUhySk09BhwraSf0/vNzlIwMthmmuqLpv2ApOrZK2uoLpIusL1HdYvcSpQq1wb2pdWjFLsC6xW8PX7Z9vcK2V4ISXOrf55k+8QMJhuFXY9J+gApnbCEBjsAtr+U2V4RJ19Rus1o6WsfGOMr+iqtbyrporugelySOwtB/YiOtTG9sq5o2k22357znCq7q9t+rMqhXwjbD+eeswTVF/jutp8rZP9IUqFLqdBcqzlXAbayXbuJvZJW0g2koq8TSI1NjnLVWrCm7WNsf1mp0c5/1bXXzxwfImncr0YK2+QM3RRvM9oOxrqjf5HURu3ztmdWYw/kCnm0mG9ZVw2e24lqqj9K+grwMKmrTlZHU6UIXuUC2vntumNoQ2iodGju631Xla3GxiJVPP59pGuoyMpV0v3AZFf9aDPbnk9Kx32Rnjuf2l8ibbxbTvONcUf/GmB30qr+taQV/T6218g8z9akHp/L2V5T0sbAv9k+MOc8A8xfd0Vf2tFcCuztTB2Hmuy25Y5BqVNTK/sdkV7Y6vpQRhleSWuRsqkm0nvDsdYeRnWnvDIpHfos4EkX6NIk6Te26woDthVJr7f9aLvulse0o29G0gR64vSvJpWcZ4n1SbqVVAhxqXv0rO/Otdk7hPlLd4CqtQcg6QJgK+AX9K487IjNXgClrl5vqg7vdT7BMSQtSZL6bbTiuxb4Qd05JH2KlMr6RlJmVYPlgd/Y3quO/aZ55pAWOn0rw2vrxUtq5KAfaPvguvb62G5Ik7yTJEvwM3rfseVqtbgzTZ+t7csz2LzD9tvUJvG+Mb0ZK2kr27cA2J4HfBP4pqT1SE4/G7Yf6VNtm72waQAeKmz/6yQnPVKuqB4diaR3kdrkPUSK364h6eO50iuB75FS5E6ujveuxvavafcc4Oek5IPDmsbnZ47/v2B7QDmEGpxu+15JpxWwPbnp338nhYgaZKmMrYr5NieloAIcLGkb24cN8LKhsFR1p/n2pi+sBeT6kmowplf0pVe6TfNcSBIvOpG0cv0sMMl2li8TDSKaVpo6ewDVuZ+Za/U4Gih1INrTVT/RKu/9XGcqYlMLzZNWYzXnWJwUvmy+fv6YyfaeJK2Yq+m9Is7at7QTUZJT3qSRel19Dr+tGzaTtA2p6nYPFs66ccY8fWCMr+jbyCdJZc7jSdIKV5P0XXJxGS1E09rIiL/NnfRgVpW0lKvm5h3Ikm5qGm37D1W4JRf/lLS27f8FUFJnzHZHKOkzwJHAX2iqAyClGudgQ9JdyHv62O+Igq+qcvsYUtX8laSN90Nsn51pihVJXbcAVshh0Elm/UYl8btT+/u9DKnXyc4YX9H/HwNoPuQqeClNzo2zEc5fd7P3B6RS80vpHaMvckci6UzSrfhJtu/OYO80kuM6qxr6KKlYZ9+6tiv725EK1h4ghYbeAOxr+9eZ7N8PbGn7yRz2Wtj/PakMvyO/yFUphCpJmewK/DupZ0XtOyqlxuBfA34NC3SSDrd93oAvzESuqMZYX9E/wcDd0rNQKuugidKiaYPxUM3XP1o9FqM9zSpOBNYkrTJzpBB+inSH9lnSH+v19MTTa2P7GiXp5vUq+7933uKsR+hR3izBHNKq9fESxiW1clTPAA+7ko6uSePu7P2kkNxTyqRua/tcJTG8zUmf7aG2/5zF+NDI8h8Z6yv6dsXoi2UdVPZLi6aN6h5AXSTt7j7qg63GxhqtNtGayZj1cSrpS+QKClRuV45sI+D2PvZzSUTcQrojvJN07W9Q/XsV4JN1F0DVhumupNDNFqQvrcvdR0d+mDYH9Dvt2r9YVFb0D7VpnpJZB9AG0TQK7gEoCTt9kdTyr4S64eH0dH8aaGxY9FeM0iBDOG3yAM/l0kMH+GP1WKp65KZlZXhGHgL2s30PgKT1Sf0Z/pv0HtVy9LYPU9IzerbaU/o7UFcWYaBIQsfsXzQY0yv6gZD0uly3UKWzDlReNK3oHoCkq0nqhv9Bk7ph3cpMSTuRbrf3qOw3GAesb3uLmvZbFqM0yF2UErRGLbpsNcXVR9yBa1FA0k+doZXpWF/RD8SppHBFDkpnHRQVTaP8HsAqtk+VdHAVzrpOUo6w1qOkvsA707vb0XzShlotOt2RS/qu7UMkXUbrMvlcoZViWjEV90r6Hr07cP1B0qvokRVYJBks7JrDyUMHO3rbuZw8wL8CbyyYdfBg9Sh1630LcLGkInsAFFI3tD0HmCPpnJyVql1EI0vom4XnOZZCWjEV+5AqfA+BBR24/oN0Xb270JydQltSrzs2dJMTSecDB9kuknXQNE8R0TRJD5A2o4rsAaigumFl/x2kPPFG38zGF1UR8bqgN52oFQNjZ8O0Du1KvQ5HT1uyDoqKppXeAyhNlcf97yzc3KFI3nhpJE0CHrP9p9E+l4Foo1ZM3y/yhv1aX+SSGnUKSwOTSGmiIv0t32p7mzr2qzmKpoZWm8jXlE697tjQTWZKZx18F9iBqtTZ9hxJ2w78kmFRdA+gqvQ8jpQ59ApJOvrfbT+Qwz7wjO2fZ7I1KLkLslpwELCRpD/Y/kgB+7korhVTcSotvsjrYvvdAJLOAw6wfVd1vAEpNJSDk+knNVRS7dRQyoddgXD0QL58+UHmKCmaVnoP4BzgJNJeBiRBuXOBEecp9+HXkr5Bcizt0FrJXZDVC9sfB5DUrp7HIyJXZfAQKP1F/uaGkwewfbekXJk8D1EwNZTyqddAOHqgLVkHj0h6O2AludzPAtk2vlx1wiq1B0AK8Z3VdHx2pb+Si8YXxqSmsSxZT+rRvF+Qjmv7dlKYrnbfzyoT6ThJB9k+ofk52/Pr2u9nzq+Swgc/yhHeaoNWTOkv8rmSfkQqSjSwF/n+vt7ccPIAtn8naVPbD2Sqvr0PuLukk4eI0QMLtESKZR0oNVA5Dngv6UvkauDgXDHoUnsAklau/vlF4P9I6XEmpce9yvZ/17HfDiT9kFR89RXb/1bA/n6k5hpP2i4hxdtqzl2BtYGNbX8sg71iWjGV/VaaP85VcCdpaXr3A7ge+J7tFzLYPp8kaNacGvoa0t3gjbY3r2n/DFK/gVKp12mecPSdm3XQQIUapyh1rjKt9TZqZ8VI2sv22ZI+1+r5uhe7kt73msC+wGnAH23/uI7NPvaPILWZ+yzpi/xvLtNB6R22fzPYWA3799h+a/WleJHtK5VZZrlTkbQMKTV0G3pSQ08mpUS+2jX7EKtN/aoX6dBNU9bBzOqbu1TWQWnRtCJ7AB5iE3aNXEp12epnqVj2taQ/0HtIexg35jRu+yil5tHbAzuUcPIVJ5A2BAcbGymXVZlPzwMHVpIXtVfDDSStQEp4aKy4rwOOds3WlGpD31Xbz5Pi6K0kEWo3m29D2BVYxB097cs6+BkptHIZZYoiiu4BDIERdbCy/YPqZ9bVS5P9hyUdTqq8Pcn2TwZ7zQi43vYNVZVnVqqQ3NuBVfvc9YwDFs81j8toxTRzGnA3SeoCUtjjdKBu1WejNeEHa9rpl1KpoU32F4RdgWL9qiN00wYk3eoaSnpDsF90D2AI84+4g1XQP5LeCbyLpC/0/aan5gOX2b4vwxzH2P6ypKNt/1dde/3M0a/WTcY5XkuSEga4LVfxY+kaj1Jh174s6it6oC1ZB8dVsbgiomm2/0pqpjFaxGqhAO7RFTrD5XR7bpd0EnBVIfsAzyv1Wb0RFqySn89lXNIewDdIoToBJ0j6gu0LM5gvXuNROPUaCEff4H22v1hlHcwDdid1lMnl6IuKprVjDyAYVV4l6RQW/nxrXT/V4mNlYCrwsqRNCu0zfAo4s4rVi5TFsk9G+/8JbN5YxVd7DL8Ecjj60qmhbQm7hqNPFOtQU1FaNK30HsBgPJTTmKRdgD/bvjWn3VI0paE2M9/5hNqmk0I3PyJvZelRkhoVzweW2ky2PRvYWNK46vjZzFMs1idU8ySpyU8OitV4VJTuVw2Eo29QNOuAwq3aKNw4RW2SUm1iS2BDSUvY3qmuMUmt3ptngJm2L6lrH7iDJPj2NGnFuiJJ6fNxYJrtWQO9eAi8bPt7NW30x+m271Xqq5uV/tJmG4uojLniVyrpPZ1bHX8EmJHDsCuZhVK0K+wam7EVklaiJ+tgWWB552tsci1lRdNKN06ZQQsp1VzZMpJe5T49ViUtnaPgpbJ1CvBmejpWfZiUcrkG8IDtQ2ra/z5wse2rquP3ATsCFwDH1d2Il3QkaZFwMb0/36fq2C1NfzniDXJmW1Wp0o1c9+ttX5zJbpHU0Cb7bQm7hqNvA1X2xEI4X0/a/yHtAfwvTXsAGSsPS3ewWqgvZquxGvZ/RdqHebk6XoL0pbg9SWNk/Zr2Z9qe1GosR3ZJVbjWl9oFa92CpH8HptueV8D2RaTU0DOrob1JFclZ7mJVuF91gwjdtIHcH1oLSu8BFOlgJel1pNjkMpI2pacCdxzw6oxTjScVZzVWYcsCr6/u3v7R/8uGzFOSDqV3mfzTVcir9p7JUAvXFmHGAVdJakgVXGj7L5lsr237w03HR0manck2lO9XDYSjbwsqL5pWeg+glJTqDqTsiwlAc7x2PvClmrabORaYXYXQRLoN/2oVovtlBvt7km7vf0ZPmfyepKKmPQZ43YBIeo/tXzVVcPeibuW2uqBxBywIAR0laSPSl+x1kubZfm8G80VTQymcet1gkQ7dtOtCV3nRtGspuwdQuoPVh23XVpIcZI7VgS1Ijvg224+WnC8Hko6yfYSk01s8bdufqGm/eOOOdlLdIe5OktFePke4UUnu+EygV2qoUxvM2pQOuy6YZxF39G250FVYNK0NewBFO1hV8gEfZuENqWzpfpLGs3AZ+/WZbL+J1OhiIhnz3NuFUuOOr7hP4w7b+2Sy3yr75hlgVpV6Wdf+p0gr+VVJufPn2/5dXbt95iiSGlpl+21UMOwKLOKhGxfuUKM2iaa1YQ+gaAcr4BKqP/xm+7lQ0nH5CCnTprlgLYujp1Ceexsp2bgD0iJqEqnOA1Kq7u3AJyVNt31sTftvIFWyZ4udtzE1tHTYFY+pkWgAACAASURBVFjEHX0TpS70toimtWEPoHQHqwm2dyxgt8GuwHp9UzgzUjLPvR2UbNwBsArwNleSvlVM+kLSXsks0h7KiLF9WO0zXJh2dQd7LfB7SUXCrg0W6dBNA0nnAn+j94W+nO2po3piQ6T0HkDTPEWkVKs89xOav2wz2/85sLtraocPYP9IOjDPvYEKNu6o7M8lpSS+WB2/Cpht+y1axAXxSoddF8wTjr4tF3pR0bQ27AEU6WDVZP93wDqku4Z/0HNHkiV3v8qF3hi4ht6O+LOZ7Lc1z13SJOAx238qYT83kv4fKQW4UYU8GbiUpPF+iu3RFORbJAhH3wZUqFVb0x7AO4HXUa5xSlEpVUlvaDXuTIqNSp2mWtk/s9X4WEfSmaSEgT/Y/kgNO8UbdzTNNQl4B1X6qe2ZuWx3Mm0IuwKLeIy+jRd6KdG0djVOKSKlKmlclcVQpIl2A9tnKikDvqkautf5BMeQtCS97wivBX6Qc45mbH+8mrduHLl4444mfgs8SuVzJK1p+49tmHescyxtCLsu0o6e9l3oRUTTbO9b+8yGRikp1XNI7/0sFu5Na1LT5NpIehcpF/qhao41JH08V3ol8D3Sl/nJ1fHe1dj+OYxLusb2doONDRfbj1U/H1ahxh0Akg4iFZT9hbRAEOnzLSarUQrlV1b9S2knDxG6WUDJC72yX1I0rfQewKh2sKqLpFnAnrbvrY7fRLqz2iyT/YUaabcaG4HdpUlSEL8mdZpqloj4ue231LHfNE/fxh3/AuRq3NFIFtiyU66XgZD0VVJ/iVrKqu0KuzZY1Ff0QMsLPWeHGgBsP93077+RsnxyUbRxike/g1Vdlmw4eQDbf6jCLbn4p6S1bf8vgKQ3kief/t+AQ4DXk+56Go7+WeCkDPYblGzcAfAIPTpDHYX6KKva/pLyKKu2LewK4egblL7QS1O0cYo6v4PVTEmnAmdVxx8lOc5cfIHUiegBkjN+A1A7rGb7OJIWykG2T6hrbwBKNu4AeIBUcHcFZQruSnIz0Fcq5aYWY8OijWFXIBx9g9IXemlKN04Z7Q5WdfkUqWvPZ0mO+Hp64um1sX2NpHWB9Sr7v89ZnGX7hGqPZCK9v2h/nGmKYo07Kv5YPUoV3GVHbVJWLR12XTBPxOhBqSfkRvS+0O+0fWgm+0U20/rYK7kHcKtrNs/oRtSPqmSDjOmtZwFrA7PpCQk5Vx1ANUeRxh195liedN5FCtdyUqXk7kOSbmhOBZ0PnJHxsy2Ser3QPOHoEyUu9HZtppVGhTtYtZivkYVwku0Ta9hpmTbboG76rFqrSjaZr6cu2TTPXGB9F/pjVcHGHZX9DUhhs0Zv3b8CH7N9T4n5cqLCyqqS7rH9Vkk/BC6yfWWOjfy+ROiGXhd61g0Q2reZVpoNSSmD76G3KFgRdcaqNH4VYKuapoqmzbYxzno3KTPjsUL2SzbuADgF+JztX8OCdNcfAm/POEcpLq8WOhMpo6xaOuwKxIoeWCCytAdJazr7hd6GzbSiqLCUqqSv9w2TtRpbVFGS094EuI2Swlc9jTs+DORq3FEs/bQdSLqSHmXVBZlUtr+VcY5iYdcFc4Sj76HUhV7ZLraZVnoPQEli+aDctQVN9lv1jC3ap7aTULuErwo07qjsXgzcQU/W017AJNu75rBfkpxSH6NJhG568zjwZ1LWzWq5jPa3mQbUcvRNewCvqVYFzXsAr69juw9FpFSVGkYcCLxR0p1NTy0P/KaO7W4it0PvixZu3DHNeRt3fAI4ipQb3sh6amt6YQ1ukrShCymrtotY0dPyQs/aoabUZpqkg+nZA/gTvfcAflhnI7PPPEVWlJJWAFYC/gdo1hSf7w6R+IV+s2+eIbVeHPFdkKQbbW8jaT69N5WzCl9J+hpwnjM27ugWVFhZtV2Eo6f8hS5pOvBZV9oiBex39B4AgKTFSXcOzaGtLKJX/WTfPENKmzumbml+VQi0NSm7ClKG1S0kEbWjbZ/Vz0u7GkmXMXDW05gvuFMhZVW1uTF7OPo20I7NtMJ7AEWlVCV9BjiSJHrV3CA5V4z4WFLI7JxqaEr181lgG9uTW75w6PYvA/ZvbOBXukkNUbPruyHGOxL6uxNsUDokVQdVyqqSVm71fN07TrW5MXs4+jZQejOtdEGNCnewKi16pRaNWRpjku6yvWFN+71sKOlP3GV7Ay3iHZQ6FUmX2/6gUlOZhZRVnampjAo3Zm8Qm7FtoA0rl0kULKihvJRqadGr5SRt6UpaVtIWwHLVcy9nsH+DpMtJTcIhZW1dX6XK/V8G+0Gbsf3B6udahacq3ZgdiBV9Udq4mVZkD0Dt62B1KkknpojolaTNgdNIzl2kkM3+wD3AB2xfUNO+SM59QQclUpVj/HEFA6I29asOR98FlNoDaGOJ/xH9THBUDvtN86xAuuY7epUt6ZfASySJiMtH+3wGQ9LutqcPNrYoosL9qhfME46+82lXQU2nIulVpBX3RAqUsZferG4x3+uB1YGtbI95KY1+CuIWGgvKETH6LqANBTVFpFQlfdf2If2l4WXMSrqEnjL2bPLBTRTt+ynpYCdtegBsP1qtiI8b6HWjjaSdSD0Sxks6vumpceTZG+lY1MbG7BAr+o6mjXsARaRUJW1me1YbspKKlrG3yurJbL/VinjMZ/NI2pgUUjwa+K+mp+aTrp+nW75wDKN8yqqr236sVJ5+X2JF38E0cm1tL194qiIdrGzPqn6WDjGVLmOfWekBZd2sljQV2BNYS9KlTU8tT5LpGNPYngPMkXSO7ZdggYDXGp3o5CGfsqrb1Ji9QTj6YCi0RUq1INsA+1Q50SXK2MdRpu/nTSRp4tcAzWqJ84E7W75ibPILSTuT/M1s4AlJ19n+3Cif16CotYrqF1uMjdR+8X7VEKGbYIioDVKqpWjX7fFoIelm21uP9nn0RyPMJGl/0mr+CHWIOmk/YbNs5y5pDrC9+/SrrhsW7Usn9UUNRhHbT9v+Z/Xvv3WKk4cFDn1FYHL1WDGnk5c0QdLFkh6X9BdJF0makMv+EFi6jXONhCUkrU7q+TDm00EhCR1WG6XrSbqz6fEgee+m2tKvOhx9MOaQ9FVJh1ax0Bz2DgZ+Qkp/XA04W9JBOWxXnA5cSlIRHU9qoj5QDUJuxvpt+dHAVcD9tm+X9EbgvlE+p8E4h7QouJSeBcJkYDPbe2Wc50pJV0naR9I+pKLBnI3ZgQjdBGMQSbuStHs2tv2xDPbuBLa2/bfqeFng5oy337NtbzLYWCkiJ70sKqisWtkv3pg9NmODflGbpFQlvcP2gkYjtn9WjeVq1yaa2sBV/66fNtTDXyXtBZxbHU+lvVkxOf8v2aniztNYuGAtS2V1SdSPsipJZTKH/VL9qnsRjj4YiIajbSmlSlqF5OAEoO+XSquxkXI6cKtSSztItQCnZrINqYPSicB3SE7gpmosG9WG8rq2fylpGWAJ2/Orp/fOOVcBLgFuAH5J7y/cTuAQYD0XUlalfGN2IEI3wRAoJaUqaWvg7aQ/pu80PTUO+NecmQfV3Unz7fFvc9kujaRpwAHAyrbXlrQu8H1n6glcmnaGsXJT6Uhtb7toJa8K9quGWNEHQ6OUlOpSJEXJJUhFQA2eBXara1y9m0Y8VD0WPOf6zSNOYOAOSln6AQCfBrYg3UVh+z5J2Xoat4HLJb3fdvZNxjbwAHCtUhex7Mqq/7+9e4+7fK73//94jkNqGB3IKWfJtjPkmEgItaW22Kho66SiHEp2qd1Pqp1D3w5SKVtUCoUkSkTGqQwGM6NQQrEjoWYkZ8/fH+/3mlnXNde6Dmt91np/Pte87rfbdbuuz1pzvdfL4LXe6/15v1+vNn3pV90SiT6Mx62STmFoKdWe67rkE7FXSPp2n/a0z2Jo04hWUlb+udfmETf0+Pvj9YTtJ1unkSUtSf132rQ7FPi4pCdJVTehj0XfKvan/LV0/qqU+t+YPb1OLN2EsfS7lKqk9YGPsOjNuh2rGL/pclG5vwP/CRwMHAT81vYnigYWeqYBNWaPRB+Ky6cDv0GagS+4WdeqhdPDuGvZvnuU5wWsZvveLsc/GfiK7VtGeG4qaab2hO3vdzN+21hTgHeTSiwIuNj2//Yy5qDlEgiticIM17yOvgZXWXUgItGHjgZVSlXSLNubVTHWsHHPJh0KPJ/0JvJX0g6i9YAdgNcCR9n+RZfjbwJ8HNgIuKVt/JeSbiifSrpp2lNpZElvB37ctssGSbvVPVm25FnrFqRDa5C2n86y/bFyUY1uUJVVByUSfehoUKVUJX2KdDPqPIbe8OrpZmkee0NgX1Kbv1VIhdluJZ1APKeK5SdJy5K2ny4Y3/btvY7bNv7fSTeS3+pc875Jh6TygbVNbD+br5cAbmpCrZvJIhJ9GJd+llLN9UOGs+1eb5YOjKSlgQ1In3xut/1khWPfRFq6OR34lO2z1YB69C050W/feuPOu6FmRKIfnNh1E8bU71KqtteuYpzhtLC5eafXraq5+RtI9xj+QPr7WVvS+2xfVMX4pDe9G/MywpmStgKWqGjsQTgGuCnvSRdprf7IsiEtXmJGH8bUr1Kqkna0/ctOCbnXRKyFzc1fTDqY9ct8vQNpRjnqG8EEXuc2YDfbd+TrdYGf2t6govF/avsN+ecppP60h9tuTFHCXL1yC1Kin9mk6qeTQczow3j0q5Tqa0jJ940jPNdz4w7b7wSQdCGwoXNXn5x0qmyq/UAryWd3ku45VKKV5PPPzwJH5K9GUGpB+UvbP8nXz5e0u+0fFw5twiR9jtR/+JQ+lkWoXMzow5gkfZ5U36ZVtGsfYI4r6rLTbxrWMzbPiue4oj6ykk4C1gR+SHqD2gu4HbgGuv9kMlm2+HWo7tmYewztqq6sOiiR6MO4DKKUar9I+ippy+OZpIT5FlJt9Epq0rctEY3E3VZpnCxb/DRCRyZJc21vVCqm8RpeWbXTY3UXiT6Mqa2UalcHi+ogv1G9Ol8O9I1K0pG2j6lorFZz7cb0jJV0Kulk79dIb7QHAy/otSjeIIy0jbVJW1tbItGHMUk6itQGrq+lVCerXhODpBnAkObaQCOaa8OCU8KfBFoVGS8hVUN9tFxUoxtkZdVBiJuxYUy2jwaObiuleoWkykuptkjaHLjP9v/1OM4jjF5dclBFtXptDLK87flKzbVPc26uXUVgg5ATem1PwXbQ18qqgxaJPkxEX0uptjkYmC7pd7b36XYQ28sBSPo0Ke7TSUl3X4b+z9tvvX5sbm+uHYXMBmAAlVUHKhJ9GNOgSqm22N4/v25Vyfh1trdquz5J0kzg+IrGH0uvM/pWc+2r3Zzm2pPFc3LxurVocGXVSPRhPNYEDutHKVVJh9o+QdLBtk9sf669iFePnpG0L+n+gklFtQbZ0u7sXn7Z9tntY9i+k9SJKPTf2aRTz6fQvDaIC8TN2FCUpHcDLwQesn1qn15jLeAEUmEzk/a3HzZaCeMJjv+VER6eB9xg+/wqXmMykXQQafnvXPe5RV+v+lVZddAi0Ydi8m6eqcAhpET8qO1Pl41q4vJH+w1YOOveE/gNsDpwp+3DSsVWR5I+QPr7WrPuh776WVl1kCLRh6IkfZa0/vw62//dp9dYhlT98V9J9eIB6PYg0wjj/xLYpTU7VWr1dwmwMzDX9oZVvE4YvMlQWRWqqVcSQi+utH0VqTJmv5wOrAy8DrgCeAlQ1fo/wGqkTyYtU4FVbT9D2yywKpL+PVewrL1cHgJJVdYWGhjba4/w1agkD3EzNhRm+5L8/dI+vsx6tveS9O+2vyPpDNKniKocD9ycDza1yvB+Lh8U6sc/11bARpKWtP1vfRi/EpLWAK6W9BPgB5LWsP2n0nGNR78rqw5aJPqwOHgqf/+7pJeT9tSvVdXgtr8l6WfAlqRE/3Hbf85PV15l0vbHqx6zT3YA1iC1WryOVEP/u0UjGr++VlYdtFijD5NePlF6LinhfJt04vGTtr9Z4WusRtqG2r7X+soKxv2s7f+W9Gnb/1+v4w2apFNIfXU/a/u9peNZXEWiD8VJOt3228d6rItxW3v0+1ptUNJxpANlvwGezQ+7ih0lkv4d2AW4uFXPvUkkrWr7z8r9h0vHs7iKRB+KG170S6l5dM+7VVp10PtdbVDS7cB025XeeM3bT18IvJ10Q/mhJm4/DeXFrptQjKQjc+Gx6ZLm569HSPuWqzhodKuku4GXSZrT9jW34qJgdwJLVTgesKCYHMDW+TqSfOhKzOhDcZKOsd2XZtGSVibtsFlkGaWqYlWSzgU2Bi5j6KGaQyoYexPbN0va2PbsXscLvamqsuqgRaIPtdCvm5njfO1zbXddO0bS/iM9bvs73Uc1eXTYojiPtDxXWW/dQZD0HVJbzZ4qqw5aJPpQnKRjSe39fsvCwlGV3Mwc5+v33L9U0tLA+vnydttPjfbnFyeSfkpafro8P7Q9cC3p7+vTtk8vFFrXJC1XYdG9vot99KEO3gy8rOqbmRPQ02xH0vbAd4C7SfvoV5e0/6A+kTTAs8C/tLqSSVoJOIl08OtK0o3mWpJ0me3XjvVY3UWiD3XQuplZKtH36gukWje3A0han9SIvKeqh5JG3Slk+8Zexh+gtYa1nnwAWN/2w5Jq+ckn10d6HrBC7tPb6ikwDVi1WGBdikQf6uCfpBICld/MHKdeG4Ms1UryALZ/J6mKXThfyN+XATYHZpNinQ7MBLat4DUG4SpJFzK0uueVuUTE38uFNar3kfrFrgrMYuF/I/NJTc4bJdboQ3Glb2ZK2qVVc6fL3z+VtPzTWoLYF1jS9jsriu8sUjPtufn65cBHbL+jivH7TZJIyX0bUsK8mlSLvvbJZ6SGOE0UiT5MepLmsug6/DzgBtLR/Id6HP85wAdIM2yR1p2/XtU9h9bBr7EeC/0h6VUs2kqwKTV7gEj0oSBJP7S9d4dEjO3pFb3O8aTdPGfkh96Sv88HtrU9UuGq2pB0JvAo8D3S39N+wLK231o0sHHK2yuPIzWUV/6y7WlFAxsHSacD6wI3M3RH2KCWFSsRiT4U06p/ImnNkZ6v8EDTNba3GekxSXNtb9TluCO+QbVU+Ea1DHAgqfwxpE8MJ9l+vIrx+03SHcAbbd9aOpaJknQrsGETlplGEzdjQzGtIldVJfRRLCtpK9szASRtSapgCdBLz9Ldeo5sHHJC/1L+aqK/NDHJZ7eQmtY0uiBbJPqwOHgPcKqkZUnLBvOB9+RdH8d0O2i/36AGtbQ1ADdI+gHwY4buqmpCTfcVgN9Kuo6hsde61+1wsXQTFhuSlif9N1/plr5ciK3Tzd7Dbd/Z5bgDWdrqN0mnjfCwXVHP3n6S9JqRHrd9xaBj6UUk+lBcq278WI/1MP5zSNv71mLozolKqkFKOhr4M+lmr0g3e1cGbgcOtL19Ba+xErBFvryuaTViQllRpjjUwUj76N9R4fjnA/9OWo9/tO2rKq+3/U3bj9ieb/tkYFfbPwBe0OvgkvYmteLbC9gbmCnpP3odd1AkvUTSeZIekPQXSedKeknpuEYj6er8/ZG2EtrzW9el45uoWKMPxUh6K/A2YG2lBtIt04Ce9rYP8xLbr69wvOGezcn4nHzdnoSr+Mj8CWCL1ixe0oqkpuPnjPpb9XEa6dPOXvl6v/zYzsUiGoPtbfP35UrHUoVI9KGkX5F2M6zAwuP+AI8AVTYG+ZWkjVonS/tgX+AE4OukxH4tsJ+k5wIfrGD8KcOWah6iWZ/GV7Tdvk7/bUmHFYtmMRRr9KG4vPvlMdvP5oJgGwAXVVXqV9JvgfWAu0g7J1oHdhqxa0XS50n1bc7MD+0DzLH90XJRjZ+kS0lN2VvxvxV4Z9MqQDZZJPpQnKRZwKtJ69nXknar/NP2vhWN3+8DWSsCB7Dozd7KdpXk06ULSizYPq+qsftN0hrAV0k16U36JHdoU3YNTQaR6ENxrebdkg4Gnmv7+CqagQx7jY1JbyYAV1XZlk/Sr4CrSFUOW8fksX1uReN/CDjb9r1VjBcWP7FGH+pAkrYmrXW/Oz9W2X+bkg4lzbhbB3S+J+nkCqsSPq/PyyjTgIslPQycBZwzrL57LUk6kdFLRDSqXgwsWIZ6Cvia7QtLxzNeMaMPxUnaDvgIcI3t4yStAxxWVSKQNAfY2vaj+Xoq8OsKa9F8FviV7Z9VMd4orzOdtD6/J3Cv7Z36+Xq96lR+uqWJPXUlrQqsArzSdmPq0keiD5NeLiGwRasIWC4Sdn23xcxGGP8RYCrwJGm2B32ozihpZdIWxbcAyzXlZnJTSZpue06fd2wNRCzdhOLyTpuPsOjNzB0reonTSIeMWjcwdwe+VdHYfd9rLelA0kx+RdLe+QNs/7afrxkAeJekr5GWExu9HTRm9KE4SbOBb7DozcxZFb7GpgzdtXJTVWPn8d/EwjLCM6pcv5V0LHCW7ZurGjOMTtJRwItI942+DzxYVcmMEiLRh+IkzbLdUyPtDuO+cLTnbT9c0escS6pD8/380FuBWbY/VsX4oYz85v164Oe2fzLWn6+zSPShOEmfAh4AzmNoKdieErGku0i7PlqNnVv/sbcOTK3Ty/htrzMH2MT2s/l6CeCmWENPJH1lhIfnATfYPn/Q8YyXpP+x/QlJn7H9ydLx9CISfSguJ+ThKkvE/ZYT/fatN6b8SWJGJPpE0smk085n54f2BH4DrA7cabvR699NEDdjQ3G21+7n+Hl9frh5wB9t99JhquUY4CZJl5M+LWwHHFnBuABIOm74Pv2RHqux9YAdW3/Xkk4CLiEVNWv0bpamiBl9KE7SUgztiToD+GaFtW6uBTYlFUoTsBEwm3Sz7f22L6ngNVYhrdMLmGn7/l7HbBv7RtubDntsTlM+MUi6HdjS9rx8vTzp72iDqk9Ah5HFjD7UwUnAUqTqjwBvz4+9p6Lx7wbebfs3AJI2BI4APkM6LdtVoh/hk0KrRMGqkla1fWN34S4Y/0DgIGCdvDzUshxwTS9jD9jxwM2SZrDwE8/n8sG1S0sGtriIGX0oTtJs2xuP9VgP499se5ORHhvpuQmMe/koT7vXcwB55vsC0tJQ+w6eR6raMTQo+RPPlqREf53tPxcOaVwkXUDnNpHfbB3Cq7uY0Yc6eEbSurb/AJBLIDwzxu9MxO15XfisfL0P8LvcYrDr5SHbO4znz0na2fYvuhh/HjBP0n8D99t+QtL2wHRJ3626922fTQH+Sso560laz/aVhWMajztJB9XaS0T/BVgf+F/Sp8/aixl9KE7Sa0mnV+8kzfjWJNUrH23GPJHxn0taAmkdmLqatEz0OKkg2T+qeJ1RXn+RNfYJ/v7NwOakk8MXAz8BXmZ712oi7C9Jx5ES5G+AZ/PDtv2mclGNj6QrbW830mOSfmP7X0vFNhExow/F2b5M0kuBl5ES8W22nxjj1yYy/mOkDlZfGOHpvib5TGP/kVE9a/vpXJP+y7ZPlFTpyd4+2530xlTZv9MBWlHSGrb/BAtq66+Qn3uyXFgTE4k+FCfpA8D3bc/J1y+Q9G7bXx/jV8c7/jbAp0ifFNpr6Qxqn36vH5ufyv11/xN4Y35sqR7HHKQ7SfE2MdEfDlwt6Q+kN+y1gYPyjeTGVN+MpZtQXIebpZVtu5N0G/AhFq2lU2UD8tFev9elmw2B95NKK58paW1gH9vHVhZkH0k6F9gYuIyhJ58bUY8+38vZgIWfNhtxA7ZdzOhDHUyRJOdZRy4hsHSF48+zfVGF403U3b38cq5UeUjb9V1AI5J89pP81VSbsbCy6nRJ2P5u2ZAmJmb0objc/HotUgVLk2av99g+vKLxjwWWIO2Zb59R9rTPvW38JYA3sGiZ5S9WNP7wpadKa/UMgqSlSTtVAG6v6jBcv0k6HVgXuJmFnwbdlE8jLZHoQ3GSpgDvBXYiJbFLgFNsV7LFssN+9573ubeN/zPSDp65LNxVgu2jKxq/6NJTr/KW0O+QPtmIVONm/yZsr5R0K7ChG54oI9GH0KN+lyOQNNP2Vv0av98kzQLeZvv2fL0+cGY/SlNXTdLZwCG27ysdSy9ijT5MevmE6VEsrKVzBfDpVu2VClwkaZcqauZ0cHle3urL0tMALNVK8gC2f5frGzXBCsBvJV3H0L/72p8BaBcz+jDp5V0ft7BwO9zbgY1t71HR+G8Gvkc6/fkUC9fQK+kZ2++lp36TdCrp3svp+aF9gSVtv7NcVOMj6TUjPW77ikHH0otI9GHSG63WTUXj30k6FDS36Wu5/ZC3J36AtlaOwNebcoBK0kqkyqSQ6vQ8UDKebkwpHUAIw0n6nKSPSnpRRUM+JmnbtvG3AR6raGyA3wO39CvJS1pe0hcl3ZC/vpCXoxrB9hO2v2h7D9tvtv2lBiX5vYHrgL2AvUlN5v+jbFQTFzP6UDuSdidtadvY9n9WMN4mpGWb5UkzyoeBd9ie3evYefxvA+sAFzF0Hbeq7ZV9XXrqF0lzGeVUcBPq6Ss1rt+5NYuXtCJwaVWVVQclbsaGoiQ9J1dlfE5rlmf7x1W+hu2bgY0lTcvX86scH7grfy1NtQe9Wta1vWfb9dG50Fnd7VY6gApMGbZU8xANXAmJRB9K+0ZusPE14N1VDizpwx0eB6qbcbf2y0uaavvRKsYc5jFJ29q+Or9O1UtP/fKnsZaz2k9E19TPJV3M0DLFPysYT1ca984UJg9J25EaOFwFzMrXVVpujK9KSNpa0m+BW/P1xpIqKciWHQh8TdLdku4Gvko6PVx3l0s6OFd8XEDS0pJ2lPQdYP9CsY2L7SOAk4HppHo9J7s5vXoXiDX6UEzeuvZy4J3AqaQbmgM/LSnpSNvH9PD7M4H/AH7SKsQm6RbbL68qxjxmv5ae+kLSMsC7SNsp1wb+DixDKkdxCfC1vKwW+ixm9KGYvBd5C+DVwOYFj8Tv1esAtu8Z9lBlHbLyLqTn255ve34u4/zZEf2eNwAAIABJREFUqsbvF9uP2/667W1IdXpeC2xqe03bB9Q5yUt6RNL8Eb4ekdSIN9p2kehDae/PjUEOKhhDr41B7pH0KsB5WeIj5GWcivyb29oG2v4b0IjuUpAKg9l+yvZ9rX+OXCystmwvZ3vaCF/LVXUQbpAi0YeiWrW9C9f47nX98v2kA0GrAfcCm+TrqiyRDx0BC1ojPmeUP183Q9rtSVqSVPo3DEjsugmhxxm97QdJ69D98j3gMkmnkd6U3kUDuhtJOhL4OPDctuUOkVrwnVwssMVQ3IwNxUlaOzfTGPWxPr7+x21/roffXxs4mEXr0VdW+ErS62kr42z74qrG7jdJx9g+snQci7NI9KG4kVrtSZpVVRnbfififHryWyxaj75Rha/6pdO22SbUo58sYukmFCNpA9L67fKS2o/zTyNtw6vKj0mJ+ALaEnGFHrf9lT6MO1kc0fbzMsCWpCYqta++KekRFr2HM490/uNw23cOPqqJi0QfSnoZ6Zj884E3tj3+CHBAha/T70R8gqSjSHvDm1gvvq9st/+7RdLqwPGFwpmoLwJ/Bs4gLZu9BVgZuJ109mP7YpFNQCzdhOIkbW37130c/23AS+lTIpZ0DKnQ2B9Y+ImhMfXiB02pBsUc2xuVjmUsI3X3knSt7VdKmt2U4mYxow91cIekj7PoGvq7Khp/I1Ii3pG2REx1SwdvBtax/WRF440qlw74J+lk6S2DeM1eSDqRhcsfU0jbTyupHDoAz+ZSxefk6/YSxY2ZJUeiD3VwPqnezaVUeKK0Tb8T8WzS8tOgGlJ8FViD9ObVhLorN7T9/DSpX+w1pYKZoH2BE4CvkxL7tcB++SzDB0sGNhGxdBOKq7LbU4fxfwAc3K/OQJJmkIpeXU/FfUUlrWL7Pkkr276/1/FKkbQ0sAEpWd4+qE8/IYkZfaiDCyXtartf5V9XAm6TVHkizo6qaJyRfDofPDoaeF8fX6dvJO0KfJN0D0PA2pLeZ/uispGNLTcaOYD+LSsORMzoQ3F5C9tUUhLuR3PtRjZ4lrQ/aYmmVd3zT7a/WzaqiZN0G7Cb7Tvy9brAT21vUDaysUn6FbmMNm3LirbPLRZUF2JGH4qzXVlt+A7jXyFpTeClti+V9DxSqdxK5DMAxwEvJr1JVfVGNYPUUPs3pA5WV/c4XikPtJJ8dieDu5/Rq+c1sf78cDGjD8VI2sD2bZI2Hen5Crc/HgC8F3ih7XUlvRT4hu3XVjT+HcAbbVdZsbI19jfIjUdsl6zw2TVJJ5HKFP+QtEa/F2kf+jUAtn9ULrrR5XLQv+rjsuJARKIPxUg62fZ7JV0+wtOV7UPP/VW3BGa2NQaZW9U+bknX5JrrYQS5GFsnrvN6d9uy4pOkZUWocFlxUCLRh0mvdehF0k22X5HL5N5oe3qP47bKNryGdFryxwy92VvbmWqd9NrhK4wt1uhDMe0Nrzs8Pw1Yo4JDQVfkA1nPlbQzqcnJBT2OCUPLNvwT2KXt2kAk+vHZC6htopf0JqBVmG2G7QtLxtONmNGHYiR9CdgK+DlpV8NfSUWv1gN2IK3rHm77+h5fZwrwblIiFnAxcIrjP/5aaH3SKh3HSCQdS2p3+f380FuBWbY/Vi6qiYtEH4qS9ALSsfJtgFWAx0ht+H462my/TiQdD3yWFPvPgY2Bw2x/r8dx20sHLML2Ib2MXxcjlamuC0lzgE1sP5uvlwBu6nXZb9CilWAoyvbfbP+v7XfYfp3t3W0fWWWSl7SbpJskPdynBs+72J5PqsR5L7A+Q0vzdusG0iedZYBNgd/nr03oT6mIUnrt2dtvz2/7efliUfQg1uhDMZI+PNrztr9Y0Ut9GdgDmNun5Zql8vddSXVcHk4FGntj+zsAkt4B7GD7qXz9DVIlzsni7NIBjOIY4Ka8M0yktfrGdcuKRB9K6utBqTb3ALf0cU3+gnz68zHgoHxsvspm56uS/q4eztfL5scaQdJIvQDmATfYPr+XNo79ZvvMXMtoC1Ki/2gTaw7FGn2Y9CRtAXwGuIKh2x+r+sTQutcw3/YzkqYCy1WVECS9E/gU0Dpv8BrgU60Zf91JOplU0Kw1c9+TdNp3deBO24eViq2TTof4WprWVCYSfSimw0xvgapuNkq6BPgHi/Z0PbqK8QdB0sqkHUqQDn41ZlYp6Zek+xhP5+slSUtPO5OW0zYsGd9IOhzia2lcU5lYugklzRrQ67zQ9i5j/7F6GaFExD35+6qSVm3QrHI10unSefl6KrBq/vTzROdfK8f2DqVjqFIk+lDMAJceLpW0i+2m3cD8MKlGzxdGeK7KDln9djxwc17rbt3Q/Fxe4rq0ZGCLi1i6CcXlm5cfBTYkbSUEoMJaN30pgzzZ1nH7SdIqpHpDAq6z/efCIS1WYkYf6uD7wA+ANwDvB/YnnZKtRB/LILdm2ssAm5NaCorUbWomqcRwzyQtRapgueAYPvDN1nbLhphC+ne6JLCepPVsX1k4psVGzOhDcZJm2d5M0pzWiUNJV9gesWFIl6+xGqmkQnuXoEoSjaSzgP+xPTdfvxz4iO13VDT+KaS9+q2lrrcDz9h+TxXj95uk44B9SDttFjRnr7DDV99Iumx4OeuRHqu7mNGHOmjNTO+T9Abgz8BLqhq8LdH8loUnSg1UNaPcoJXkAWzfIqnKHrhb2N647fqXkmZXOH6/7Q68zHYtb7yORNIywPOAFfLW2dYJuGk06AxDSyT6UAeflbQ8cDhwIul/pg9VOH6/E82tedb9PdIbyH6kej1VeUbSurb/ACBpHZpVAuFO0ieSxiR6Un/ew0hJfRYLE/184GulgupWLN2E2uu1Xrmki4C9bP+jwrDax1+GoWvoVwIn2a7kdKyk1wKnkRKmSEtQ77Q92l7v2pB0LqnQ22UMPbBW+6Jskg62fWLpOHoViT7UXrfVDduqP65GQxNNi6TnAC8jJfrbGrYMsv9IjzfhZK+kvYCf235E0n+Tist9tmk7qiLRh9rrtl55pwTT0muikfRD23tLmssI5YSrKmWb1+PPAn7YWr5pGklLk6p6AtzelB1DrQ0CkrYlFTj7f8DHbW81xq/WSiT6UHtV1ivPN9ZWtz2ngrFWsX2fpDVHet72H3t9jfw6a5JuJu9D2rXyA1LS/1MV4/ebpO1JO4buJn0iWR3YvwnbK9vaTx5DKtdwRp0bpXQSiT7UXq//Y+UTmW8ibT64mbSf+wrbo5ZJnuBrrESqcAjpQNADVY097HVeCnwS2Nf2Ev14japJmgW8zfbt+Xp9UjnnzcpGNjZJFwL/B+wEbEaqUHrdsF1QtReNR0IT9FqvfPncGGQP4LScYHbqPaxE0t7AdaTep3sDMyX9R1Xj59dYS9J/kZZwNgD+q8rx+2ypVpIHsP07Ftbwr7u9Sa0nX2/778ALqaapzEDFjD4UJ+klpG2V25KWJq4GDrV9b0XjzyX1i/0O8Anb17cfzqpg/NnAzq1ZfC7pcGlVsz5JM0mJ8YekJZs7qxh3UCSdSrqHcXp+aF9gSdvvLBfV+OX2gSsx9LBdI5bNWmIffaiD04AzSDNiSPvQTyOVsa3Cp0mzsqtzkl+H1JKvKlOGLdU8RLWflve3fVuF4w3agcAHgENIa/RXAl8vGtE4SToYOAr4C22nekllLhojZvShOEk3295krMfqStLnSf/jn5kf2geYY/ujPY67H3CGc2PqEZ5fF1jFDWmi3kSS7gC2sv1Q6Vh6ETP6UAcP5qTWSpRvJc2KG8H2EZL2IC09CTjZ9nkVDP0iUr/SWaTTmX8lFVBbj9Rl6kHgYxW8Tl902nbaUtXSWZ/dw8I6+o0VM/pQnKQ1gK8CW5MSw6+AQ5qyDirpQ8DZVd1TGDb2EqS689sAq5B2fdwKXFT3v59O205bqtp+2k+SvkU6qPZT+tSGchBiRh/qYPXhlQwlbQPUOpG1mQZcLOlh0q6Yc2z/pYqBbT8D/CJ/NUoTEvk4/Cl/LZ2/Gilm9KG4kQ5EVXxIaqT98vOAWbZvruI18utMJ63P7wnca7uyLZxtr/E72+uP/SfrIzd+GZ5o5gE3AIc3YReRpOVIpZX7Ui+p32JGH4qRtDXwKmDFYcl4GlDlYaDN89cF+foNwPXA+yWdbfv4il7nAeB+0v2FF/c6WFuCVNvDz2s93muHrAH6Iqn09Bmkf5a3ACsDtwOnAtsXi2wMubfA6aT980h6EPhP278pGtgExYGpUNLSwLKkCcdybV/zgSoPHL0I2NT24bYPJyX9FUnVJt/R6+CSDsynby8DVgAOqOhG47eBHwPr2V4ud8r6U/65KUke0mGjb9p+xPZ82ycDu9r+AfCC0sGN4WTgw7bXtL0mqZT2/xaOacJiRh+KsX0FcIWkb4+2nivpRNsH9/BSawBPtl0/Baxp+zFJVVSBXBM4rMplIADbB0vaDDhT0o9JN6ybuNb6bD49fE6+bn8Tr/s/z9T2ctC2Z+Sm5o0SiT4UN46bdtv0+BJnANdKOj9fv5GUPKeSuk71xHbftjjaniVpJ+CDwBW0NU9vkH2BE0iHpAxcC+wn6bmkf646u1PSJ1l4qnc/4K6C8XQlbsaG2qvixqykzUlvGCKdkL2hkuAGSNIqwCts/6x0LIuLXO30aBY2er8SONr238pFNXGR6EPtVZToG1evJJ8veMD245JEup+wKelTyP/afrpkfOOVa/8cAKzF0L//d5WKaXETSzehCTT2Hxnll4fWK3kmj9eEeiU/A7bMPx8LrEu6ObsjqSRyUxLl+cBVwKU0q9ctkn5BakP593z9AuAs268rG9nERKIPTXBCj79/KKk5eGPKKmRTbP8z/7wTsEWue/O9XDGzKZ7Xa92fglZoJXkA23+T1PPW2UGL7ZWhOEmbSzpP0o2S5kiaK2lBByjb3+7xJZpar+QeSTvmn+8mdWZC0ouKRdSdCyXtWjqILj2bl9CABWUdGrfeHWv0oThJt5OaOcxlYSnYKlvxNbJeiaTVge+SDo/NI90QvIm09/wI25cWDG/c8gGvqaQtrq1esY048CXp9aS99Ffkh7YD3mv74nJRTVwk+lCcpKttbzv2n+x6/KNGetz20f16zSpJ+hdSY+0lgXuB6zuVLg7Vk7QC8ErSvZ1f236wcEgTFok+FCfptaTSxJcxdMb9o4pfp5H1SiQdN3yNe6TH6kzSm0izYYAZti8sGc/iJhJ9KE7S90h9UH9DWxefqrbfDa9XQqrj3ph6JR2KvlXWCrHfJB1L2iX0/fzQW0kF5WpbS3+yiUQfipM01/ZGfRz/V6ResZfn6+2Bz9l+Vb9eswqSDgQOIm2rvKPtqeWAa2zvVySwCco31jdpLTflMw03NeWNajKI7ZWhDq6VtKHtnssRdNDUeiVnABcBxzC0k9Qjth8uE1LXng+0Yl6+ZCCLo0j0oQ62BfaXdBdpjV6kpZuqZnyNrFdiex4wT9J/A/fbfiJ/Gpku6bvt+7tr7hhSS8TLSf9utwOOLBtSdyTdmn/8mu2vFg1mAmLpJhTXqeVchdsr2+uViFSv5FNNqVci6WZSaeW1gIuBn5AOgDVmb3qu07MF6e9/pu37C4fUtXyO4ZW2f1o6lvGKRB+Kaz+Q0q7utWgGpXUzVtJ/AY/ZPlHSTbZfUTq20UgatT6R7RsHFUs3JO1k+1JJr7V9Wel4ehFLN6EOfsrCTkrLAGuTug/9ay+DSrqAUU4xDu9TW2NPSXor8J+kEssASxWMZ7y+MMpzJtXsqbPXSHqM1AGr0Yk+ZvShdvJM8H2239fjOK8Z7fnc+KT2JG0IvJ90WOdMSWsD+9g+tnBolZC0s+1aNT/Ph+ymAgcDXwEetf3pslF1LxJ9qKUqm4OHeqvrv2tJ7ya1hvyr7VNLx9OLWLoJxQ1rDD4F2Az4a6FwakfSS0k7VzakrcOU7XWKBVWtnspQ99E028dJOrR0IL2K6pWhDtobgz8HuBD496IR1ctpwEnA08AOpEJnp4/6G81Sy2UF21/K33stk11cLN2EWpE0BVjW9vzSsdSFpFm2N2s/QSzpKtuvLh1bFeq6dDOZxNJNKE7SGaSbjc8As4DlJX3R9ucrGn+k3TfzgBuAb9p+vIrX6aPH8xvg7yV9EPg/oHHNL0Zxd+kAJruY0YfiJN1sexNJ+5LW5z9KKnpVyclYSScAKwJn5of2Ae4Hnktah317Fa/TL5K2AG4llRH4DDAN+Lzta4sGNk65ts0bWLRnbK37AUwmMaMPdbCUpKWA3YGv2n5KUpUzkFfY3q7t+gJJV9reTlLtK1javj7/+A/gnSVj6dIFwOMMayzTBJLm0vnT4Geb0p4yEn2og2+SPr7PBq7MJRGqXKNfUdIarZO2+STuCvm5Jyt8nb6YBA2qX9LgSpUXkZYUz8jXb8nf5wPfZuEBtlqLpZtQO5IELGH76Xy9v+3v9DDersA3gD+QtvKtTSr/OwM4wPaXew66j0Yqd9CEEggtko4DLrN9SelYJkrSNba3GemxfpfXrlLM6EPtOM0+nm576FCg60Rv+2d5L/oGpER/W9sN2Fon+ezZYZ9Imtag+lrgvHxD+SkWVietfc9YYFlJW9meCSBpS2DZ/NzTnX+tXiLRhyao4kDNZiy8GThdEra/W8G4g/AJ4GpJQxpUF4xnor4AbA3MdfOWEN4DnCppWdJ/h/OB9+R+BscUjWwCYukm1F6v+6wlnU7q0nQzab0V0ozykCriG4QmN6iWdDHwb01uaC5peVK+bEoPgCFiRh+aoNcZ/ebAhk2bTY5Q5vfP+fsaeSmn1mV+29wHzJB0EUObv9d+e6Wk5wB7kj8NpttH0LQCZ5HoQ3GS1rZ91yiPXdPjS9wCrExKOE3SKvO7DOnNajbpTW86MJPUSKUJ7spfS+evJjmftJ1yFm1vUk0TSzehuJGWZlrH/isa/3JgE+A6hs4oG1GPXtJZwP/YnpuvXw58xPY7igY2QZKm2n60dBwTIekW2y8vHUevYkYfipG0Aam5yPKS9mh7ahptVRor8KkKxyphg1aSB7B9i6RNSgY0EZK2Br5F2q2yhqSNSf0GDiob2bj8StJG7X//TRSJPpT0MmA30tH+9oMnjwAHVPUitq+QtBKpZynAdbYfqGr8AbhV0inA90jbKvcjlURoii8DryP1usX2bEnbjf4rtbEt8I4+Nq4fiFi6CcVJ2tr2r/s4/t7A50kHpAS8GjjC9jn9es0qSVoGOJC0rRJSc/OTGlCMDQBJM21v1X7IS9Js2xuXjm0s/W5cPyiR6ENxklYkzeDXYmjRq3dVNP5sYOfWLD6/3qVNSDSTgaRzgC8CXyVtET0E2Nz2W0b9xZrIS02tktBX2Z5dMp5uxNJNqIPzgauAS1m4z71KU4Yt1TxEg5ruTIIOU+8HTgBWA+4FLgE+UDSiccrdpQ4AfpQf+p6kk22fWDCsCYsZfSiuVaa4j+N/nrQlsb1M8RzbH+3Xa1ZJ0tXAUcCXSPcy3kn6f/eoooEtBiTNAbZu7RbKJ2J/HWv0IUyQpM8Cv7L9sz6+xp7ANqQ1+ittn9ev16pa0ztMSVobOJhFl+Zqv701lyneonU/JN8vub4pxcxaYukm1MGhwMclPUGfil7ZPhc4t6rxBqzpHaZ+TNpeeQENq0dP6tc7U1JrYrA76Z+lUWJGHyYtSY8wcpXHJlVPHKnD1PLA8Q3qMDXT9lal4+hWLkWxLQs/Dd5UOKQJi0QfipG0ge3bRqjpAkCDarkMhKTlSG9Q/ygdy0RIehvwUtJN2PaTybX99yvphaM9b/vhQcVShUj0oZi8e+G9uUTBcLa948CDqiFJGwHfBVrJ50Fgf9u3lItq/CQdA7yd1PiltXRT63+/+YCUWVhQr5UoW58Gm7LjCYhEHxpA0s62f1E6jlIk/Qr4hO3L8/X2wOdsv6poYOMk6TZguu3at22crBqzlzgs1o4rHUBhU1tJHsD2DGBquXAmbDbp/kIoJHbdhCaoosNUk90p6ZPA6fl6P1LZ36ZYCbhN0vU0sHroZBCJPjTB4r6++C7gaBaezrySdGiqKeJgV2GR6EOoMUlLAB9vUtvD4WxfMfafqqcOu28esf3UwIPpQazRhya4u3QApdh+htTYvLEk7SHp95LmSZov6RFJ80vHNU43An8Ffgf8Pv98l6QbJTXm30vsugnF5VnrG1j0iHzte4oOgqQvkPahnw0s6NBk+0cdf6lGJN0BvNF2k2roAyDpG8B5ti/O17sArwd+CJzQlINgsXQT6uAC4HFgLs07Ij8ILyRV3Gzfd24WrtnX3V+amOSzzW2/v3Vh+xJJn7P94dw4vBEi0Yc6eEnTqgEOku0m3XhdoK095A2SfkCqedO+66YJb1QPS/oocFa+3gf4W/4U2phJSSzdhOIkHQdcZvuS0rHUkaR1SPXcX0mayf8aOMx2rbdYSjptlKddVWOZfpK0AmnXUKvWzdWkHVDzgDVs31EwvHGLRB+Kk/RmUj/UKfSpemWTSboW+BoL6+m/BTi4KevDobzYdRPq4AvA1sDzbE+zvVwk+SFk+3TbT+evVpPwRpB0vKRpkpaSdJmkByXtVzqu8ZC0vqSTJV0i6Zetr9JxTVTM6ENxki4G/s12Y9Y8B6FtD/d/AX8nrRObtE78HNufKRXbRLQ6iOVPbrsDHwIub0LP3txv+BvALNraXNqeVSyoLsTN2FAH9wEzJF3E0Jt1i/v2ylkMraD4vrbnTKpN3wRL5e+7AmfaflhqTFWLp22fVDqIXkWiD3VwV/5aOn8FwPba4/lzDajueUGuYPkYcJCkFUnbaZvgAkkHAecxdBIS9ehD6Iakqa0mzGH8JN1oe8TmLXUh6QXAfNvP5Abby9m+v3RcY8l16YdrXD36mNGH4iRtTerDuSywhqSNgffZPqhsZI1R+3UQ239r+/lR2k741tl4P1XVXST6UAdfBl4H/ATA9mxJ25UNqVHiY3mfSFoKOBBo/fc4A/hm04qaRaIPtWD7nmE36J7p9GdDGKCTSDeTv56v354fe0+xiLoQiT7UwT2SXgVY0tLAIUBTa6OUcHfpAEbSqel7S52bg7fZYtg20F/mLZeNEok+1MH7SUf8VwPuBS4BPlA0ohoZq7qn7T1G/s3ivpC/LwNsTmopKGA6MJNUVqDunpG0ru0/wIJyFI37tBmJPhRn+0Fg39Jx1Fgjq3va3gFA0lnAe23PzdcvBz5SMrYJOAK4XNKdpDepNWlWdy8gtleGGpC0NnAwi85Yo6coIGlOk6t7tk7GjvVYXeVyxC8jJfrbbD8xxq/UTszoQx38mLS98gIaNGMdoIsk7dLg6p63SjqFVLjOpObmtb4H01Ziebh1JTWlxPICMaMPxUmaGZUYO2t6dU9JyzB0i+KVwEm2a3s6djKUWG4XiT4UJ+ltpFZ5lzD0mHkTdmX0XV4f3h2Y6/gfNnQhlm5CHWxE2p+8IwuXbszQ1nmLs98DtzQtyUv6oe29Jc1lhENddb7vkMson9GpoqqkdYFVbF892Mi6E4k+1MGbgXVsP1k6kJpqanXPQ/P33YpG0Z0XATdJmkWqIvpX0jbR9YDXAA8CHysX3sREog91MBt4PvBA6UBqqpHVPW3fl7//UdJKwBb5qets1/rfte0TJH2V9KlyG9Le/8dIN5HfbvtPJeObqFijD8VJmkH6H+l6hs5YY3tlm6ZW95S0N/B5Up0YAa8GjrB9Tsm4FieR6ENxkl4z0uO2rxh0LHXUXt3TduOqe+aSATu3ZvG5Hv2lde4wJelERikWZ/uQAYbTs1i6CcVFQh9T06t7Thm2VPMQ9e9XfUPpAKoUiT4Ulw+nHAe8mPTRvlH7xAeh4dU9f577Ap+Zr/cBflYwnjHZ/k7pGKoUiT7UwfHAG23X+rRkQY2u7mn7iPxmvi3pTfxk2+cVDmtUki5g9KWbRt0/ijX6UJyka2xvUzqOupK0Aqm6506kRHkJcKjth4oGNk6SPgScbfve0rGMV6f7Ri1NW26MRB+Kaasn8hpgZVLNm/ZdN42qJxJGJukoYG/gYeAs4Bzbfykb1eIlEn0oZrLVE+mXyVLdU9J00vr8nsC9tncqHNKYJL0UOAbYkHRgCoBoDh7CONluXF3vQiZLdc8HgPtJu25eXDiW8ToNOAr4ErADqRZ97ZuxD1f3LU5hMSDpeEnTJC0l6TJJD+ZaIyF53PZXbF9u+4rWV+mgxkvSgflQ3GXACsABda5zM8xzbV9GWv34o+1P0cAaTDGjD3Wwi+3/yuV47wX2Ai4nleYNcEJe525qdc81gcNs31w6kC48LmkK8HtJHwT+j+Z8GlkgEn2og6Xy912BM20/PGzP+OKu0dU9bTem+NcIDgOeR9rS+hnS8s3+RSPqQtyMDcVJOpZUb/0xYEtSgbMLoxlJIuk2YHpU96wfSSfaPrh0HGOJRB9qQdILgPm2n5E0FVjO9v2l46oDST8ADq57xcfFkaQbbW9aOo6xxNJNqAXbf2v7+VGgcVUa+2gl4DZJUd0zdCUSfQj1d1TpAEKzRaIPoeaatJVyMdSIXQOR6EMxkkZd22zQ9sG+iuqe5UlajvR3/o9hT51QIp6JipuxoRhJl+cflwE2J7UUFKnb1Ezb25aKrU4k3UFU9yxC0kbAd4EXkv7b/Cuwv+1bigY2QXEyNhRjewfbOwB/BDa1vbntzYBXAHeUja5W/hJJvphvAh+2vabtNYDDgZMLxzRhsXQT6mAD23NbF7ZvkbRJyYDqoK265w15i2VU9xy8qbZbnzyxPSNv/22USPShDm6VdAqp5IGB/WhQY40+emPbz/8Edmm7NhCJvv/ulPRJ4PR8vR9wV8F4uhJr9KE4ScsABwKtPqhXAifZfrxcVCEsOMh3NKk7FqT/Nj9l++/lopq4SPQh1Jyk44HPkkpE/BzYmFQkLIq+9ZmkvWyfPdZjdRc3Y0Mxkn6Yv8+VNGf4V+n4amQX2/OB3UjVPdcHjigb0mLjyHE+VmuxRh8cb29SAAAMSklEQVRKOjR/361oFPUX1T0HTNK/kf6+V5P0lbanpgFPl4mqe5HoQzG278vf/yhpJWCL/NR1UcBriAtyBcvHgIMkrQjE/Yv++jNwA/AmYFbb448AHyoSUQ9ijT4UJ2lv4PPADNKhlFcDR9g+p2RcdRLVPcuQtJTtp0Z5/lzbew4ypm5Eog/FSZoN7NyaxecZ66W2Ny4bWQijk3ST7VeUjmMscTM21MGUYUs1DxH/bYZmaMRMOdboQx38XNLFwJn5eh/gZwXjCWFSiaWbUAv5uP+2pDX6K22fVzik4qK6Z/01ZekmEn0oTtKHgLNt31s6ljqJ6p71J2kX25eUjmMssQ4a6mAacLGkqyR9IG+1XOxFdc/yJO0m6SZJD0uaL+kRSfNbzzchyUPM6EONSJpOWp/fE7jX9k6FQ6oFSTfb3mSsx0L1ci+APYC5bnCyjJuxoU4eAO4n7bp5ceFY6iSqe5ZzD3BLk5M8xIw+1ICkA0kz+RWBc4Af2P5t2ajqI6p7liNpC+AzwBUM7QXwxWJBdSESfShO0rHAWbZvLh1LCO0kXQL8A5gLPNt63PbRxYLqQiT6EGpK0g9t7y1pLiMczLE9vUBYixVJN9jevHQcvYpEH0JNSVrF9n2S1hzpedt/HHRMi5v8afOXTdld00kk+hAaIKp7liHpEWAqaX3+KdI5BtueVjSwCYpEH0LNRXXP0KtI9CHUXFT3LEfSdiM9bvvKQcfSi9hHH0L9RXXPctpbNi4DbElqRLJjmXC6E4k+hPqL6p6F2H5j+7Wk1YHjC4XTtVi6CaEBorpnPSg1651je6PSsUxEzOhDqLm26p4/Kh3L4kbSiSw8wzAF2IRURbRRItGHUH+t6p4PA2cB59j+S+GYFhc3tP38NHCm7WtKBdOtWLoJoSGiumdZuUH76rbnlI5louLOfQjNEdU9B0zSDEnTJL2QtGRzmqRGFTSDSPQh1J6kAyXNAC4DVgAOiDo3A7O87fmkmvSn5cYvjfskFWv0IdTfmsBhUd2ziCUlrQLsDXyidDDdikQfQs3Z/ljpGBZjnwYuBq62fb2kdYDfF45pwuJmbAghdEnSkbaPKR3HWGKNPoQQurdX6QDGIxJ9CCF0T6UDGI9I9CGE0L1GrH1Hog8hhO7FjD6EECa5s0sHMB6x6yaEEDqQ9JURHp4H3GD7/EHH062Y0YcQQmfLkCpW/j5/TQdeCLxb0pdLBjYRMaMPIYQOJP0S2MX20/l6SeASYGdgru0NS8Y3XjGjDyGEzlYDprZdTwVWtf0M8ESZkCYuSiCEEEJnxwM356JyArYDPidpKnBpycAmIpZuQghhFLmo2ZakRH+d7T8XDmnCItGHEMIoJK1GqiC6YAXE9pXlIpq4WLoJIYQOJB1H6ur1G+DZ/LCBRiX6mNGHEEIHkm4HpttuzI3XkcSumxBC6OxOYKnSQfQqlm5CCKGzf5J23VxG23ZK24eUC2niItGHEEJnP8lfjRZr9CGEMApJSwPr58vbbT9VMp5uRKIPIYQOJG0PfAe4m7SPfnVg/6Ztr4xEH0IIHUiaBbzN9u35en3gTNublY1sYmLXTQghdLZUK8kD2P4dDdyFEzdjQwihsxskfQs4PV/vC8wqGE9XYukmhBA6kPQc4APAtqQ1+iuBrzftAFUk+hBCmORi6SaEEIaRNJdU02ZEtqcPMJyexYw+hBCGkbTmaM/b/uOgYqlCJPoQQpjkYukmhBA6kPQIiy7hzANuAA63fefgo5q4SPQhhNDZF4E/A2eQdt28BVgZuB04Fdi+WGQTEEs3IYTQgaSZtrca9ti1tl8pabbtjUvFNhFxMjaEEDp7VtLekqbkr73bnmvMLDlm9CGE0IGkdYATgK1Jif1a4EPA/wGb2b66YHjjFok+hBAmubgZG0IIHUhaETgAWIu2fGn7XaVi6kYk+hBC6Ox84CrgUuCZwrF0LZZuQgihA0k3296kdBy9il03IYTQ2YWSdi0dRK9iRh9CCB3kk7FTgSeBVq9Y255WLqqJi0QfQgiTXNyMDSGEUUh6E7Bdvpxh+8KS8XQjZvQhhNCBpGOBLYDv54feCsyy/bFyUU1cJPoQQuhA0hxgE9vP5uslgJua1ngkdt2EEMLont/28/LFouhBrNGHEEJnxwA3SbqcVKZ4O+DIsiFNXCzdhBDCKCStQlqnFzDT9v2FQ5qwSPQhhDCMpE1He972jYOKpQqR6EMIYZi8VNOJbe84sGAqEIk+hBC6JGln278oHcdYItGHEEKXJN1oe9RlnjqI7ZUhhNA9lQ5gPCLRhxBC9xqxJBKJPoQQJrlI9CGE0L27SwcwHnEzNoQQOsi1bd7Aoj1jv1gqpm5ECYQQQujsAuBxYC7wbOFYuhaJPoQQOntJ0ypVjiTW6EMIobOLJO1SOohexYw+hBA6uxY4T9IUUs9YET1jQwhh8pB0J7A7MNcNTpaxdBNCCJ39HrilyUkeYukmhBBGcx8wQ9JFwBOtB2N7ZQghTB535a+l81cjxRp9CCGMQdJU24+WjqNbsUYfQggdSNpa0m+BW/P1xpK+XjisCYtEH0IInX0ZeB3wEIDt2aQG4Y0SiT6EEEZh+55hDz1TJJAexM3YEELo7B5JrwIsaWngEPIyTpPEzdgQQuhA0grACcBOpFOxlwCH2n6oaGATFIk+hBAmuVi6CSGEDiStDRzMovXo31Qqpm5Eog8hhM5+DHyLVJe+sfXoY+kmhBA6kDTT9lal4+hVJPoQQuhA0tuAl5JuwrbXurmxWFBdiKWbEELobCPg7cCOLFy6cb5ujJjRhxBCB5JuA6bbfrJ0LL2Ik7EhhNDZbOD5pYPoVSzdhBBCZysBt0m6nqFr9LG9MoQQJomjSgdQhVijDyGESS7W6EMIoQNJe0j6vaR5kuZLekTS/NJxTVTM6EMIoQNJdwBvtN24ipXtYkYfQgid/aXpSR5iRh9CCIuQtEf+8TXAyqSaN+27bn5UIq5uRaIPIYRhJJ02ytO2/a6BBVOBSPQhhDDJxRp9CCF0IOl4SdMkLSXpMkkPStqvdFwTFYk+hBA628X2fGA34F5gfeCIsiFNXCT6EELobKn8fVfgTNsPlwymW1ECIYQQOrsgV7B8DDhI0orA44VjmrC4GRtCCKOQ9AJgvu1nJE0FlrN9f+m4JiISfQghTHKxRh9CCJNcJPoQQpjk4mZsCCEMI2nT0Z5vWnPwWKMPIYRhJF2ef1wG2JzUUlDAdGCm7W1LxdaNWLoJIYRhbO9gewfgj8Cmtje3vRnwCuCOstFNXCT6EELobAPbc1sXtm8BNikYT1dijT6EEDq7VdIpwPcAA/sBjatPH2v0IYTQgaRlgAOB7fJDVwIn2W7U6dhI9CGEMMnF0k0IIQwj6Ye295Y0l7RkM4Tt6QXC6lrM6EMIYRhJq9i+T9KaIz1v+4+DjqkXkehDCGEUklYCtsiX19l+oGQ83YjtlSGE0IGkvYHrgL2AvYGZkv6jbFQTFzP6EELoQNJsYOfWLD7Xo7/U9sZlI5uYmNGHEEJnU4Yt1TxEA/Nm7LoJIYTOfi7pYuDMfL0P8LOC8XQllm5CCGEUkvYAtiUVNbvS9nmFQ5qwSPQhhNCBpA8BZ9u+t3QsvWjcWlMIIQzQNOBiSVdJ+kDeatk4MaMPIYQxSJpOWp/fE7jX9k6FQ5qQmNGHEMLYHgDuJ+26eXHhWCYsEn0IIXQg6UBJM4DLgBWAA5pW5wZie2UIIYxmTeAw2zeXDqQXsUYfQgiTXCzdhBDCJBeJPoQQJrlYow+LBUkvIt1QA1gZeAb4a77+p+1XFQkshAGINfqw2JH0KeAftv9fH19jSdtP92v8ECYiZvRhsSfpH7aXlbQ9cDTwF2AT4EfAXOBQ4LnA7rb/kEvVfgNYIw9xmO1r8hvIqsBawIPA2wb5zxFCJ5HoQxhqY+BfgIeBO4FTbG8p6VDgYOAw4ATgS7avlrQGcHH+HYDNgG1tPzb40EMYWST6EIa63vZ9AJL+AFySH58L7JB/3gnYUFLrd6ZJWi7//JNI8qFuItGHMNQTbT8/23b9LAv/f5kCbD08oefE/2i/AwxhomJ7ZQgTdwnwwdaFpE0KxhLCmCLRhzBxhwCbS5oj6bfA+0sHFMJoYntlCCFMcjGjDyGESS4SfQghTHKR6EMIYZKLRB9CCJNcJPoQQpjkItGHEMIkF4k+hBAmuUj0IYQwyf3/CvUi9tCKk4sAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"profile.interval_data().groupby('Timer').agg({'Exclusive': 'mean'}).plot.bar(log=True)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.5"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment