{ "info": { "author": "Tobias Schwackenhofer", "author_email": "tobiasschw@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: POSIX :: Linux", "Programming Language :: Python :: 3" ], "description": "# SST-DUMPI Python Bindings\nPython bindings for the SST-DUMPI Trace Library.\n\n## Install\nPydumpi is available at [PyPi](https://pypi.org/project/pydumpi):\n\n```bash\npip install pydumpi\n```\n\n**Note**: The PyPI package contains a prebuilt shared library, this might not \nwork on very old systems, and is linux only. If this does not work for you\ninstalling from source is your only option.\n\n## Install from Source\nClone this repository and install the package with pip in a virtual environment, e.g:\n\n```bash\ngit clone http://github.com/justacid/pydumpi\ncd myproject\nsource venv/bin/activate\npip install ../pydumpi\n```\n\nThe install might take some time - if the dumpi library can not be found\non the path it will be downloaded and compiled during the install\nprocess. You can also install libundumpi globally, for more \ninformation on how to install globally refer to the\n[sst-dumpi repository](https://github.com/sstsimulator/sst-dumpi).\n\n## Usage Examples\nInherit from DumpiTrace and override the callbacks you are interested in.\nEvery MPI function has an available callback. A complete list can be found \nin *dumpi/callbacks.py*.\n\n```python\nfrom pydumpi import DumpiTrace\n\n\nclass MyTrace(DumpiTrace):\n\n def __init__(self, file_name):\n super().__init__(file_name)\n self.message_count = 0\n\n def on_send(self, data, thread, cpu_time, wall_time, perf_info):\n self.message_count += 1\n time_diff = wall_time.stop - wall_time.start\n print(f\"Time elapsed in 'MPI_Send': {time_diff.to_ms()} milliseconds.\")\n\n def on_recv(self, data, thread, cpu_time, wall_time, perf_info):\n print(f\"Message received on thread '{thread}' from thread '{data.source}'.\")\n\n\nwith MyTrace(\"path/to/some/trace.bin\") as trace:\n trace.print_header()\n trace.read_stream()\n print(trace.message_count)\n```\n\n**Important:** Since the C backend frees the data after a callback returns,\nit is only valid *within* a callback (including wall and cpu time). If you\nneed to store it perform a deep copy, otherwise you get garbage values.\n\n### Meta Data\nYou can inspect the meta data of a dumpi trace by printing the header and\nfooter. In particular the footer prints a list of all MPI functions that \nwere called during a trace - this information can help guide you in deciding\nwhich callbacks need to be overriden for further analysis.\n\n```python\nwith DumpiTrace(\"path/to/some/trace.bin\") as trace:\n trace.print_header()\n trace.print_footer()\n```\n\nThere also is a utilty function to read all binary traces in a folder. The \nfunction will search for a meta file in a given directory, do some basic sanity\nchecks and return a list with all binary traces.\n\n```python\nfrom pydumpi.util import trace_files_from_dir\n\nfor fname in trace_files_from_dir(\"path/to/data_dir\"):\n print(fname)\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/justacid/pydumpi", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pydumpi", "package_url": "https://pypi.org/project/pydumpi/", "platform": "", "project_url": "https://pypi.org/project/pydumpi/", "project_urls": { "Homepage": "https://github.com/justacid/pydumpi" }, "release_url": "https://pypi.org/project/pydumpi/0.1.3/", "requires_dist": null, "requires_python": ">=3.4", "summary": "Python bindings for the sst-dumpi trace format.", "version": "0.1.3" }, "last_serial": 4078026, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "68caf59e186ca27292a4c23c2d611217", "sha256": "5347b772fd7db66bd188de16f5d04d3ff65619781faab10ccc6aeebc7a21a328" }, "downloads": -1, "filename": "pydumpi-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "68caf59e186ca27292a4c23c2d611217", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 733680, "upload_time": "2018-07-11T21:54:41", "url": "https://files.pythonhosted.org/packages/53/41/26f5a39dd9c0fe365fcc8f4e5cb3f943eb8d8dad8a2894feb52414a23987/pydumpi-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a93279692cbc6f520634a20ebc840b34", "sha256": "d995646914f4fc9afb4963c949df975764743d163fb6ec669be6dbfe7304d43b" }, "downloads": -1, "filename": "pydumpi-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a93279692cbc6f520634a20ebc840b34", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 728445, "upload_time": "2018-07-11T21:54:48", "url": "https://files.pythonhosted.org/packages/31/c3/91ced8ccd1436c6ed149de4897938a03078f403f7b5b19825e29f65b2b3e/pydumpi-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "b4c22e93339ff141bc7e806420f9bd8b", "sha256": "d1e6c4f05fbc4bec30ce3c3b2bb87785bdf424822799a1ba087f7926bc4848a8" }, "downloads": -1, "filename": "pydumpi-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "b4c22e93339ff141bc7e806420f9bd8b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 733684, "upload_time": "2018-07-12T09:55:22", "url": "https://files.pythonhosted.org/packages/a7/4e/7fe9bc455c2e77782d12887d2fc8bf5b6e689ed3855692cc82dc7e9d4f18/pydumpi-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fe0d0a304cfe4756f6e6d6a3914665de", "sha256": "b905abe175ef444461fa42e8db0dc592fb8ef0a5abd43727ae388af5121ebca0" }, "downloads": -1, "filename": "pydumpi-0.1.1.tar.gz", "has_sig": false, "md5_digest": "fe0d0a304cfe4756f6e6d6a3914665de", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 728459, "upload_time": "2018-07-12T09:55:25", "url": "https://files.pythonhosted.org/packages/06/f5/d707edeee18941b2593b17a98184dd8eba0ac3cbaca3828975331bf2a789/pydumpi-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f988737da05e6929557ca56b74aad3a1", "sha256": "076a6d4ec5bd7e4a725a3b9aba3f378d5320b789cf3d8b455922c754303a5d24" }, "downloads": -1, "filename": "pydumpi-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "f988737da05e6929557ca56b74aad3a1", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 733703, "upload_time": "2018-07-13T10:57:46", "url": "https://files.pythonhosted.org/packages/a9/e7/d8bcef907e5089af4bcf2cff714d010b12701771cbf6813c2c42e39b195c/pydumpi-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "61c33cb079d3ea68e1465e3c64973045", "sha256": "ae9613d6ea7daa26558e8876596060f510797e3a15482d05a96de01a32a1506c" }, "downloads": -1, "filename": "pydumpi-0.1.2.tar.gz", "has_sig": false, "md5_digest": "61c33cb079d3ea68e1465e3c64973045", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 728476, "upload_time": "2018-07-13T10:57:51", "url": "https://files.pythonhosted.org/packages/24/91/9f86a2d7c7b5ac026e6c3fb5e3414a4bc44e67f9a580032c709af5dd2e3f/pydumpi-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "f806201368465020a670685c60560f8c", "sha256": "55223609629739c96fd2ccf7e95c00ad32080c60ced477b0ea9540a4267764f6" }, "downloads": -1, "filename": "pydumpi-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f806201368465020a670685c60560f8c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 735068, "upload_time": "2018-07-18T13:33:05", "url": "https://files.pythonhosted.org/packages/e6/93/7a8aeccf1f9042502bbc6b031c5b7d22ae08c732bbac81fdd7cc921949cb/pydumpi-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1dce445bc6a69b81a615f5e70bb532ec", "sha256": "fb0675eed8d5c58fb522142119971173381797c056830fcd024a4902001b8c03" }, "downloads": -1, "filename": "pydumpi-0.1.3.tar.gz", "has_sig": false, "md5_digest": "1dce445bc6a69b81a615f5e70bb532ec", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 730245, "upload_time": "2018-07-18T13:33:07", "url": "https://files.pythonhosted.org/packages/5e/f0/02101d3833306403042767a813c0c1d97fefda23403513a933d6b618429e/pydumpi-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f806201368465020a670685c60560f8c", "sha256": "55223609629739c96fd2ccf7e95c00ad32080c60ced477b0ea9540a4267764f6" }, "downloads": -1, "filename": "pydumpi-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "f806201368465020a670685c60560f8c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.4", "size": 735068, "upload_time": "2018-07-18T13:33:05", "url": "https://files.pythonhosted.org/packages/e6/93/7a8aeccf1f9042502bbc6b031c5b7d22ae08c732bbac81fdd7cc921949cb/pydumpi-0.1.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1dce445bc6a69b81a615f5e70bb532ec", "sha256": "fb0675eed8d5c58fb522142119971173381797c056830fcd024a4902001b8c03" }, "downloads": -1, "filename": "pydumpi-0.1.3.tar.gz", "has_sig": false, "md5_digest": "1dce445bc6a69b81a615f5e70bb532ec", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.4", "size": 730245, "upload_time": "2018-07-18T13:33:07", "url": "https://files.pythonhosted.org/packages/5e/f0/02101d3833306403042767a813c0c1d97fefda23403513a933d6b618429e/pydumpi-0.1.3.tar.gz" } ] }