ncluster
By Yaroslav Bulatov, Andrew Shaw, Ben Mann https://github.com/cybertronai/ncluster
Ncluster provides Python API to do the following things:
- Allocate AWS machine
- Upload file to machine
- Run command on machine
- Download file from machine
IE
import ncluster
task = ncluster.make_task(instance_type='p2.xlarge')
task.upload('myscript.py')
task.run('python myscript.py > out')
task.download('out')
Necessary AWS infrastructure is created on demand using defaults optimal for fast prototyping. IE, your machines are preconfigured for passwordless SSH, can access each other over all interfaces, and have a persistent file system mounted under /ncluster. Commands are executed in a remote tmux session so you can take over the environment at any time and continue from your terminal.
Installation
Install pip, tmux, Python 3.6 (see below), and write down your AWS security keys, then
pip install -r https://raw.githubusercontent.com/yaroslavvb/ncluster/master/requirements.txt
pip install -U ncluster
export AWS_ACCESS_KEY_ID=AKIAIBATdf343
export AWS_SECRET_ACCESS_KEY=z7yKEP/RhO3Olk343aiP
export AWS_DEFAULT_REGION=us-east-1
Command-line tools
ncluster
ncluster ls
ncluster hosts
ncluster ls
ncluster ls <substring>
ncluster ssh # connects to latest instance
ncluster ssh <substring> # connects to latest instance containing <substring>
ncluster ssh \'<exact match>\'
ncluster mosh <substring>
ncluster kill <substring> # terminates matching instances
ncluster kill \'<exact match>\'
ncluster stop <substring> # stops matching instances
ncluster start <substring> # starts matching stopped instances
ncluster nano # starts a tiny instance
ncluster keys # information on enabling SSH access for your team-members
ncluster ssh_ # like ssh but works on dumb terminals
ncluster ls
ncluster cat <fn>
ncluster cmd "some command to run remotely on AWS"
ncluster efs # gives EFS info such as the mount command
nsync -m gpubox
nsync -m gpubox -d transformer-xl
nsync -d {target directory} -m {machine name substring}
nsync -m gpubox # syncs . to ~ on gpubox
nsync -d transformer-xl -m 4gpubox # syncs . to ~/transformer-xl on 4gpubox
{substring} selects the most recently launched instances whose name contains the substring. Empty string is a valid substring. Skipping -t will sync to ~ on remote machine. Sync seems to be 1 way (from local -> remote)
Docs
- Some out-of-date docs with more info docs
Extra
An example of installing pip/tmux/python 3.6 on MacOS
- Download Anaconda distribution following https://conda.io/docs/user-guide/install/index.html
- Install tmux through homebrew: https://brew.sh/, then
brew install tmux
Then
conda create -n new python=3.6 -y
conda activate new
Extra Deps:
brew install fswatch
Metadata
Release files for ncluster 0.1.91
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| ncluster-0.1.91.tar.gz | 58.6 kB | Without provenance | Details for ncluster-0.1.91.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| ncluster-0.1.91-py3-none-any.whl | Python 3 | none | any | Details for ncluster-0.1.91-py3-none-any.whl |
Total release size: 161.1 kB
Release files / ncluster-0.1.91.tar.gz
| Download URL | ncluster-0.1.91.tar.gz |
|---|---|
| Size | 58.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d70210273a24ee3e4b88ca61f755f6b7273a65b92e34263ea7af6afed73c6bf4
|
|
BLAKE2b-256 checksum How to use checksums |
c0eecf0fd84a012568310556416ee150e167725ce01ba78c3744e6b1ccad7fce
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8
|
Release files / ncluster-0.1.91-py3-none-any.whl
| Download URL | ncluster-0.1.91-py3-none-any.whl |
|---|---|
| Size | 102.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4634e42363235bc033c3dc026bfef664c427122a27cf2f270661f0c8413d8ef4
|
|
BLAKE2b-256 checksum How to use checksums |
6bfc20e862d40e6dd6b2991f2fff06ca62f91a598b2308b9f9b923a616a998e5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/3.6.8
|
Security for ncluster 0.1.91
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.