Summary and Setup

Callout

Pomona College HPC Workshop Series

This workshop is part of the Pomona College Research Computing Workshop Series, adapted from Plotting and Programming in Python by Software Carpentry.

Cluster: sagehen.hpc.pomona.edu Web Portal: OnDemand Support:

Python and its scientific libraries (NumPy, Pandas, Matplotlib) are available on Sagehen HPC via module load miniconda3. Practice interactively through Jupyter on OnDemand.

Adapted for Pomona College by Andrew Wilson, ITS Research Computing. Licensed under CC-BY 4.0.

This lesson is an introduction to programming in Python 3 for people with little or no previous programming experience. It uses plotting as its motivating example and is designed to be used in both Data Carpentry and Software Carpentry workshops. This lesson references JupyterLab but can be taught using alternative Python 3 interpreters as well (e.g., repl.it, Anaconda).

Prerequisite

Prerequisites

  1. Learners need to understand what files and directories are, what a working directory is, and how to start a Python interpreter.
  2. Learners must install Python 3 before the class starts.
  3. Learners must get the gapminder data before class starts: please download and unzip the file python-novice-gapminder-data.zip.

Please see the setup instructions for more details.

Acknowledgments


Developed by Andrew Wilson, Director of Research Computing and Digital Scholarship at Pomona College, with Andrei Motchenko, who tested, edited and produced screenshots for the workshop series.

Pre-Workshop Requirements


Before the workshop, please ensure you have the following set up and working.

1. Active Sagehen HPC Account

You must have a valid Pomona College HPC account with access to the Sagehen cluster.

To verify your access:

BASH

ssh <myusername>@sagehen.hpc.pomona.edu

If you don’t have an account or can’t log in, contact .

2. Accessing Python via OnDemand

The recommended way to access Python for this workshop is through the OnDemand web interface:

https://ondemand.hpc.pomona.edu/

Steps to access Jupyter Notebook: 1. Go to https://ondemand.hpc.pomona.edu/ 2. Log in with your Pomona credentials (with DUO MFA) 3. Click on “Interactive Apps” menu 4. Select “Jupyter Notebook” or “RStudio Server” 5. Configure your session: - Partition: amd (default) - Number of hours: 2-4 hours - Number of cores: 4 - Memory: 8GB 6. Click “Launch” 7. Wait for the session to start, then click “Connect to Jupyter”

3. Load Required Python Module

If accessing via SSH (command line), load the miniconda3 module:

BASH

# Load miniconda3
module load miniconda3

# Verify Python is available
python --version

# You should see something like:
# Python 3.10.x :: Anaconda, Inc.

4. Required Python Packages

This workshop requires the following Python packages. They may already be installed in the base conda environment. Test them by:

BASH

python -c "import numpy; import pandas; import matplotlib; print('All packages available!')"

If you see an error, install the packages:

BASH

pip install numpy pandas matplotlib

Package list: - numpy: Numerical computing library - pandas: Data manipulation and analysis - matplotlib: Plotting and visualization

5. Download Gapminder Dataset

The workshop uses the Gapminder dataset. Download it before the workshop:

BASH

# Create a workshop directory
mkdir -p ~/workshops/python-gapminder
cd ~/workshops/python-gapminder

# Download the dataset
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_oceania.csv
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_africa.csv
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_americas.csv
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_asia.csv
wget https://raw.githubusercontent.com/swcarpentry/python-novice-gapminder/gh-pages/data/gapminder_gdp_europe.csv

# Verify the files were downloaded
ls -lh gapminder*.csv

6. Test Your Python Environment

Create a test script to verify everything works:

BASH

cat > test_env.py << 'EOF'
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

# Test numpy
arr = np.array([1, 2, 3, 4, 5])
print(f"NumPy test: {arr.mean()}")

# Test pandas
df = pd.DataFrame({'x': [1, 2, 3], 'y': [4, 5, 6]})
print(f"Pandas test:\n{df}")

# Test matplotlib
plt.figure(figsize=(6, 4))
plt.plot([1, 2, 3], [1, 4, 9])
plt.title("Simple Test Plot")
plt.savefig("test_plot.png")
print("Matplotlib test: plot saved as test_plot.png")

print("\nAll tests passed!")
EOF

python test_env.py

7. (Optional) Interactive Access via SSH

If you prefer using the command line instead of OnDemand:

BASH

# SSH into Sagehen
ssh <myusername>@sagehen.hpc.pomona.edu

# Load Python
module load miniconda3

# Start Jupyter Notebook (on compute node recommended)
srun --pty --partition=short --time=02:00:00 jupyter notebook --no-browser

8. Sagehen Cluster Access Methods

You can access Sagehen three ways:

  1. OnDemand Web Interface (recommended for this workshop) https://ondemand.hpc.pomona.edu/

  2. SSH Command Line (for terminal work)

    BASH

    ssh <myusername>@sagehen.hpc.pomona.edu
  3. Local Development + Remote Submission Develop locally, submit scripts to Sagehen via SSH

9. Cluster Resources Available

Sagehen has the following resources available during the workshop:

  • Compute Nodes: 12 nodes with 128 cores each, 512GB RAM
  • GPU Nodes (10 GPUs total, confirmed May 2026):
    • 4× NVIDIA A100 80 GB
    • 4× NVIDIA L40S 48 GB
    • 2× NVIDIA RTX PRO 6000 Blackwell 96 GB
  • Storage:
    • /rhome (100GB personal)
    • /bigdata (1TB lab, shared)
    • /scratch (SSD temp)
    • /tmpfs (RAM temp)
  • Partitions: amd (default), gpu, short (1 hour max)

10. Getting Help

Once you’ve verified items 1-6 above, you’re ready for the workshop!