About this role
At IBM Research, we push the boundaries of what’s possible in computing: advancing AI, hybrid cloud, high performance computing, and quantum computing. Our teams explore the fundamental challenges that will define the next era of computational science. As part of IBM Quantum you will join a multidisciplinary group working at the intersection of state of the art HPC systems and emerging quantum processors. Our culture values curiosity, creativity, and scientific rigor, offering unique opportunities to develop the software that will support the future of compute while growing professionally within a team that defines cutting-edge technology. Quantum computers have now demonstrated utility in simulating quantum systems beyond brute-force classical approaches. The community has begun developing algorithms and workflows that leverage both quantum computers and classical HPC systems to scale applications — especially in chemistry and materials science — beyond what either system can simulate alone. At the same time, today's quantum systems face a significant challenge in qubit error rates, which requires techniques such as quantum error mitigation and quantum error correction to manage noise. These techniques are themselves computationally demanding, and are therefore well suited to HPC systems. Both hybrid applications and error mitigation/correction are new research areas, with scientists actively developing and contributing new ideas and algorithms. You will join a team with a long history of experience in HPC and distributed code optimization, working with quantum domain experts to help them distribute and accelerate research code and demonstrate at-scale performance of new algorithms developed within IBM and with our research partners. We are looking for interns interested in accelerating and scaling hybrid HPC–quantum applications, focusing on the HPC side: starting from sequential proof-of-concept code, parallelizing and distributing it, and accelerating it with GPUs where possible. You will work side by side with quantum research scientists and HPC experts, who will guide you throughout the project. More specifically, you will: Analyze sequential code to identify opportunities for parallelization using shared-memory and distributed-memory techniques Identify portions of the resulting code that can be offloaded to GPUs for improved performance Run the code at scale (up to hundreds of GPUs) and evaluate performance and scalability Work alongside quantum scientists to understand the impact of your work on their research: will this allow larger problems to be solved, and make the new algorithm competitive against state-of-the-art classical algorithms? Proficiency in Python and experience with modern software engineering practices Proficiency in at least one systems programming language (e.g., C, C++, Rust) Some level of hands-on experience with HPC software (e.g., OpenMP, MPI, CUDA) Ability to communicate technical results clearly to both HPC engineers and domain scientists, and to work independently in a research setting Experience developing and running parallel or distributed applications on a multi-node HPC cluster, including job schedulers such as Slurm or LSF Hands-on GPU programming experience with CUDA, HIP, or a portability layer such as OpenMP target offload, Kokkos, or OpenACC Familiarity with performance analysis and profiling tools (e.g., Nsight Systems/Compute, VTune, TAU, HPCToolkit) and with reasoning about roofline, strong/weak scaling, and communication bottlenecks Experience with GPU-accelerated numerical libraries (e.g., cuBLAS/cuSOLVER, cuTENSOR, MAGMA, NCCL) or scientific Python stacks such as NumPy/SciPy, CuPy, JAX, PyTorch, mpi4py, Dask, or Numba Background in numerical linear algebra, tensor networks, or Monte Carlo methods, and experience with computational chemistry, materials science, or condensed matter physics codes Exposure to quantum computing concepts and frameworks such as Qiskit — including quantum error mitigation or quantum error correction — or a demonstrated interest in learning them Experience bridging Python and compiled code (e.g., pybind11, nanobind, Cython, CFFI) to accelerate research prototypes Comfort with collaborative development practices: Git, code review, testing, CI/CD United States Research Internship Yorktown Heights, US (0147) International Business Machines Corporation