Introduction to Kellogg Linux Cluster#

The Kellogg Linux Cluster (KLC) is a set of high-memory Linux servers available to Kellogg researchers for interactive computing, data analysis, and running computationally intensive jobs. If your analysis is too slow on a laptop, requires more memory than you have locally, or needs to run overnight, KLC is the right tool.

What KLC Offers#

  • Large memory — each node has 1.5–2 TB of RAM, far more than any laptop

  • Many CPU cores — up to 64 cores per node for parallel workloads

  • Large storage — 2 TB of project storage per researcher, separate from your home directory

  • Shared datasets — curated research datasets pre-loaded and ready to use

  • Scientific software — the same software library as Northwestern Quest, available via module load

  • Reproducible workflows — run the same code on the same hardware every time

KLC Architecture#

KLC consists of 12 high-memory Linux nodes:

Nodes

CPU Cores

RAM

klc0304 – klc0307, klc0401, klc0402, klc0503 (latest gen)

64 cores

2 TB

klc0202, klc0203, klc0301 – klc0303

52 cores

1.5 TB

All nodes share the same file systems, so a file saved on one node is accessible from any other.

Usage policy: Each user may use up to 24 CPU cores concurrently at normal priority. Going beyond this reduces priority for all your processes. Contact rs@kellogg.northwestern.edu if your work regularly needs more than 24 cores.

KLC Reserve#

KLC Reserve gives you access to dedicated GPU and high-core-count CPU nodes through the SLURM job scheduler — resources not available on the standard KLC login nodes.

Resource Type

Best For

GPU — H100

Large-scale LLM training and inference, deep learning

GPU — A100

GPU-accelerated computation, ML training

GPU — L40S

LLM inference, rendering, general GPU workloads

High-memory CPU

Very large in-memory datasets, parallel batch jobs

Jobs are submitted to the kellogg SLURM partition and run exclusively on allocated resources for the duration of your job. No additional account setup is needed if you already have KLC access. Full details: KLC Reserve

Getting Started: Step by Step#

Step 1 — Get an Account#

If you do not already have a KLC account, contact Kellogg Research Support at rs@kellogg.northwestern.edu .

Step 2 — Connect to KLC#

KLC OnDemand (zero setup — start here if you’re not sure)

Go to Quest OnDemand , log in with your NetID, and select the Kellogg Linux Cluster profile. From there you can launch Jupyter, RStudio, VS Code, or a full graphical desktop directly in your browser — nothing to install or configure. Full walkthrough: KLC OnDemand

SSH (command line)

On Mac, open the built-in Terminal app and run:

ssh your-netid@klc0305.quest.northwestern.edu

On Windows, open PowerShell and run:

ssh your-netid@klc0305.quest.northwestern.edu

Set up passwordless SSH login to avoid entering your password each time. Full instructions: SSH

VS Code with Remote SSH (recommended for development)

Connect VS Code directly to KLC and edit files, run notebooks, and use GitHub Copilot — all from your laptop. See VS Code Workflow for KLC.

FastX (full graphical desktop)

For software that requires a full X11 desktop — MATLAB, Stata, SAS. See FastX.

Step 3 — Understand Your Storage#

Once connected, you have two storage locations:

Location

Path

Quota

Purpose

Home directory

/home/your-netid/

80 GB

Personal files, config, small scripts

Project directory

/kellogg/proj/your-netid/

2 TB

Data, conda environments, job output

Always store data and environments in your project directory — the home directory fills up quickly.

Full details: KLC Filesystem

Step 4 — Set Up a Python or R Environment#

KLC uses mamba (a faster version of conda) to manage software environments. Create an isolated environment in your project directory:

module load mamba/24.3.0
mamba create -p /kellogg/proj/your-netid/envs/my-project python=3.11
source activate /kellogg/proj/your-netid/envs/my-project
mamba install pandas numpy matplotlib

Full details: Conda Environments on KLC

Step 5 — Run Your First Script#

With your environment active, run a Python script:

python my_analysis.py

For long-running jobs, wrap your session in tmux and save a log file so the job keeps running if you disconnect:

tmux new -s my-job
mkdir -p logs
python my_analysis.py 2>&1 | tee -a logs/my_analysis.log
# Press Ctrl+B then D to detach — job keeps running
# Reconnect later with: tmux attach -t my-job

Full details: Launching Jobs · Using tmux

Key Things to Know#

  • Stay within the 24-core limit per user across all KLC nodes. For jobs that should survive a disconnect, use tmux and save output to a log file — see Launching Jobs.

  • Use your project directory for data and environments, not your home directory.

  • Load software with module load before using R or Stata: module load R/4.5.1, module load stata/17. For Python, load mamba/24.3.0 and activate a conda environment — see Step 4 above.

  • Check memory usage before starting large jobs: module load glances && glances shows all users’ CPU and memory in real time.

Where to Go Next#

Goal

Page

Connect and log in

Access KLC

Set up a development environment

Conda Environments

Transfer files to/from KLC

Transferring Files

Keep jobs running after disconnect

Using tmux

Full reference documentation

KLC User Guide

Use VS Code with KLC

VS Code Workflow

Use LLMs on KLC

Open Source LLMs

Interactive vs. scheduled jobs

When to Use KLC Reserve

Submit SLURM and GPU jobs

KLC Reserve

CPU vs. GPU concepts

GPU Concepts and Options

SLURM job scheduler (deep reference)

Quest SLURM docs

Software modules reference

Quest Modules docs

Filesystem quotas and permissions

Quest Filesystem docs

Login methods (SSH, FastX, OnDemand)

Quest Login docs