{ "info": { "author": "Anthony Pham", "author_email": "benchlogpy@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# Benchlog Package\n\nBenchlog allows a user to record the runtime and resource allocation of their program overtime.\n\n# Changelog\n## Version 0.3\n### Features\n- Added logging of accuracy\n- Added unique filename generation (using date and time)\n- [Documentation] Added a changelog\n- Allow local saving and sending to server with `setHost(HOST, local)`\n- Added GPU logging of usage, memory, memory utilization, gpu UUID and name with `enableGPU()`\n- Prevent users that do not have 'nvidia-smi' installed from enabling GPU\n\n### Bug Fixes\n- Fixed bug where sendData would only save to telemetry.json on error instead of calling `saveData`\n- Prevented user from calling `end()` without calling `start()`\n- Prevented user from calling `end()` twice\n- Call for variable `deviceID` did not exist in `enableGPU()`, use `self.gpuObj` instead\n- Fixed bug where we called `saveData()` instead of `self.saveData()`\n\n## Installation\n`pip install benchlog`\n\n## Use\n### Benchlog Arguments\n| Argument | Type | Description |\n|---|---|---|\n| projectname | string | The name of your project |\n| iterationNum | integer | Number of iteration your code uses (Used to record progress)|\n| Opt: featureList | [string] | Record list of features used for project |\n| Opt: quiet | integer | Set to 1 to disable logging, default: 0 |\n\n### Setup\n1. Import BenchLog\n`from benchlog import BenchLog`\n\n2. Declare new instance of BenchLog\nE.g. `logging = BenchLog('Test Project', 1024, ['tensorflow', 'featureB'], quiet1]`\n\n3. **Optional:** Declare a host to send the telemetry data to. If no host is stored or data fails to send we will store the data in a file called `telemetry.json` in the directory of the project. If you would like to enable local and external logging, set the second argument to 1.\nsetHost(ipaddress, [OPTIONAL:1 to enable local logging, 0 default])\nE.g `logging.setHost('http://localhost:3000',1)`\n\n4. **Optional:** GPU Logging - Enable GPU Logging by calling `logging.enableGPU()` If you have more than one GPU refer to the enableGPU section\n\n4. Start logging by calling `logging.start()`\n5. Call `logging.log(iterationNum)` every once in awhile to log progress.\n6. End logging by calling `logging.end()`\n\n### Example Code\n\n```\nfrom benchlog import BenchLog\nlogging = BenchLog('My Project', 10000, ['FeatureA','FeatureB'])\nlogging.setHost('http://localhost:3000')\narray =\nlogging.enableGPU(0)\nlogging.start()\nfor i in range(1,10000):\n if(i % 1000 == 0):\n #Do Something here\n logging.log(i)\nlogging.end()\n```\n\n### enableGPU()\n`logging.enableGPU()` uses `GPUtil` in order to gather gpu information. This will only work with Nvidia GPUs.\n\nIf you have **multiple GPUs** you can pass in the index of the GPU you want to use. You can find which GPU you want to log by calling nvidia-smi and returning the GPU you want to use. E.g `logging.enableGPU(1)`\n\nGPU logging records three things.\n\n`GpuMemUsage` - This is the amount of memory being used by the GPU\n`GpuMemUtil` - This is the memory activity (i/o) within GPU memory\n`GpuUsage` - This is the standard gpu load\n\n### Example telemetry output\n```\n{\"cores\":\"4\",\"runTime\":\"1.506113\",\"size\":\"10000\",\"features\":[\"testa\",\"testb\"],\"projectName\":\"test\",\"infoRunTime\":[\"0.177929\",\"0.345282\",\"0.511437\",\"0.685919\",\"0.850231\",\"1.011178\",\"1.182584\",\"1.345929\",\"1.505748\",\"1.506086\"],\"infoCpuUsage\":[\"13.2\",\"32.4\",\"30.3\",\"35.7\",\"30.8\",\"28.1\",\"36.2\",\"26.2\",\"28.1\",\"0.0\"],\"infoMemoryUsage\":[\"452567040\",\"852570112\",\"1252573184\",\"1652576256\",\"2052579328\",\"2452582400\",\"2852585472\",\"3252588544\",\"3652591616\",\"3652591616\"],\"infoProgress\":[\"0.1\",\"0.2\",\"0.3\",\"0.4\",\"0.5\",\"0.6\",\"0.7\",\"0.8\",\"0.9\",\"1.0\"]}\n```\n\n## Future To Do\n- [X] Do not overwrite old telemetry data\n- [X] GPU Utilization\n- [ ] Local Visualization\n- [ ] Web UI to view results\n- [ ] Server\n- [X] Change progress to 0-100", "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/Keydex/BenchLog", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "benchlog", "package_url": "https://pypi.org/project/benchlog/", "platform": "", "project_url": "https://pypi.org/project/benchlog/", "project_urls": { "Homepage": "https://github.com/Keydex/BenchLog" }, "release_url": "https://pypi.org/project/benchlog/0.3/", "requires_dist": null, "requires_python": "", "summary": "Log CPU, GPU and Memory usage for a project overtime and send to server", "version": "0.3" }, "last_serial": 4467304, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "d2b33fc7695c0d39e5e56b60a7fe8ba6", "sha256": "5cc282af346de486e480c5cb0878c99f8122067c8751dd2d0849b23765148109" }, "downloads": -1, "filename": "benchlog-0.1.tar.gz", "has_sig": false, "md5_digest": "d2b33fc7695c0d39e5e56b60a7fe8ba6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1865, "upload_time": "2018-11-02T19:53:42", "url": "https://files.pythonhosted.org/packages/33/59/5f3a7d90a97da166238a29378a8e01f7b5c577b26cab277cb2ceb44ea41e/benchlog-0.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "d22163193ad737c91a53fd54ab583a2a", "sha256": "d4f62d6056f25e0ae08d1696aef55029ba905286b93c6dd57bb81822f8bbd946" }, "downloads": -1, "filename": "benchlog-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d22163193ad737c91a53fd54ab583a2a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3316, "upload_time": "2018-11-05T17:39:37", "url": "https://files.pythonhosted.org/packages/cd/87/d07443d97e7f6673dfbb35a242686e4da3134f9ce35853385b7d5c134e23/benchlog-0.2.0.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "cfa0040749dbbbf057d719cbbfcbd75f", "sha256": "26d1ba28d743149fe50e61f957dcede004ee3b72feeec0b7d572a6100741c1b8" }, "downloads": -1, "filename": "benchlog-0.3.tar.gz", "has_sig": false, "md5_digest": "cfa0040749dbbbf057d719cbbfcbd75f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4740, "upload_time": "2018-11-08T22:12:33", "url": "https://files.pythonhosted.org/packages/9c/86/96e060b5dbed022b5ca17f9ebce7eccd2d8d5c6cf6c6f97f01c38da1f5bd/benchlog-0.3.tar.gz" } ], "0.3.dev2": [ { "comment_text": "", "digests": { "md5": "1edfc1c32eeb7aea1334bf045c5a0501", "sha256": "a3b457c0aa85ca7746c935d8d986c02f1063be8f67e0db6cf290f4517648387a" }, "downloads": -1, "filename": "benchlog-0.3.dev2.tar.gz", "has_sig": false, "md5_digest": "1edfc1c32eeb7aea1334bf045c5a0501", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4156, "upload_time": "2018-11-08T16:40:29", "url": "https://files.pythonhosted.org/packages/a1/51/284d03d28dfb93d96c4b3ad5662f4aecc3a31a3f6e89961065ebacf3fd1f/benchlog-0.3.dev2.tar.gz" } ], "0.3.dev3": [ { "comment_text": "", "digests": { "md5": "af7388cba406eaab5f6c78bd581e5cf5", "sha256": "a3e89c0b94a8efc727bd730d41884e509ba9883b7dfc404cd542e8bf789866e5" }, "downloads": -1, "filename": "benchlog-0.3.dev3.tar.gz", "has_sig": false, "md5_digest": "af7388cba406eaab5f6c78bd581e5cf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4299, "upload_time": "2018-11-08T20:30:04", "url": "https://files.pythonhosted.org/packages/9d/d7/e39a90180e50e6fb56016c46cbe2048e9838d25314174a3970e8ecf2b0cb/benchlog-0.3.dev3.tar.gz" } ], "0.3.dev4": [ { "comment_text": "", "digests": { "md5": "a86c3dcb4ebbd10944e1e5f27ab30e52", "sha256": "f247279d19c4dbf7da3b34996ddabb16a6681b85a707e6cef051969109273837" }, "downloads": -1, "filename": "benchlog-0.3.dev4.tar.gz", "has_sig": false, "md5_digest": "a86c3dcb4ebbd10944e1e5f27ab30e52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4449, "upload_time": "2018-11-08T21:02:53", "url": "https://files.pythonhosted.org/packages/36/b6/5fd496fbb1b1762a8601d50d603b4424fd4a5af1ca6b229d60638578381b/benchlog-0.3.dev4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "cfa0040749dbbbf057d719cbbfcbd75f", "sha256": "26d1ba28d743149fe50e61f957dcede004ee3b72feeec0b7d572a6100741c1b8" }, "downloads": -1, "filename": "benchlog-0.3.tar.gz", "has_sig": false, "md5_digest": "cfa0040749dbbbf057d719cbbfcbd75f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4740, "upload_time": "2018-11-08T22:12:33", "url": "https://files.pythonhosted.org/packages/9c/86/96e060b5dbed022b5ca17f9ebce7eccd2d8d5c6cf6c6f97f01c38da1f5bd/benchlog-0.3.tar.gz" } ] }