Coder Social home page Coder Social logo

beaker-cli's Introduction

beaker-cli's People

Contributors

aaasen avatar aimichal avatar amusement avatar beakerbot avatar bryant1410 avatar ckarenz avatar codeviking avatar epwalsh avatar erikayw avatar jonborchardt avatar meslater1030 avatar mjlangan avatar mkusold avatar rlebras avatar schmmd avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

beaker-cli's Issues

Session create fails when not logged in

If the auth token is invalid, beaker session create fails with the following error:

Error: invalid image: could not resolve image "ai2/cuda11.2-ubuntu20.04": invalid authentication token

It should prompt for a user token like other commands do when the token is invalid.

Make the APIs more publicly accessible

One of our users has to use the web API for:

downloading individual files of a dataset
Get to know all the datasets for an experiment

We should record all of these use cases and make the APIs more user friendly

Build a client for M1 Macs

The M1 Macbooks will be in circulation at AI2 soon. We need to build a version of the Beaker client for the architecture, otherwise people who get M1 machines won't be able to use Beaker.

Beaker Interactive --image doesn't work (unauthorized)

Discussion in Slack: https://allenai.slack.com/archives/C6MN19S05/p1620159452182800?thread_ts=1620153910.177000&cid=C6MN19S05

Example from console:

From Chandra:

beaker session create --image gcr.io/ai2-beaker-core/public/c28p88ardlu9jnadldbg  --gpus 2
Scheduling session 01F4WGG3QQNEFZ56TS09J7BWQR with at least 2 GPUs... (Press Ctrl+C to cancel)
Reserved 2 GPUs, 11.25 CPUs, 91148704358 B memory
Pulling image...
Error: Error response from daemon: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication

From Michael:

michaels@ai2-mosaic-server2 ~ $ docker tag gcr.io/ai2-beaker-core/public/c28p88ardlu9jnadldbg foo
michaels@ai2-mosaic-server2 ~ $ beaker session create --image foo --gpus 2
Scheduling session 01F4WGPKGV6C6F1TT3Y05S7S66 with at least 2 GPUs... (Press Ctrl+C to cancel)
Reserved 2 GPUs, 11.25 CPUs, 91148704358 B memory
Pulling image...
Error: Error response from daemon: pull access denied for foo, repository does not exist or may require 'docker login': denied: requested access to the resource is denied

Improve 404 experience for the leaderboard

Currently the leaderboard links out to Beaker, but in some cases users will get a 404 because they are not logged into Beaker. We don't think there's a great fix on the leaderboard side since it's not aware of whether the user is logged into Beaker and has permissions to view the page, but we would like an update to the current 404 page.

https://user-images.githubusercontent.com/954798/58968946-b8038680-876b-11e9-93f0-5c8ba047440d.png
image

We should have something that looks less like something went terribly wrong ("undefined -- Error: Request failed with status code 404") and instead say something friendly like "Page Not Found! The page may not exist or you do not have access to it." or, if you are logged out, "Page Not Found! Please try again after logging in. The page may not exist or you do not have access to it."

Get error when install beaker

Hi, I downloaded the newest release and extract it to \usr\local\bin,
when I want to set my user token, the error comes up.

Error: open /home/xxx/.beaker/config.yml: no such file or directory

can you help me ?

Beaker installation issue - Missing config file

I am trying to set up Beaker to submit a model to the aNLI leaderboard, but running into some trouble with the installation. I’ve followed all the installation steps, but there seems to be an issue with a missing config file that I’m having trouble resolving.

I am on a Mac and I’ve installed Release v20200402. When I try to set my user token I receive the following error:

beaker config set user_token xxxxx
Error: open /Users/alineberry/.beaker/config.yml: no such file or directory

I can’t find any instructions for how to set up this config.yml file. I also tried installing via Brew with the same result.

Any help in this matter would be greatly appreciated.

Require that accounts have unique email addresses

Presently many people erroneously create multiple accounts. Some of these accounts don't have an associated email address and others contains duplicate email addresses. It would be easier to troubleshoot leaderboard issues if the email address were required and unique.

The create command doesn't respect the format argument.

Running beaker experiment create --format=json doesn't change the output (it's still text).

It should output a JSON struct that explains what occurred, maybe something like:

{  "experiment_id": "...", "url": "..." }

Or possibly the result of beaker experiment get $id --format=json for the newly created experiment.

Question: Beaker server available for in-house deployment?

Are there any plans to open-source Beaker server side?
Or make it available for in-house deployment in some other way.

UI looks good and integration with AllenNLP is really nice.
It would be great to run it locally and use it for personal and internal projects.

Is homebrew still supported for getting the beaker CLI?

It looks like the latest version is 1.0.19, from February 4?

$ beaker --version
beaker version Beaker 1.0.19 ("68ccc70cffc7550ef79353752f76be99ef56097c")

$ brew upgrade beaker
Warning: allenai/beaker/beaker 1.0.19 already installed

$ brew info beaker
allenai/beaker/beaker: stable 1.0.19
Beaker command-line tool.
https://beaker.allenai.org
/usr/local/Cellar/beaker/1.0.19 (3 files, 12.1MB) *
  Built from source on 2021-07-13 at 14:41:59
From: https://github.com/allenai/homebrew-beaker/blob/HEAD/beaker.rb

Some commands seem to fail with the current version, e.g.,

$ beaker cluster list maxf
Error: invalid version; please update your client

Unable to access GPUs without `--gpus all`, locally and on Beaker

I reproduced this issue in https://github.com/mbforbes/beaker-docker, where I use the Dockerfile from https://github.com/beaker/docs/blob/main/docs/start/run.md. The issue also happens to me when I start from an nvidia/cuda image (nvidia/cuda:11.4.1-cudnn8-runtime-ubuntu20.04).

Copying the output from there:

$ docker --version
Docker version 20.10.8, build 3967b7d

$ docker build -t my-experiment .
# ...

$ docker run --rm -it my-experiment nvidia-smi
docker: Error response from daemon: OCI runtime create failed:
container_linux.go:380: starting container process caused: exec:
"nvidia-smi": executable file not found in $PATH: unknown.

$ docker run --rm -it --gpus all my-experiment nvidia-smi
Mon Aug 23 17:35:13 2021
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.42.01    Driver Version: 470.42.01    CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-SXM...  Off  | 00000000:00:04.0 Off |                    0 |
| N/A   37C    P0    51W / 400W |      0MiB / 40536MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

When trying to run on Beaker, I see the same error:

StartError: failed to create containerd task: OCI runtime create failed: container_linux.go:380: starting container process caused: exec: "nvidia-smi": executable file not found in $PATH: unknown

This StackOverflow answer says

Since Docker 19.03, you need to install nvidia-container-toolkit package and then use the --gpus all flag.

What is confusing is that @ckarenz was able to run nvidia-smi successfully in another experiment on the same cluster running directly from the base image.

So, does this mean there is a difference in how the images are built that is changing the requirement for --gpus all?

+cc @schmmd

Cluster creation should be clearer

The cluster create command can create clusters in the cloud or on-premise. The decision is made implicitly, where a cluster is created in the cloud if any autoscale resource (CPU, GPU, memory) is set.

We should instead have an explicit flag which is required to pass any of those autoscale parameters, or even a separate command which attaches an autoscale policy to an existing cluster.

Failure in verifying your default org

There was a problem verifying your default org.
Set the default organization in your config in the format default_org: <org_name>. Note that the name may be different from the name displayed in beaker UI.
Error: : organization not found

I'm wondering if this error lead to the failure in creating the beaker image. And I'm unable to find instructions about how to fix it.

Thanks!

Session stop is awkward

The command to stop a session is beaker session update --cancel <id>. This is a precise transliteration of the REST API, but we should expose something more natural like beaker session stop <id>

Replace Kingpin with Cobra

We have at least one unresolvable parsing issue with Kingpin (- special flag argument doesn't work). We could contribute a fix, but we've been moving to Cobra in other repositories.

Below are some files to include Cobra without adding Viper and its dependencies.

go.mod

module github.com/allenai/beaker

// version, imports...

replace github.com/spf13/viper => ./viperstub

viperstub/empty.go

// Package viper exists purely to remove the unused dependency from spf13/cobra.
// This reduces cobra's (therefore our) transitive dependencies significantly.
package viper

viperstub/go.mod

module github.com/spf13/viper

go 1.13

Beaker cluster create CLI help text says 'command' instead of 'type'

When running beaker cluster create -h
You get:

Usage:
  beaker cluster create [command]

Available Commands:
  cloud       Create a new cloud cluster with autoscaling
  on-prem     Create a new on-premise cluster without autoscaling

It should be

  beaker cluster create [type]

The source code appears to be trying to set [type] as well but perhaps there's a cobra bug or something? https://github.com/allenai/beaker/blob/156c4c1c7cba94c78c64a4e9dd6ce91694336aa8/cmd/beaker/cluster.go#L31

Feature request - return utilization statistics from `beaker [cluster|node] get`

It would be really useful to see how utilized each node in a cluster is through the beaker CLI. This would allow us to programmatically select which cluster to run a job on based on the availability of GPUs within each node.

In tango, for example, we're running GPU tests by submitting Beaker jobs via GitHub Actions. Right now we run these tests on a scalable cloud cluster, which is relatively cheap, but would be even cheaper if we could run these jobs on on-prem clusters when they have GPUs available, while only using the cloud cluster as a fallback.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.