Skip to main content

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

  1. Download Anaconda distribution following https://conda.io/docs/user-guide/install/index.html
  2. 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)

Source distribution for ncluster 0.1.91
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)

Table of built distributions (wheels) for ncluster 0.1.91
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.1.91 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page