Submitting Jobs

Submitting Jobs

This guide covers everything you need to know about running compute jobs on Auralis Cloud.

Project Structure

Your project needs a Dockerfile at the root. Here's a typical structure:

my-project/
├── Dockerfile        # Required!
├── main.py           # Your entry point
├── requirements.txt  # Dependencies
└── src/              # Your code

The Dockerfile

Your Dockerfile tells us how to build and run your code. Here's a simple example:

FROM python:3.10-slim
 
# Install dependencies
COPY requirements.txt .
RUN pip install -r requirements.txt
 
# Copy your code
COPY . /app
WORKDIR /app
 
# Create output directory
RUN mkdir -p /app/output
 
# Run your script
CMD ["python", "main.py"]

Important: The Output Directory

This is crucial! Auralis collects files from a specific output directory. By default, this is ./output.

Your code should save all results to this directory:

# ✅ Correct - saves to output directory
model.save('./output/model.h5')
results.to_csv('./output/results.csv')
 
# ❌ Wrong - files won't be collected
model.save('./model.h5')
results.to_csv('./results.csv')

You can change the output directory when submitting, just make sure your code writes there.

Submitting a Job

Through the Dashboard

  1. Go to Dashboard → Submit
  2. Choose your platform:
    • AMD64: Intel/AMD processors (most common)
    • ARM64: Apple Silicon, AWS Graviton, Raspberry Pi
  3. Set max runtime (1-8 hours)
  4. Upload your project as a .zip file
  5. Click Deploy Job

What Happens Next

  1. Your job enters the PENDING queue
  2. A provider claims your job → status becomes RUNNING
  3. When complete → status becomes COMPLETED
  4. Download your outputs from the Jobs page

Tips for Success

Keep Docker Images Small

Large images = slow builds = higher costs. Use slim base images:

# Good
FROM python:3.10-slim
 
# Avoid
FROM python:3.10

Handle Errors Gracefully

If your code crashes, the job fails and you won't get outputs. Add try/except blocks:

try:
    train_model()
    save_results('./output/model.h5')
except Exception as e:
    # At least save the error log
    with open('./output/error.log', 'w') as f:
        f.write(str(e))

Test Locally First

Before submitting, test your Docker build locally:

cd my-project
docker build -t my-job .
docker run -v $(pwd)/output:/app/output my-job

If it works locally, it'll work on Auralis.

Monitoring Your Job

Head to Dashboard → Jobs to see all your jobs. Each job shows:

  • Status: PENDING, RUNNING, COMPLETED, or FAILED
  • Platform: AMD64 or ARM64
  • Created: When you submitted it
  • Runtime: How long it took

Click the menu to download outputs when ready.