Andreas Kloeckner

Photo of Andreas

Assistant Professor, Department of Computer Science, University of Illinois at Urbana-Chamapign, 2013-

Affiliate Faculty Member, Department of Electrical and Computer Engineering, University of Illinois at Urbana-Chamapign, 2016-
4318 Siebel Center
+1 217 244-6401
Dept. of Computer Science
201 N Goodwin Ave
Urbana, IL 61801

Research Interests

  • High-Order Numerical Methods for Partial Differential Equations (mainly elliptic and hyperbolic)
  • Integral Equation Methods and Fast Algorithms
  • High-Performance Scientific Computing
  • Software Infrastructure for Scientific Computing




  • Xiaoyu Wei (Postdoc since fall of 2018, previously visiting 10/2017—4/2018 from the PhD program, Mathematics, HKUST)

Graduate Students

  • Matt Wala (PhD, Computer Science, 2014-)
  • James Stevens (PhD, Computer Science, 2015-)
  • Cory Mikida (PhD, Aerospace Engineering, joint with Daniel Bodony, 2015-)
  • Isuru Fernando (PhD, Computer Science, 2017-)
  • Hao Gao (PhD, Computer Science, 2017-)
  • Kaushik Kulkarni (PhD, Computer Science, 2017-)


  • Shivam Gupta (BS, Computer Science, 2014-2018)
  • Ellis Hoag (BS, Computer Science, 2017-2018)
  • Hao Gao (BS, Math and Computer Science, 2016-2017)
  • Bogdan Enache (BS, Computer Science, 2016-2018)
  • John Doherty (MS, Computer Science, 2017-2018)


  • Natalie Beams (PhD 2017, joint with Luke Olson, onward to postdoc with Adrianna Gillman, Computational and Applied Math, Rice University)


I have created and continue to maintain a fair amount of open-source software, most of which relates to scientific computing and my research in some way:

  • Pytential: Asymptotically Fast 2D/3D Layer Potential Evaluation
  • Loopy: Transformation-Based Generation of High-Performance CPU/GPU Code
  • Boxtree: High-performance oct/quadtrees, plus FMM traversals
  • Meshmode: High-Order Meshes and Discontinuous Function Spaces
  • PyOpenCL: Pythonic Access to OpenCL, with Arrays and Algorithms
  • PyCUDA: Pythonic Access to CUDA, with Arrays and Algorithms
  • Relate: Online Environment for courses, see for example
  • PuDB: Debugger for Python with a Text UI
  • Pymbolic: Symbolic computation in Python

Many more… (including meshpy, modepy, pyvisfile, cgen, genpy, pymetis, …)

Bio Blurb

Andreas Klöckner is an assistant professor in the scientific computing group within the Department of Computer Science at the University of Illinois at Urbana-Champaign. He works on high-order numerical methods for the simulation of wave problems as well as issues in high-performance scientific computing that relate to bringing these methods to life on large-scale parallel computers. In support of his research, Dr. Klöckner has released numerous scientific software packages. He obtained his PhD degree at the Division of Applied Mathematics at Brown University with Jan Hesthaven, working on large-scale finite element simulations of wave problems in the time domain. From Brown, Klöckner moved to the Courant Institute of Mathematical Sciences at New York University as a Courant Instructor, where he worked on integral equation methods and fast algorithms within Leslie Greengard’s group.

Prospective Students: Questions and Answers

Q: Why Scientific Computing at Illinois?

  • UIUC has one of the top computer science programs in the US and globally, with strong groups in HPC, compilers, architecture, AI, security, software engineering, systems (among many others).
  • UIUC has many top-ranked engineering programs—-and thus many possible ways to make your numerics research count in applications. We are often involved in PSAAP Centers, which are one avenue for such collaboration, also involving national laboratories, with whom we have a close relationship.
  • We, the scientific computing area in CS at Illinois are one of the larger scientific computing groups in the country, with many faculty and many students. Being situated in a CS department enables us to focus on math, methods, algorithms, and implementation, depending on application need, providing breadth as well as depth across these areas. Many of us see value in and publish open-source software tools as one of the pillars of scientific computing.

Q: What are you looking for in prospective students?

I am always looking for passionate, hard-working students to join my research group. The most important quality I look for in students is self-motivation: as a PhD student you need to take charge and proactively drive your own research agenda. I also like students who are energetic and curious, which are critical qualities to effectively identify interesting research problems and find solutions. In terms of technical skills, I expect students to have both mathematical and computational training. That is, you should be comfortable around, say, both Sobolev spaces and GPUs.

Q: What should I do if I want to work with you?

The best thing to do is to read several of my recent papers, and then write me a brief email (with your CV attached) explaining: 1) which of those papers most resemble the work you would like to do and why, 2) why you want to get a PhD, and 3) what research problems you are interested in.

Keep in mind that my research focuses on the numerical solution of partial differential equations. I am also interested in high-performance computing and tools to support it. If you aren’t interested in those areas, then I am not the right advisor for you. You can mention my name in your application so that I can easily find your case. Make sure you select the “Scientific Computing” area in your graduate application.

Advice for Current Grad Students

In the form of links because (1) other people have already said it well and (2) you don’t have to believe me—believe someone more senior!

(Thanks to Gang Wang, whose page I used as a template for the prior two sections.)