Skip to main content

CLI For Launching Experiments Using Singularity On Slurm

Project description

Spork: Helping You Run Slurm Jobs

Spork is a quality of life package that enables rapid deployment of code on a slurm cluster with singularity installed and password enabled login. Running experiments on your cluster is as simple as a single command in the terminal using spork. See below for an example and install instructions.

Installation

Spork can be installed using the pip package.

pip install spork-cli

Usage

You may configure spork to remember the ssh credentials to your cluster using the following example.

spork set --ssh-username username --ssh-password password --ssh-host compute.example.com

Running your first command on your cluster is then as simple as one line in the terminal.

spork remote echo "my first command"

Certain workloads require uploading certain data files into the singularity image on the remote machine before running experiments. This can be done with the following command.

spork upload --recursive --exclude "*.pkl" ./local_dir remote_dir/in/image

Additionally, you can download files from the remote machine with a single command. The following command will download the results folder inside the remote singularity image to a location in the current local working directory. The remote path is always taken with respect to the singularity image path.

spork download --recursive --exclude "*.pkl" results ./

Experimentation

A typical experiment creation pipeline involved working on code locally, testing the code locally, then running in on a server. This can be done easily using spork.

python do_my_experiment.py

Once your code is ready for deployment, tell spork how to install your code from github.

spork set --git-url https://github.com/username/repo
spork set --git-target /code/repo
spork set --install-command "pip install -e {git_target}"

Then, point spork to where your code working directory is stored locally.

spork set --sync-from /home/username/repo

Then test your code in a local copy of the singularity to make sure it works as expected.

spork local --sync python /code/repo/do_my_experiment.py

Then run it on the cluster.

spork remote --sync python /code/repo/do_my_experiment.py

In this example, the sync flag tells spork to copy code from your repository on the local disk to code folder in your remote singularity image. This is especially helpful when changes aren't committed.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

spork-cli-1.0.9.tar.gz (15.9 kB view details)

Uploaded Source

File details

Details for the file spork-cli-1.0.9.tar.gz.

File metadata

  • Download URL: spork-cli-1.0.9.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.5.0 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.7.11

File hashes

Hashes for spork-cli-1.0.9.tar.gz
Algorithm Hash digest
SHA256 9003cac2d55ebf24022cb3e9000cfb1a4de9d46552ee6e99b15f90641a09e3c2
MD5 25aa58693829863bba27c4dd56c66c56
BLAKE2b-256 f6976c458b72d37ad105e9280078909facf60480360c5f4d1f79de71612a27f8

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page