{ "info": { "author": "Jan Kalkan", "author_email": "jan.kalkan@mailbox.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: Apache Software License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "\n
\n Distributed machine learning made simple.\n
\n\n\n\n\n Getting Started \u2022\n Highlights \u2022\n Features \u2022\n API Docs \u2022\n Support \u2022\n Report a Bug \u2022\n Contribution\n
\n\n**lazycluster** is a Python library intended to liberate data scientists and machine learning engineers by abstracting \naway cluster management and configuration so that they are be able to focus on its actual tasks. Especially, the easy \nand convenient cluster setup with Python for various distributed machine learning frameworks is emphasized.\n\n## Highlights\n\n- **High-Level API for starting clusters:** \n - DASK\n - PyTorch *(WIP)* \n - *Further supported *lazyclusters* to come ...*\n- **Lower-level API for:**\n - Managing Runtimes or RuntimeGroups to:\n - a-/synchronously execute RuntimeTasks remotely by leveraging the power of ssh\n - expose services (e.g. a DB) from or to a Runtimes or in a whole RuntimeGroup\n\n## Getting Started\n\n### Installation\n\n`pip install lazycluster` \n\n### Usage Example\n\nPrerequisite: Passwordless ssh needs to be setup for the used hosts.\n\n```python\nfrom lazycluster import RuntimeTask, Runtime\n\n# Define a Python function which will be executed remotely\ndef hello(name:str):\n return 'Hello ' + name + '!'\n\n# Compose a `RuntimeTask`\ntask = RuntimeTask('my-first_task').run_command('echo Hello World!') \\\n .run_function(hello, name='World')\n\n# Actually execute it remotely in a `Runtime` \ntask = Runtime('host-1').execute_task(task, execute_async=False)\n\n# The stdout from from the executing `Runtime` can be accessed via the execution log of teh `RuntimeTask`\ntask.print_log()\n\n# Print the return of the `hello()` call\ngenerator = task.function_returns\nprint(next(generator))\n```\n## Support\n\nThe **lazycluster** project is maintained by [Jan Kalkan](https://www.linkedin.com/in/jan-kalkan-b5390284/). Please \nunderstand that we won't be able to provide individual support via email. We also believe that help is much more\nvaluable if it's shared publicly so that more people can benefit from it.\n\n| Type | Channel |\n| ------------------------ | ------------------------------------------------------ |\n| \ud83d\udea8 **Bug Reports** |