Skip to content
Lifestyle & Learning

A Complete Guide to the HAC Leander High-Performance Computing Cluster at Johns Hopkins

In this article

The HAC Leander cluster is a high-performance computing (HPC) resource managed by Advanced Research Computing at Hopkins (ARCH) at Johns Hopkins University. It provides researchers with a scalable Linux environment designed for parallel processing, large-scale data analysis, and complex simulations across various scientific disciplines, including genomics, physics, and machine learning.

The landscape of academic research has shifted toward data-intensive methodologies, requiring computational power far beyond the capabilities of standard desktop workstations. Within the Johns Hopkins ecosystem, the HAC Leander cluster (often referred to simply as Leander) serves as a critical pillar for the High-performance Academic Computing (HAC) initiative. This resource is tailored to meet the needs of faculty, students, and research staff who require high-throughput computing and robust storage solutions to advance their scholarly work. As of 2026, Leander remains a primary workhorse for the ARCH community, bridging the gap between smaller departmental clusters and larger national supercomputing facilities.

Understanding the Architecture of HAC Leander

The Leander cluster is built upon a distributed memory architecture, which allows it to handle massive parallel workloads by spreading tasks across hundreds of interconnected "nodes." Each node functions as a standalone computer with its own processors, memory, and local storage, but they are linked together by a high-speed, low-latency interconnect. This interconnect—typically InfiniBand in the Leander environment—is what enables the "high-performance" aspect of the cluster, allowing nodes to communicate with each other almost instantaneously during complex calculations.

The hardware composition of Leander is periodically updated to keep pace with the demands of modern science. In its current 2026 configuration, the cluster features a diverse array of nodes optimized for different types of computational tasks. These include standard compute nodes for general-purpose serial and parallel jobs, GPU-accelerated nodes for deep learning and molecular dynamics, and "bigmem" nodes equipped with vast amounts of RAM for memory-intensive applications like genome assembly or large-scale graph analysis.

Compute Node Specifications

The standard compute nodes form the backbone of the cluster. These nodes typically utilize multi-core processors from Intel or AMD. Researchers can leverage these cores to run multiple iterations of a simulation simultaneously or to use Message Passing Interface (MPI) protocols to solve a single large problem across many nodes. The emphasis here is on throughput; by utilizing the Slurm scheduler, thousands of individual tasks can be queued and executed efficiently, maximizing the utilization of the hardware.

Acceleration with GPUs

For tasks that benefit from massive parallelism, such as training neural networks or performing high-resolution image processing, HAC Leander provides specialized GPU nodes. These nodes are equipped with enterprise-grade NVIDIA GPUs. Unlike standard CPUs that have a few dozen powerful cores, these GPUs have thousands of smaller cores designed to handle many tasks at once. This architecture is essential for researchers working in artificial intelligence (AI) and computational fluid dynamics, where the speedup compared to traditional CPU computing can be 10x to 100x.

Access, Eligibility, and Account Setup

Access to HAC Leander is generally restricted to the Johns Hopkins University community. This includes faculty, research staff, and students who are sponsored by a faculty member. Because these resources are shared and involve significant operational costs, access is governed by an allocation and account management system.

The Application Process

To begin using Leander, a Principal Investigator (PI)—usually a professor or lab head—must first establish a group account. Once the group is established, individual researchers, postdocs, and students can be added to the allocation. The application process requires a brief description of the research project and an estimate of the computational resources required. This ensures that the ARCH team can manage the cluster's load and provide support where it is most needed.

Authentication and Security

Security is a paramount concern for academic clusters, which often house sensitive research data. Access to HAC Leander is performed via Secure Shell (SSH) through the cluster's login nodes. Users must use their Johns Hopkins Enterprise Directory (JHED) credentials. Furthermore, as of 2026, multi-factor authentication (MFA) via Duo is a mandatory requirement for all login attempts. This multi-layered security approach protects the integrity of the research and the availability of the system for all users.

Arceau de sécurité Leander - Sécurité chaise haute
Arceau de sécurité Leander - Sécurité chaise haute

The Software Environment and Lmod Modules

HAC Leander operates on a Linux-based operating system, which is the industry standard for high-performance computing. However, because different research groups require different versions of software—some needing Python 3.12 while others require legacy versions for reproducibility—the cluster uses a "Module" system (specifically Lmod).

The Module system allows users to dynamically load and unload software environments. When you first log in, your environment is minimal. To use a specific tool, such as R, MATLAB, or a specific compiler like GCC, you use the module load command. This approach prevents software conflicts and ensures that the system libraries remain stable.

Common Software Categories on Leander

  • Compilers: GCC, Intel OneAPI, and NVIDIA HPC SDK for C, C++, and Fortran development.
  • Interpreted Languages: Optimized builds of Python, R, and Julia, often pre-configured with scientific libraries like NumPy or Tidyverse.
  • Data Science Tools: Support for Jupyter Notebooks (often accessible via a web-based Open OnDemand portal) and Conda environments.
  • Specialized Domain Software: Tools like GROMACS for chemistry, BLAST for biology, and various astrophysical simulation suites.

Working with the Slurm Workload Manager

The most critical skill for any HAC Leander user is understanding how to interact with the Slurm Workload Manager. Because Leander is a shared resource, you cannot simply run a heavy computation on the login node. Doing so would slow down the system for everyone else and likely lead to your process being killed by the system administrators. Instead, you must submit a "job" to the Slurm scheduler.

Anatomy of a Slurm Job

A job is essentially a script that tells the cluster three things:

  1. Resources needed: How many CPUs, how much RAM, which GPUs, and how much time.
  2. Environment setup: Which modules to load and which directory to work in.
  3. Execution commands: The actual scripts or programs you want to run.

Researchers use the sbatch command to submit these scripts to a queue. The scheduler then looks at the available resources and the priority of the user (based on a "fair-share" algorithm) to determine when the job should run. For interactive work, such as debugging code or exploring data, users can use srun or salloc to gain immediate access to a compute node's terminal.

Partitions and Quality of Service (QoS)

Leander is divided into "partitions," which are logical groupings of nodes. Choosing the right partition is vital for efficiency. If you submit a small job to a partition meant for massive parallel tasks, you may face longer wait times. Conversely, trying to run a memory-intensive job on a standard partition will result in an "Out of Memory" (OOM) error.

Partition Name Primary Use Case Typical Max Time Resource Highlight
compute General research simulations 72 hours High core density
gpu Machine learning & CUDA apps 48 hours NVIDIA A100/H100/B100
bigmem Large-scale data assembly 72 hours 1TB+ RAM per node
interactive Testing, debugging, and visualization 2 hours Immediate availability
shared Small tasks using partial nodes 24 hours Efficient for low-resource jobs

Storage Hierarchy and Data Management

Data management on HAC Leander is split into different tiers, each with its own purpose, performance characteristics, and backup policies. Understanding where to store your data is the difference between a successful project and a catastrophic data loss.

Home Directory (/home)

Every user has a home directory. This is where your configuration files and small scripts should live. It is usually backed up regularly, but it has a very strict quota (often around 50GB to 100GB). You should never run large computational jobs that write heavily to your home directory, as the filesystem is not optimized for high-speed I/O.

Scratch Space (/scratch)

The scratch directory is a high-performance Lustre or GPFS parallel filesystem. This is where your active research data should live. It is designed for massive, simultaneous reads and writes from hundreds of nodes. However, scratch space is not backed up. It is also subject to a "purge policy," meaning files that have not been accessed for a certain period (e.g., 30 or 60 days) may be automatically deleted to make room for other users.

Project Storage (/data or /project)

For long-term storage of large datasets that are not currently being processed but need to be kept for the duration of a grant, ARCH provides project storage. This is typically a more stable, slower-access tier than scratch, often with quotas ranging from several terabytes to petabytes depending on the PI's allocation.

Best Practices for Using HAC Leander

To maximize the value of the HAC Leander cluster, users should follow established best practices that ensure both individual success and community fairness.

  1. Optimize Parallelism: Before running a job on 100 nodes, verify that your code actually scales. Running a single-threaded program on a 64-core node is a waste of resources and reduces your fair-share priority.
  2. Monitor Your Jobs: Use the squeue and seff commands to check the status and efficiency of your jobs. If a job is only using 10% of the requested memory, adjust your next submission script to be more accurate.
  3. Use Local Scratch for Temporary I/O: Many nodes have local Solid State Drives (SSDs). If your program creates thousands of tiny temporary files, writing them to the local node's /tmp or local scratch can be significantly faster than using the network-based global scratch.
  4. Practice Clean Data Habits: Since the global scratch is purged, always have a plan for moving your results to a permanent location or an external repository once a job sequence is complete.

Troubleshooting Common Issues

Even experienced researchers encounter hurdles when working in an HPC environment. Most issues on HAC Leander fall into a few predictable categories.

  • Permission Denied: This often occurs when a user tries to write to a directory owned by another lab member. Ensure your PI has correctly configured the group permissions using chmod or Access Control Lists (ACLs).
  • Job Sticking in "Pending" (PD): Use squeue --job to see the reason. Common reasons include "Resources" (the cluster is full), "Priority" (other jobs are ahead of you), or "AssociationJobLimit" (you have reached your maximum allowed concurrent jobs).
  • Module Conflicts: If your code fails with "Library not found," check your module list. Loading two different versions of the same library (e.g., OpenMPI 4.0 and 5.0) can cause unpredictable linking errors.
  • SSH Connection Timed Out: Ensure you are connected to the JHU network or using the university VPN. The cluster login nodes are behind a firewall and are not accessible from the open internet without proper authentication.

Frequently Asked Questions

How do I reset my HAC Leander password?

Your password for HAC Leander is tied to your JHU enterprise credentials (JHED). To change or reset your password, you must use the standard JHU my.jh.edu portal. Changes made there will propagate to the cluster, though there may be a short delay of up to an hour for the sync to complete.

Can I run GUI applications on Leander?

Yes, but running graphical user interfaces (GUIs) over a standard SSH connection can be very slow. It is recommended to use the ARCH Open OnDemand web portal, which provides a high-performance "Remote Desktop" or "Interactive App" session within your browser, leveraging the cluster's hardware while providing a responsive visual experience.

What happens if my job exceeds the requested walltime?

If a job reaches the time limit you specified in your Slurm script (e.g., #SBATCH --time=24:00:00), the scheduler will immediately terminate the process. To prevent data loss, your software should implement "checkpointing"—periodically saving its state so it can be resumed in a new job if the first one is cut short.

How do I request a new software package?

If a library or tool is missing from the module system, you can submit a support ticket to the ARCH help desk. For Python or R packages, users are encouraged to install them in their own local environments (using pip install --user or Conda) to avoid version conflicts with other researchers.

Is there a cost to use the HAC Leander cluster?

For many Johns Hopkins researchers, basic access is subsidized by the university. However, large-scale allocations or dedicated hardware requests often require a "condominium" contribution from a research grant. You should consult the ARCH website for the most current service-level agreements and pricing structures for 2026.

Recommended Next Steps for New Users

If you are ready to begin your work on the HAC Leander cluster, your first action should be to verify your sponsorship. Contact your Principal Investigator to ensure they have an active ARCH account and that you have been added to their Unix group. Once confirmed, log in to the cluster using ssh jhed_id@leander.arch.jhu.edu and familiarize yourself with the /scratch directory structure.

Before running large-scale productions, always run a "test job" using the interactive partition to ensure your environment is configured correctly. This small investment in time prevents the frustration of waiting in a long queue only for a job to fail due to a simple syntax error or missing library.