{ "info": { "author": "Marshall Ward", "author_email": "cubex@marshallward.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "License :: OSI Approved :: Apache Software License", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Utilities" ], "description": "=====\ncubex\n=====\n\n``cubex`` is a Python module for analysing CUBE (.cubex) profiles.\n\n\nQuick start guide\n=================\n\n``cubex`` is still a work in progress, but it is currently useable and the\nfollowing instructions should help you get started.\n\nTo create a new ``Cube`` object, open a new file.\n\n.. code:: python\n\n >> import cubex\n >> prof = cubex.open('profile.cubex')\n\nUse the ``show_metrics()`` function to list the available metrics.\n\n.. code:: python\n\n >>> prof.show_metrics()\n bytes_sent\n visits\n time\n ...\n\nBy default, ``cubex`` does not load all available metrics into memory. To load\nthe desired metric, say ``time``, use the ``read_data()`` function.\n\n.. code:: python\n\n >> prof.read_data('time')\n\nThe ``Cube`` stores the call tree in a list, ``prof.calltrees``. For most\nprograms, this will consist of a single entry. For profiles containing\nmultiple executables (MPMD), each program's calltree will be an element in the\nlist.\n\nThe call tree can be printed using the ``print_calltree()`` function inside the\nprofile's calltree.\n\n.. code:: python\n\n >> prof.calltrees[0].print_tree()\n\nThis displays each node of the call tree, indented by depth, and labeled with\nits corresponding region.\n\nAt this point, it helps if the user has some intuitive feel for the call tree\nin the profile. (And if anyone has feedback on how to improve this, please\nsubmit feedback.)\n\nHaving said that, if one knows the function (or \"region\" in CUBE parlance) of\ninterest, then the data is accessed with the ``region`` property.\n\n.. code:: python\n\n >> prof.regions[reg].cnodes\n [,\n ,\n ...\n ]\n\nThis returns a list of each node (actually subtree) in the call tree where this\nfunction was called.\n\nTo distinguish between ``cnodes``, one can inspect its call tree (using\n``print_tree()``) or inspect its parent node.\n\n.. code:: python\n\n >> cnode = prof.regions[reg].cnodes[0]\n >> cnode.parent.region.name\n 'function_name_calling_cnode_'\n\nOne can also inspect the node index (``cnode.idx``) although this requires some\nknowledge of the tree itself, which can be checked using the CUBE graphical\nbrowser.\n\nFinally, to get the metric values at the target ``cnode``, access its\n``metrics`` property.\n\n.. code:: python\n\n >> prof.regions[reg].cnodes[0].metrics['time']\n (496.59532077590507, 291.106782542039, 496.5975198073004, ...)\n\nThis returns a list of the time measured in each computational unit, such as an\nMPI rank or OpenMP thread.\n\n\nNotes\n-----\n\n* Region names follow C conventions. Fortran programs will typically convert\n any function names to lower case and will append a ``_`` to the end of the\n function name. For example, a function named ``GET_LAPLACIAN`` will be\n stored as ``get_laplacian_``.\n\n This is the usual convention, but other compilers may deviate from thisj\n so it's recommended that you inspect the regions before accessing them.\n\n* Currently only Score-P output is supported in the ``main`` branch. Scalasca\n output is slightly different and currently does not work as well in\n ``cubex``.\n\n We have some internal versions that do work, but are not yet user-friendly\n and would need a bit of a cleanup before releasing publicly.\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/marshallward/cubex", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "cubex", "package_url": "https://pypi.org/project/cubex/", "platform": "", "project_url": "https://pypi.org/project/cubex/", "project_urls": { "Homepage": "http://github.com/marshallward/cubex" }, "release_url": "https://pypi.org/project/cubex/0.1/", "requires_dist": null, "requires_python": "", "summary": "CUBE .cubex library parser", "version": "0.1" }, "last_serial": 3046693, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "dbce0292be33b605e5f871ab4dac3b98", "sha256": "a847b3eaca37cbb848247644301c6c9d5cfa22be43f702360838cf84e4c8034e" }, "downloads": -1, "filename": "cubex-0.1.tar.gz", "has_sig": false, "md5_digest": "dbce0292be33b605e5f871ab4dac3b98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9736, "upload_time": "2017-07-25T07:13:55", "url": "https://files.pythonhosted.org/packages/a0/20/5d6dc9295a96a9d356ab43f5ddced413d384bb7f5ef865dc8986ce71b5a1/cubex-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dbce0292be33b605e5f871ab4dac3b98", "sha256": "a847b3eaca37cbb848247644301c6c9d5cfa22be43f702360838cf84e4c8034e" }, "downloads": -1, "filename": "cubex-0.1.tar.gz", "has_sig": false, "md5_digest": "dbce0292be33b605e5f871ab4dac3b98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9736, "upload_time": "2017-07-25T07:13:55", "url": "https://files.pythonhosted.org/packages/a0/20/5d6dc9295a96a9d356ab43f5ddced413d384bb7f5ef865dc8986ce71b5a1/cubex-0.1.tar.gz" } ] }