Skip to main content
Are you a large language model? This page is available as raw markdown at /index.md. The full docset is at /llms-full.md and the index is at /llms.md.

Quickstart

C3 brings GPU compute to academics. Configure your project with a simple .c3 file, and C3 handles provisioning GPUs from multiple data centers so you get compute when you need it, at competitive prices.

Install the CLI

curl -fsSL https://cthree.cloud/install.sh | sh

Then authenticate:

c3 login

This opens your browser to sign in. Credentials are stored locally in ~/.c3/. Verify your email address after signing in. Service commands such as jobs, billing, data, and API key management require a verified email; unverified accounts receive EMAIL_VERIFICATION_REQUIRED until verification is complete. If you miss the first email, interactive CLI commands offer to resend it when blocked, and you can also run c3 verify-email.

Run your first job

Clone the examples repo and run a GPU benchmark:

git clone https://github.com/c3-research/c3-examples.git
cd c3-examples/jax-matmul

The example includes this .c3 config:

# .c3
project: jax-matmul-example
script: run.sh
time: "00:10:00"
job_name: jax-matmul

python:
project: ./

output:
- ./results

The script field points to a bash script with your execution commands:

# run.sh
#!/bin/bash
python3 train.py

This quickstart uses a Python environment; for Bash-only or Docker environments, see Environment.

Now deploy:

c3 deploy

C3 provisions a GPU, installs your Python dependencies, runs your script, and uploads the results. See Project Configuration for how each field works.

Check status and download results

Monitor your job:

c3 squeue
JOB ID                     PROJECT                  STATUS       SUBMITTED            GPU
job_abc123 jax-matmul-example RUNNING 2024-01-15 10:30:00 l40

You can also view your jobs in the web dashboard. c3 squeue and the dashboard show current lifecycle activity while a job is waiting, provisioning, staging inputs, or uploading outputs. c3 deploy -f streams job status and the latest attempt logs. If a job fails, user-fixable errors show the next action; infrastructure/provider errors show a report code for C3 support instead of raw internal details.

Once complete, pull the results:

c3 pull job_abc123

Your output files are downloaded to ./job_abc123/results/.

Add a dataset

For jobs that need larger data, upload it to C3's storage once and mount it into any job:

c3 data cp ./my-data/ /datasets/my-data/

Then reference it in your .c3:

datasets:
- ref: /datasets/my-data # the remote path you uploaded to
mount: /data/my-data # where it appears on the GPU

Your script reads from /data/my-data as if the files were local. See Data Mounting for details.

Start a new project

Create a .c3 config for your own project:

cd my-project
c3 init

Edit the .c3 file to set your GPU, time limit, and script (a bash script with your execution commands), then deploy with c3 deploy.


Next steps: Learn about project configuration for all .c3 options, data mounting for working with datasets, artifact output for collecting results, environment for Python, Docker, and Bash environment modes, or browse the marketplace to see available GPUs and pricing.