Beehive Documentation

Last updated: 04/23/2025, 02:31:24 PM

Getting Started with Beehive

Critical Usage Information

Head Node Usage

The head node (beehive.ttic.edu) should only be used for:

  • Submitting jobs with sbatch
  • Monitoring jobs with squeue and sacct
  • Light file operations and code editing

Do not run compute-intensive or I/O-intensive tasks on the head node. Instead, request an interactive job on a compute node when you need to:

  • Debug your code
  • Perform data preprocessing
  • Run interactive Python/Jupyter sessions
  • Compile large projects

Interactive Jobs

To get an interactive shell on a compute node:

# Request an interactive CPU job
srun --pty -p cpu --cpus-per-task=4 bash -i

# Request an interactive GPU job
srun --pty -p gpu --cpus-per-task=4 --gres=gpu:1 bash -i

You can also run specific commands directly:

# Run a Python script interactively on a GPU node
srun --pty -p gpu --gres=gpu:1 python debug_script.py

Best Practices

  1. Never run heavy workloads on the head node - use interactive jobs instead
  2. Use the development partitions for testing and debugging jobs (limited to 1 hour)
  3. Specify GPU architectures when your code requires specific features
  4. Request only the resources you need to improve scheduling efficiency
  5. Utilize checkpointing in your code to recover from the 8-hour time limit on standard partitions
  6. Monitor your job's memory usage to avoid out-of-memory errors
  7. Use appropriate CUDA version for your applications