NERSCPowering Scientific Discovery for 50 Years

2024 Summer Research Projects

Berkeley Lab’s Computing Sciences summer program offers college undergraduates, graduate students, and faculty opportunities to collaborate with NERSC staff on various science and technology research projects. If you are interested in participating in any of the following NERSC projects, please contact the project mentor by email.

To participate in a NERSC project, you must apply for a CSA summer researcher position and be accepted to the project by its mentor or mentors.


Quantum Computing


Quantum Algorithm Development for Neutral Atom Hardware

Science/CS Domains

Quantum simulation, condensed matter physics, neutral atom hardware, high performance computing, quantum computing

Project Description

Recent experiments utilizing neutral atom quantum simulators have deepened our understanding of quantum phases of matter, a fundamental aspect of strongly correlated quantum physics. In this project, the intern will collaborate with a team of scientists from QuEra, a startup specializing in neutral atom quantum hardware, and NERSC. The goal is to develop and implement quantum applications that are specifically tailored to the capabilities of neutral atom hardware, with an emphasis on applications that can enhance scientific computing. Our focus will be on designing algorithms to investigate the dynamics and phases within condensed matter physics models. These algorithms will be tested both numerically using NERSC's classical computing resources and experimentally on QuEra's neutral atom quantum hardware in analog mode.

Desired Skills/Background

  • Experience with Julia or Python and quantum computing algorithms
  • Some knowledge of condensed matter physics

Mentor

Katie Klymko (kklymko@lbl.gov


Application Performance


BilboMD: Implementing an experiment-driven multistep data analysis pipeline on Perlmutter

Science/CS Domains

high performance computing, experiment-driven computational workflows, protein structure (small angle X-ray scattering), molecular dynamics, software engineering, performance monitoring and analysis

Project Description

Experiment-driven simulation workflows are complex multistep recipes that require multiple technologies to be pipelined together while making efficient use of available resources on a supercomputing system. The BilboMD team aims to create a pipeline that will ultimately provide users with a molecular model of a system of interest-based molecular dynamics (MD) models generated by Alphafold and empirical data from small-angle X-ray scattering (SAXS).

The pipeline uses the following as inputs: 1) The amino acid sequence of a single protein or of several proteins that are known to interact with each other, and 2) The associated SAXS data file. SAXS data will have been collected and minimally processed at the SIBYLS beamline at the Advanced Light Source (ALS) at Berkeley Lab.

The pipeline will then generate an initial model using Alphafold. Molecular dynamics are then generated using a package called CHARMM, followed up by FoXS and MultiFoXS runs to compare the molecular dynamics models with the experimental SAXS data.

This summer, we propose a project to focus on different aspects of implementing this pipeline. Successfully completing this project will enhance our understanding of optimal resource utilization for workflow orchestration on our current Perlmutter system. The lessons learned will also be applicable to future computing systems.

The project will focus on

  • Web development: Setting up job submission pipeline from a web app in SPIN using the Superfacility API, along with Continuous Integration pipelines with GitHub Action;
  • Alphafold: Running scaling studies;
  • Data Visualization: Creating scripts to analyze/visualize the results of simulations with experimental data to present to the end user; and,
  • Performance Monitoring.

Other possible subprojects include

  • GPU Performance: Profiling molecular dynamics applications for GPU utilization, and
  • Cheminformatics: Translating input parameter lists for different MD programs.

Desired Skills/Background

  • Experience with Node.js, ReactJS, web development, software build systems, and software packaging and containerization tools
  • Experience with molecular dynamics programs
  • Experience with HPC systems
  • Nice to have skills/background
    • Experience with GPU programming
    • Experience with Continuous Integration practices
    • Python, Javascript

Mentors

Dhruva Kulkarni (dkulkarni@lbl.gov), Scott Classen (sclassen@lbl.gov), Neil Mehta (NeilMehta@lbl.gov)


Profiling and Benchmarking GPU-based Workflows Extracted from HEP Experiments

Science/CS Domains

high performance computing, containerization, software engineering, performance optimization and analysis, programming models, continuous integration

Project Description

High Energy Physics (HEP) experiments increasingly use GPUs for various data processing tasks. However, the portability and performance of GPU-based workflows across different hardware architectures and software layers remain a challenge.

The Portable Parallelization Group at the High Energy Physics Center for Computational Excellence (HEP/CCE) has undertaken the task of porting representative GPU-based workflows from HEP experiments to explore the strengths and weaknesses of different portability layers. This summer, we propose a project to focus on setting up continuous integration pipelines, profiling and benchmarking these applications across different portability layers and possibly different hardware architectures. By focusing on profiling and benchmarking GPU applications, the project aims to provide crucial insights into the performance and portability of HEP workflows. Successful completion of this project will not only enhance our understanding of GPU utilization in HEP experiments but also contribute to the development of optimized solutions for future computing systems.

The project will focus on the following tasks:
  1. Setting up continuous integration pipelines with GitHub Action
  2. Profiling GPU Applications:
    • Use profiling tools to analyze the performance characteristics of GPU-based workflows.
      Identify bottlenecks and areas for optimization within the applications.
    • Generate detailed performance metrics to evaluate the efficiency of different hardware/portability layer combinations.
  3. Benchmarking Across Hardware/Portability Layers:
    • Compare the performance of workflows when utilizing different portability layers such as Kokkos, SYCL, alpaka, OpenMP, and std::par.
    • (Optional) Evaluate the performance of each workflow across different hardware architectures.
  4. Creating Performance Plots:
    • Develop wrappers to automate the execution of workflows and generate standardized performance plots.
    • Enable visualization of performance metrics to facilitate comparison across different hardware and portability layers.
    • Ensure reproducibility and regression testing by permitting compilation and execution with different versions of compilers and portability layers.
Optional Work Areas (for consideration):
  1. Containerization of Mini-Apps:
    • Package the GPU-based workflows into mini-apps using containerization technology.
      Ensure the mini-apps are portable and can be deployed across different facilities without system-specific dependencies.
    • Develop turn-key solutions for easy deployment and execution of the mini-apps, enabling rapid evaluation of new systems.
  2. Enhancing Containerization: Further optimize the containerization process for improved efficiency and ease of deployment.
  3. Integration with Continuous Integration/Continuous Deployment (CI/CD) pipelines: Explore integration with CI/CD pipelines to automate testing and deployment processes.
  4. Exploring New Portability Layers: Investigate emerging portability layers and assess their suitability for GPU-based HEP workflows.

Desired Skills/Background

  • Experience with C++, software build systems and software packaging and containerization tools
  • Experience with GPU programming
  • Experience with HPC systems

Nice to have:

  • Experience with software portability layers for GPU programming (Kokkos, SYCL, alpaka, OpenMP or std::par)
  • Experience with Continuous Integration practices

Mentors

Pengfei Ding (pding@lbl.gov), Dhruva Kulkarni (dkulkarni@lbl.gov), Charles Leggett (cgleggett@lbl.gov)


Creating Proxy-App for Density Functional Theory Code

Science/CS Domains

density functional theory, high performance computing, performance optimization and analysis, programming models

Project Description

For this project, we invite summer researchers to explore profiling, proxy app development strategies, and benchmarking for QE-based DFT simulations.

Quantum chemistry codes use a significant amount of NERSC computational time. Density Functional Theory (DFT) simulations, particularly, are highly popular within the material science research community. DFT is used to model the electronic state of a many-body system from ab initio (first principles), thereby enabling the prediction of fundamental material properties. DFT relies on solving Kohn-Sham equations, which are a set of n one-electron Schrodinger-like equations. Codes such as VASP and Quantum Espresso (QE) are popular frameworks for solving DFT. The open-source nature of QE makes it a good candidate for understanding the code flow for profiling and optimizing studies of DFT computational problems. QE contains many constitutive components, but our focus is on the plane-wave self-consistent field (PWscf) part of the code. 

This project would involve several key tasks, including understanding the code pattern and profiling its performance as we solve a prototype problem using PWscf. The typical DFT cycle involves density approximations, setting up matrixes, solving the Kohn-Sham equations, evaluating new density, comparing with base value, and updating density approximation. QE is written in FORTRAN and C. Based on the findings from code path analysis, we intend to verify code performance. We also intend to create a simpler proxy app, which mimics the computational load of the above loop and will be written in C++. By completing this project, the summer researcher would gain hands-on experience in high performance computing, parallel programming, and profiling and optimization toolkits. Additionally, the results of this project would provide experience in using HPC for physics problems with broader applicability and the NERSC programming environment. 

Desired Skills/Background

  • Experience with programming models
  • Experience with density functional theory

Mentors

Neil Mehta (neilmehta@lbl.gov), Rahul Gayatri (rgayatri@lbl.gov), Jack Deslippe (jrdeslippe@lbl.gov)


Exploring FORTRAN Parallelism Using Kinetic Monte Carlo Code

Science/CS Domains

software engineering, high performance computing, performance optimization and analysis, programming models

Project Description

For this project, we invite summer interns to explore parallelization strategies for Kinetic Monte Carlo simulations. 

Kinetic Monte Carlo is a probabilistic method used to study the time evolution of spatio-temporal processes. In our code, Kinetic Monte Carlo has been used to study ice accretion and ablation from silicon and graphene surfaces due to the presence of atomic nitrogen and oxygen. Inputs to the code are the rates at which the volume of oxygen and nitrogen impinge the surface, as well as the adsorption and ablation rate obtained from molecular dynamics simulations. The code has the following surface-side constituents: grid building, acceptance-rejection algorithm, and surface grid update steps. On the particle side, the code contains particle trajectory mapping and boundary condition implementation. Currently, this code has been written in FORTRAN 77 language and runs serially on a CPU. 

This project would involve several key tasks, including understanding the code pattern and profiling its performance, porting the code to a 2008 standard FORTRAN, and identifying optimization opportunities in the code. Optimization strategies will include using ‘do concurrent,’ ‘coarrays,’ and using ‘simple’ versus ‘pure’ subroutine implementations. The acceptance-rejection algorithm is compute-intensive and provides opportunities to explore strategies for efficient implementation of efficient random number generation. By completing this project, the summer researcher will gain hands-on experience in high performance computing, parallel programming, and profiling and optimization toolkits. Additionally, the results of this project will provide experience in using HPC for physics problems with wider applicability and the NERSC programming environment. 

Desired Skills/Background 

  • Experience with programming models, 
  • Experience with FORTRAN (2008)

Mentors

Neil Mehta (neilmehta@lbl.gov), Brad Richardson (brad.richardson@lbl.gov), Jack Deslippe (jrdeslippe@lbl.gov


Robust (Re)build System in the Fortran Package Manager

Science/CS Domains

software engineering, programming models

Project Description

The Fortran Package Manager (fpm) has grown significantly in popularity and capabilities over the past few years. It provides a convenient and easy to use build system and dependency management tool to the growing, open-source Fortran community. While the current implementation is capable of parallel compilation, it still has some bugs in the source-file dependency and rebuild detection features. Improvements to fpm will greatly improve the productivity of Fortran programmers, a widely used language in the DOE.

This project involves several key tasks, including the following:

  • Analyzing the existing dependency detection algorithms and identifying bugs or logic errors.
  • Understanding the existing dependency tree structure, and devising and implementing an algorithm to successfully perform only the necessary recompilation tasks required by detecting changes in files and how those impact files that depend on them.
  • Deploying and testing fpm with these new features targeting NERSC supercomputers (Perlmutter)
  • Documenting and sharing through a blog post, presentation, or poster the new capabilities
  • Exploring further enhancements to fpm as time allows

Desired Skills/Background

Experience with modern Fortran and Build systems

Mentors

Brad Richardson (brad.richardson@lbl.gov), Brandon Cook


Investigating Load Balancing Efficiency and Potential Algorithmic Improvements in Mesh-and-Particle Frameworks

This project is no longer accepting applicants.

 

Science/CS Domains

software engineering, algorithm design, statistical analysis, high performance computing, discrete optimization, performance optimization and analysis

Project Description

We are seeking an enthusiastic summer student(s) to define the current load balancing (LB) efficiency of AMReX algorithms on real applications and to potentially improve the overall performance through LB algorithm advancements, LB implementation, and/or better selection of runtime data for the LB calculation.

Load balancing is extremely important for large scale, massively parallel simulations. Current LB algorithms are generally simplistic as calculations must be done at runtime, rely on accurate selection and measurement of runtime parameters, and include a large number of simplifications with various impacts on the final solution. As both hardware and simulations increase in complexity and power, having the best possible LB has an increasing effect on an HPC code’s performance.

This investigation seeks to understand the efficiency of the knapsack and SFC algorithms used by the current block-structured, GPU-enabled, mesh-and-particle framework, AMReX. This includes comparing these algorithms to the optimal LB solution, statistical analysis on both randomly generated and full-scale LB data to understand the strengths and limitations of each algorithm, and researching potential improvements.

In this project, selected summer students will create parallel computational tools to perform these statistical analyses of LB data, investigate how to present the analysis for publication, and explore potential improvements that interest them, including improving the algorithms directly, researching other possible LB algorithms, and expanding the implementations to include additional runtime information. Improvements made by the student could have far-reaching impacts as AMReX is the framework for a wide variety of applications.

Desired Skills/Background

  • Experience with C++ and Python
  • Experience with algorithm development
  • Experience with statistics / statistical analysis
  • Experience with parallel codes and parallelization (MPI and/or OpenMP)
  • Experience performing scientific research

Mentors

Kevin Gott, Hannah Ross, Rebecca Hartman-Baker, Jack Deslippe

This project is no longer accepting applicants.

 


Optimize the Weather Research and Forecasting Model with Codee tools

Science/CS Domains

Code optimization, performance optimization and analysis, high performance computing, weather/climate

Project Description

The Weather Research and Forecasting (WRF) Model is a numerical model for the atmosphere and is widely used in research projects worldwide, including those funded by the DOE Office of Science. The model has been developed through the collaboration of several organizations and the user community, and its source code is maintained in Github by the Mesoscale and Microscale Meteorology (MMM) Laboratory of the National Center for Atmospheric Research (NCAR).

WRF is very flexible in terms of scientific and computational configurations. The model can be configured to simulate a broad range of atmospheric processes from boundary-layer turbulence to global-scale circulations and from a small domain on a single node to a large domain using 10s and 100s of nodes (1000s of CPUs) of the NERSC system.

Most of the WRF source code is written in Fortran with shared-memory (OpenMP) and distributed-memory (MPI) parallelisms. While the code performance has been shown to scale well on many HPC platforms, not all parts of the code are optimized for the latest, heterogeneous computing systems like Perlmutter. In particular, the current WRF code lacks GPU off-loading, thus it can't take advantage of Perlmutter's full capability.

The main goal of this internship is to optimize the WRF code for Perlmutter using the Codee tool. Codee is a suite of command-line tools that automates code inspection from the performance perspective. Codee scans the source code without executing it and produces structured reports to help software developers build better-quality parallel software in less time. The tool can detect and fix defects related to parallelism with OpenMP and OpenACC.

The student will work with mentors from NERSC, Codee developers (Appentra Solutions S.L.), and WRF model experts from DOE labs. The project involves several key tasks, including the following:

  • Understanding the basic structure of WRF source code and obtaining general ideas of physical processes simulated by the model
  • Analyzing the WRF code with Codee and identifying opportunities for performance improvement
  • Benchmarking WRF on Perlmutter to identify the bottlenecks for the performance
  • Modifying sections of the WRF code with the Codee tool to improve computational performance on Perlmutter
  • Documenting the workflow and optimization results through presentations in NERSC user group meetings, NERSC documentation, and academic venues
  • Exploring further performance enhancements as time allows

Desired Skills/Background

  • Experience with Fortran
  • Experience with parallel programming using MPI, OpenMP/OpenACC
  • Experience with HPC systems

NERSC Mentors

Woo-Sun Yang (wyang@lbl.gov), Helen He (yhe@lbl.gov), Brad Richardson (brad.richardson@lbl.gov)


Data/Machine Learning


Enabling BonDNet for Complex Reaction Network Active Exploration

Science/CS Domain

computational chemistry, deep learning

Project Description

Constructing and analyzing chemical reaction networks (CRNs) for extreme ultraviolet (EUV) lithography is vitally important for the rational design of photoresist materials and for deepening mechanistic insights. However, the comprehensive enumeration and Density functional theory (DFT) simulation of species and reactions to be included in such CRNs are highly computationally expensive. In this project, we will leverage BonDNet, a graph neural network designed to predict reaction energies for charged molecules, to expedite the construction of CRNs. This will be achieved through an iterative workflow in conjunction with other quantum chemistry tools. Given the primary challenge of this iterative workflow, our focus will be on improving the efficiency of BonDNet to enable training on large reaction energy datasets, scaling BonDNet to a multi-node, multi-GPU setup, and incorporating reliable uncertainty quantification into the active learning loop.

Desired Skills/Background

  • Required: Experience with Python and PyTorch, graph neural networks, knowledge of statistics,  interest in AI for chemistry.

  • Nice to have: Experience with uncertainty quantification, distributed training, computational chemistry background.

NERSC Mentors

Wenbin Xu (wenbinxu@lbl.gov), Steven Farrell (sfarrel@lbl.gov)

This position has been filled for 2024


Workflows Functions as a Service on HPC

Science/CS Domain

high performance computing, workflows, data, Python

Project Description

Investigate different Functions as a Service (FaaS) tools and how they work in an HPC environment. Many cloud providers offer serverless compute capabilities in the form of Functions as a Service (AWS Lambda, Google Cloud Functions, Azure Functions). As cloud technologies become more popular, the HPC user community wants to explore ways to deploy these types of services on the resources they have available to them. Some open-source solutions to FaaS use Kubernetes or other orchestration technologies to coordinate these serverless functions. However, not all solutions can work on a shared resource like Perlmutter at NERSC. The goal is to investigate different FaaS platforms, investigate the feasibility of running these technologies at NERSC, and compare them to HPC-focused workflow tools.

Desired Skills/Background

  • Required: Python, Linux, Docker or other container technologies

  • Nice to have: Knowledge of REST APIs, go, rust, heard of Kubernetes

NERSC Mentors

Nick Tyler (tylern@lbl.gov)

This position has been filled for 2024


Performance analysis of scientific AI workloads for next-gen HPC systems

Science/CS Domain

machine learning, performance analysis + optimization, high performance computing

Project Description

Explore performance analysis and optimization of scientific AI workloads on next-generation HPC systems through this internship project. The focus is on addressing the increasing complexity and computational requirements of scientific AI, especially in the context of foundational models for science. The goal is to improve efficiency and scalability by delving into sophisticated parallelism techniques and advanced AI computing hardware. The intern will work with cutting-edge applications from MLPerf and ongoing research projects to gain insights that can contribute to future HPC system designs at NERSC, facilitating tomorrow’s scientific discoveries with AI.

Desired Skills/Background

  • Required: Python, experience with ML and/or performance analysis
  • Nice to have: Data parallelism, model parallelism, AI hardware

NERSC Mentors

Steven Farrell (sfarrell@lbl.gov), Shashank Subramanian (shashanksubramanian@lbl.gov), Peter Harrington (PHarrington@lbl.gov), Ermal Rrapaj (ermalrrapaj@lbl.gov)

This position has been filled for 2024


Improved Forecasting of Wind Power using Physics and AI

Science/CS Domain

Renewable energy, atmospheric science, machine learning, high-performance computing

Project Description

Accurate prediction of wind power is crucial for the functioning and growth of renewable energy but presents multiple challenges. The sources of error include (1) lack of asset-level wind forecasts and (2) intrinsic biases for wind power response curves, among other more general forecasting uncertainties. This project aims to develop machine learning models for forecasting wind power by improving understanding of the various sources of errors and identifying which features are most predictive of downstream power generation. This will include analysis of physics-based models (WRF/LES), observational data, weather forecasts, and power output information from ISOs using AI/ML methods to create more robust wind power forecasts.

Desired Skills/Background

  • Proficiency in Python and experience with machine learning frameworks (e.g., TensorFlow, PyTorch).

  • Prior experience in training large deep learning models (such as transformers, etc)

  • Experience with data processing, analysis, and visualization tools (e.g., Pandas, Matplotlib, GIS software).

  • Nice to have: Knowledge of physics based models such as WRF, LES

NERSC Mentors

Pratik Sachdeva, Ryan Zarcone, Mayur Mudigonda (hiring@vayuh.ai), Shashank Subramanian, Peter Harrington, Wahid Bhimji, Ashesh Chattopadhyay

This position has been filled for 2024


“Fair Universe” Uncertainty aware large-compute-scale AI platform for fundamental science

Science/CS Domain

machine learning, high performance computing

Project Description

We are building a supercomputer-scale AI ecosystem for sharing datasets, training large models, and hosting machine-learning challenges and benchmarks. This ecosystem will be initially exploited for a ML challenge series, based on novel datasets and progressively rolling in tasks of increasing difficulty focussing on discovering and minimizing the effects of systematic uncertainties in physics. You will work with a multidisciplinary team including machine learning researchers and physicists to build AI challenges, models and software that exploit supercomputers at NERSC. We expect to run one of the challenges later in the year targeting NeurIPS 2024. Projects could range from software development on the machine learning platform, to running the challenge itself, to refining the datasets, tasks, and metrics.

Desired Skills/Background

  • Required: Python development and some machine learning frameworks (e.g PyTorch).
  • Nice to have: Dataset related projects in High-Energy Physics experience useful, for other projects not-required

NERSC Mentors

Wahid Bhimji (wbhimji@lbl.gov), Steven Farrell (sfarrell@lbl.gov), Chris Harris (cjh@lbl.gov)

This position has been filled for 2024


Automatically Flagging Inefficient Data Access Behaviors

Science/CS Domains

storage, data management

Project Description

High-performance computing users face challenges when data access
performance is slower than expected. While I/O profiling tools can be
used to identify inefficiencies, a more scalable approach is required.
We aim to expand existing frameworks, such as Dristi, to flag
inefficient behaviors based on data access features, system
conditions, and heuristics. Inefficient data accesses can disrupt
scientific discoveries, so it is crucial to promptly flag such
behaviors and provide effective solutions to meet user needs.

Required Skills:

  • I/O, Parallel I/O, Python, MPI-IO, POSIX, data analysis

Desired Skills:

  • Experience with I/O profiling tools (e.g., Darshan, Recorder)

NERSC Mentors

Stephen Simms (ssimms@lbl.gov) and Lisa Gerhardt (lgerhardt@lbl.gov)


Power/Energy Efficiency


Power Analysis of HPC Applications

Science/CS Domain

application power usage, power management, high-performance computing

Project Description

As high-performance computing (HPC) systems continue to scale, power consumption has become a critical limiting factor. Understanding the power signature of current production workloads is essential to address this limit and continue to advance scientific computing at scale. This project aims to understand the power characteristics of top applications at the National Energy Scientific Computing Center (NERSC) and investigate how the standard power management strategies impact these workloads. The insights gained from this research will illuminate pathways to enhance power efficiency in operational settings and achieve optimal system performance within predefined power budgets.

Required Skills

  • Python (with Numpy and Pandas)

Desired Skills/Background

  • Experience in using HPC systems, computer sciences/physics

NERSC Mentors

Zhengji Zhao (zzhao@lbl.gov)


Infrastructure


Infrastructure Services Monitoring, Resource Utilization, Reporting, and Alerts

Science/CS Domain

high performance computing, resource monitoring, operations

Project Description

For this project, we invite summer interns to analyze metrics from the infrastructure services underlying NERSC, visualize the data to monitor system health, and produce alerts to predict or warn of error conditions.

The service infrastructure that supports NERSC is a critical component of the overall computational center, helping to ensure that supercomputers and storage run smoothly. These services consist of the tools and platforms that NERSC users and/or other NERSC systems alike depend on every day: authentication and access control, Iris and its account and allocation management subsystems, the NERSC API, Spin, and more. They run in a mixed environment of Kubernetes, VMware, physical servers, and enterprise storage.

On this project you'll work directly with the infrastructure team at NERSC to configure nodes in the systems above to export resource utilization metrics using Prometheus, build meaningful dashboards to visualize the data, study trends and identify patterns, and devise alerts that are raised when key metrics deviate from healthy baselines. You'll get hands-on experience with industry-leading monitoring tools, and you'll get insights into what it takes to support a supercomputing center.

Required Skills

  • Experience with Prometheus, PromQL, Grafana, and skills with collecting and interpreting data

Desired Skills/Background

  • Experience with containers, Kubernetes, VMware, monitoring and alerting systems

NERSC Mentor

Gabriel Evanoff (gevanoff@lbl.gov)


Center API Monitoring and Scaling

Science/CS Domains

high performance computing, API design, systems programming

Project Description

For this project, we invite summer interns to analyze the performance of the API to our compute and storage resources.

The NERSC supercomputer and storage solutions are valuable building blocks of scientific research conducted at the center. Increasingly, automated scientific workflows access these systems via API. As the number of such workflows becomes greater over time, it's critical for the API infrastructure to be able to scale with the demand.

On this project you'll analyze the runtime characteristics of the API systems, identify bottlenecks and develop a proposal for future growth. You will work on enhancing the testing framework by writing code, researching off-the-shelf solutions and enhancing the system's monitoring.

Required Skills:

  • Programming in Python, familiarity with REST APIs and distributed microservice architectures
  • Experience in application monitoring solutions (eg, Prometheus)
  • Ability to report on proposed enhancements for future scale

Desired Skills/Background

  • Experience with containers, Kubernetes, application monitoring systems

NERSC Mentor

Gabor Torok (gtorok@lbl.gov)


Applications Closed

The following projects have already hired summer interns or are no longer accepting applications.


Optimize chatbot backend for NERSC documentation

Applications are now closed for this project.

Science/CS Domain

software engineering, high performance computing, deep learning

Project Description

For this project, we invite summer interns to explore fine-tuning related strategies for open source large language models.

Large language models - natural language processing (NLP) systems with billions of parameters - have transformed AI research over the last few years. Trained on a massive and varied volume of text, they show surprising new capabilities to generate creative text, solve basic math problems, answer reading comprehension questions, and more. One particularly useful application of these models is query answering based on documentation. At NERSC, we have thousands of users who interact daily with our infrastructure and submit jobs on Perlmutter.

This project would involve several key tasks, including creating a dataset from the available NERSC documentation in the form of question-answer pairs, integrating various pre-trained open source LLMs as backend, tailoring them to Perlmutter documentation by fine-tuning the model and embeddings, and investigating other recent developments from the deep learning literature.

Desired Skills/Background

  • Experience with deep learning, torch/jax packages, large language models
  • Experience with high performance computing

NERSC Mentors

Ermal Rrapaj (ermalrrapaj@lbl.gov), Nestor Demure (ndemure@lbl.gov), Steven Farell (sfarrel@lbl.gov), Neil Mehta (neilmehta@lbl.gov)


Large-scale Quantum Circuit Simulations of ADAPT-VQE for Quantum Chemistry Simulations on Perlmutter

Applications are now closed for this project.

Science/CS Domains

Quantum circuit simulations, software engineering, high performance computing, quantum computing

Project Description

For this project, we will deploy exact quantum circuit simulation codes, developed within the DOE ecosystem, on NERSC’s Perlmutter system. The intern will work as part of a larger team on several key tasks, including the following:

  • Set up ADAPT-VQE circuit simulations for a set of target molecules,
  • Run large-scale circuit simulations on up to 40 qubits and beyond if possible,
  • Implement new operator pools and measurement reduction techniques for ADAPT-VQE,
  • Prepare quantum computer hardware runs based on the results of the large-scale simulations

Desired Skills/Background

  • Experience with C++, Python, quantum computing algorithms
  • Nice to have: Slurm, HPC experience

Accelerate Quantum Algorithm for the Gradient of an Image Using GPUs

Applications are now closed for this project.

Science/CS Domains

quantum circuit simulations, data & model parallel computation on GPUs

Project Description

Image encoding and processing on quantum devices is an emerging field of research, crucial for leveraging quantum computers to advance natural science research where image analysis plays a vital role – from medical imaging to astronomical data interpretation. At NERSC, our research team has developed an algorithm to calculate the gradient of a grayscale image on a quantum computer, initially using the Qiskit simulator. The current implementation faces scalability challenges. The project aims to transition the quantum algorithm to cuQuantum-based simulations, aiming for effective multi-GPU scaling. Employing NERSC HPC resources, particularly the Perlmutter supercomputer, we aim for a deployment scale on 32 NVIDIA A100 GPUs, allowing for a simulation of up to 35 qubits. Participants will have the opportunity to coauthor a publication upon successful implementation, contributing significantly to this cutting-edge field.