Vita
About
Dr. Andy R. Terrel is the CUDA Python Product Lead at NVIDIA. You will also find him leading the infrastructure committee of the NumFOCUS foundation. As a passionate advocate for open source scientific codes Andy has been involved in the wider scientific Python community since 2006, contributing to numerous projects in the scientific stack.
Dr. Andy R. Terrel has held several executive roles at tech startups including Anaconda, Xometry, Boldmetrics, REX Real Estate Exchange, and most recently StoryFit. During his academic career, he was previously a Research Associate Scientist for the Computational Hydraulics Group at the Institute for Computational Engineering and Science which is at the Universiy of Texas at Austin and High Performance Computing researcher at the Texas Advanced Computing Center. Andy's research included utilizing supercomputers with Python and studying methods for speeding up computational fluid dynamics. He graduated from the University of Chicago with a PhD in Computer Science in 2010 and has been programming in Python for the last decade. Andy has contributed to numerous open source projects notably the FEniCS Project and Sympy.
Education
Ph.D. in Computer Science, August 2010, The University of Chicago, Chicago, Illinois. Research Area: finite element methods and computational science
M.S. in Computer Science, June 2007, The Universiy of Chicago, Chicago, Illinois. Thesis: FEM Automation with a case study on the Stokes equations
B.S. in Physics and Mathematics, cum laude, honors, May 2004, Texas Tech University, Lubbock, Texas.
B.A. in Philosophy, cum laude, honors, May 2004, Texas Tech University, Lubbock, Texas.
Industry Experience
CUDA Python Product Lead, NVIDIA, 2023-present.
Chief Technology Officer, StoryFit, 2022-2023.
VP Data and Algorithms, Xometry, 2021-2022.
Chief Data Scientist, REX Homes, 2017-2021.
Chief Technology Officer, Boldmetrics, 2015-2017.
Chief Data Scientist, Continuum Analytics, 2012-2015.
Scientific Software Developer, Enthought Inc., 2011.
- Worked as a consultant for Wall Street client speeding up data intensive apps by over 100X,
- Contributed to open source interactive plotting software, and
- Built relationships with scientific clients and authored research proposals.
System Administrator, Computer Science Department, University of Chicago, Chicago, IL, 2007–2009.
- Provided general maintenance on 200+ servers (Debian Linux/GNU, OpenBSD, and Solaris),
- Migrated various services such as Apache webserver, MySQL databases, and Amanda backup system from legacy hardware, and
- Supported custom systems scripts in Python, Perl, and Bash.
Teaching Assistant, Computer Science Department, University of Chicago, Chicago, IL.
- Taught non-majors introduction to Java and SQL, Spring 2009, and
- Taught honors introductory computer science lab (using Scheme), Autumn 2006 and Autumn 2007.
Technical Consultant, Kove Corporation, Chicago, IL, Feb 2007–Jul 2008.
First stage start-up company developing a network storage appliance.
- User interface and system management team,
- Engineered distributed testing infrastructure for multiple platforms,
- Provided technical support and client liaison for first beta installation, and
- Recruited, interviewed, and mentored software developers.
Industry Advisor
- StoryFit
- Saturn Cloud
- KindHealth
- OneBrief
Publications
C. Burstedde, D. Calhoun, K.T. Mandli, and A.R. Terrel, ForestClaw: Hybrid forest-of-octrees AMR for hyperbolic conservation laws, to appear ParCo 2013, arXiv:1308.1472
M.G. Knepley and A.R. Terrel, Finite Element Integration on GPUs, ACM Transactions on Mathematical Software (TOMS), Volume 39 Issue 2, February 2013 Article No. 10. doi 10.1145/2427023.2427027
A.R. Terrel and K.T. Mandli, ManyClaw: Slicing and dicing Riemann solvers for next generation highly parallel architectures, TACC-Intel Symposium on Highly Parallel Architectures. 2012.
A.R. Terrel, R.C. Kirby, M.G. Knepley, L.R. Scott, and G.N. Wells, Finite elements for incompressible fluids, in A. Logg, K.A. Mardal, and G. N. Wells, editors. Automated solutions of differential equations by the finite element mehod. Springer-Verlag. Lecture Notes in Computational Science and Engineering, Vol 84, 2011.
R.C. Kirby, A. Logg, and A.R. Terrel,Common and unusual finite elements, in A. Logg, K.A. Mardal, and G. N. Wells, editors. Automated solutions of differential equations by the finite element mehod. Springer-Verlag. Lecture Notes in Computational Science and Engineering, Vol 84, 2011.
R.C. Kirby, M.G. Knepley, A. Logg, L.R. Scott, and A.R. Terrel, Discrete optimization of finite element matrix evaluation, in A. Logg, K.A. Mardal, and G. N. Wells, editors. Automated solutions of differential equations by the finite element mehod. Springer-Verlag. Lecture Notes in Computational Science and Engineering, Vol 84, 2011.
A.R. Terrel, “From equations to code: Automated Scientific Computing”, Computing in Science and Engineering, March 2011.
A.R. Terrel, L.R. Scott, M.G. Knepley, R.C. Kirby, “Automated FEM Discretizations for the Stokes Equation”, BIT Numerical Mathematics, July 2008, Vol 48, pp 389–404.
R.C. Kirby, A. Terrel, L.R. Scott, A. Logg, “Topological optimization of the evaluation of finite element matrices”, SIAM Journal of Scientific Computing, January 2006, Vol 28 No 1, pp 224-240.
A.R. Terrel, “Finite element method automation for non-Newtonian fluid models”, PhD Thesis, University of Chicago, Department of Computer Science April 2010.
A.R. Terrel, “FEM Optimization with a case study of the Stokes equations”, Master’s Thesis, University of Chicago, Department of Computer Science March 2007.
A.R. Terrel and K. R. Long, “Evaluation of Level Set Topology Optimization Formulations for the Design of Minimum-Dispersion Microfluidic Devices”, NECIS Summer Proceedings 2006, Sandia National Labs.
A.R. Terrel, and B. Thacker, “A Global View of Cognitive Structure and Implications for Instruction and Assessment”.
Presentations
A.R. Terrel, “Numpy and Scipy as a DSL”, Supercomputing 2011, Birds of a feather session: Scripting languages and DSLs in HPC, Seattle, WA, Nov 2011.
A.R. Terrel, “The FEniCS project”, FEMTEC’2011, South Lake Tahoe, May 2011.
A.R. Terrel, “Rheagen: rheology application engine”, Mini-Symposium, SIAM Computational Science and Engineering 2011, Reno, Nevada, February 2011.
A.R. Terrel, “FEniCS tutorial”, 2nd European Seminar on Coupled Problems, Pilzen, Czech Republic. June 2010.
A.R. Terrel, “Mathematical Interfaces for Automated Scientific Computing”, Computing Techniques Seminar, Fermi National Accelerator Laboratory, Batavia, IL, November 2009 and ITTC Seminar, University of Kansas, Lawrence, Kansas, November 2007.
A.R. Terrel, “Algorithms for the Grade-Two Fluid Model”, Simula Laboratories, Oslo, Norway, September 2008.
A.R. Terrel and M. G. Knepley, “FEniCS and Sieve Tutorial”, Automated Scientific Computing Workshop, CCT center Louisiana State University, Baton Rouge, Louisiana, March 2008.
A.R. Terrel, “Abstractions in FEM Software”, FEniCS’06, Delft Technology Institute, Delft, The Netherlands, November 2006.
A.R. Terrel, “Topology Optimizations with Applications in Microfluidics: a Comparison of Level Set Methods”, Applied Mathematics Seminar, Department of Mathematics and Statistics, Texas Tech University, Lubbock, September 2006.
A.R. Terrel, “A Novice Uses FEniCS”, FEniCS’05, Toyota Technical Institute at Chicago, Chicago, IL October 2005.
A.R. Terrel, “Code Generation in Python”, Supercomputing 2011, Birds of a feather session: Python in HPC, Seattle, WA, Nov 2011.
A.R. Terrel and M.G. Knepley, “Code generation for complex fluids”, 2nd European Seminar on Coupled Problems, Pilzen, Czech Republic, June 2010.
A.R. Terrel and M.G. Knepley, “FEM automation of Oldroyd-B fluids”, USNCCM 10, Columbus, Ohio. July 2009.
A.R. Terrel and M. G. Knepley, “Automation of Finite Element Assembly using a Topology Based Mesh Library”, BIT Numerical Circus, Oslo, Norway, August 2008.
A.R. Terrel and M. G. Knepley, “Finite Element Assembly on Arbitrary Meshes”, SIAM Conference on Parallel Processing for Scientific Computing, Atlanta, Georgia, March 2008.
A.R. Terrel, “FEM Automations with a case study on the Stokes Equations”, Masters Presentation, Department of Computer Science, University of Chicago, Chicago, IL, March 2007.
A.R. Terrel, “A Case for Developing with a PDE Language”, SIAM Computer Science and Engineering, Costa Mesa, CA, February 2007.
A.R. Terrel, “Optimizing Local Matrix Computations for Finite Element Methods”, SIAM Annual Meeting, New Orleans, June 2005.
Research Experience
Research Associate, Institute for Computational Engineering and Sciences, University of Texas at Austin, April 2013 - present.
Research Associate, Texas Advanced Computing Center, University of Texas at Austin, November 2011 - April 2013.
Postdoctoral Fellow, Texas Advanced Computing Center, University of Texas at Austin, April 2010 - April 2011.
Researched automation of scientific simulations with the FLAME project with Victor Eijkhout and Robert van de Geijn.
Research Assistant in Computer Science Department of University of Chicago, September 2004 - 2010.
Researched optimization and evaluation of finite element methods.
Givens Fellowship, Argonne National Lab, Mathematics and Computer Science Division, Summer 2009.
With Dmitry Karpeev and Matthew G. Knepley, researched integral operator compression using wavelet basis.
Visiting Research Assistant, Delft Technical University, Delft, The Netherlands, Jun-Dec 2008.
With Garth N. Wells, researched algorithms for non-Newtonian fluids.
Internship, Sandia National Labs, Computer Science and Mathematics Division, Livermore, CA, Summer 2006.
With Kevin Long, researched PDE constrained optimization methods with level set functions for topology optimizations and contributed to the Sundance software package.
Research Assistant in Physics Department of Texas Tech University, August 2001- May 2004.
With Beth Ann Thacker, I researched physics education developing cognitive models based on physics teaching.
Teaching Experience
Semester
Lecturer, Scientific and Technical Computing, Division of Statistical and Scientific Computing, University of Texas at Austin, 2013.
- 3 Hour undergraduate and graduate course
- Co-taught with Paul Navritil
- Course Material
Lecturer, Scientific Computing with GPUs, Division of Statistical and Scientific Computing, University of Texas at Austin, 2012.
- 3 Hour undergraduate and graduate course
- Co-taught with Paul Navritil
- Course Material
Lecturer, World Wide Web Programming: Java and SQL, Computer Science Department, University of Chicago, Spring 2009.
- Prepared curriculum and materials,
- Lectured 3 hours a week, and
- Oversaw teaching assistants for grading and lab section.
Lab Assistant, Honors introductory computer science, Computer Science Department, University of Chicago, Autumn 2006 and 2007.
- Prepared lab based on corresponding lecture material, and
- Taught 2 hour weekly lab.
Discussion Leader, Honors College, Texas Tech University, Autumn 2003 and 2004.
- Helped develop new first year experience program, and
- Taught weekly 2 hour philosophy and humanities discussion sections.
Physics Education Research/Teaching Assistant, Physics Department, Texas Tech University, 2002 – 2004.
- Developed peer-learning projects for non-major physics class,
- Graded assignments, and
- Collected and analyzed data to assess learning.
Day/Week Trainings
Python beyond the GPU, PyCon Conference, Santa Clara, Spring 2013. Software Carpentry Bootcamp, University of Texas at Austin, Fall 2012. Python in HPC, Supercomputing Conference Fall 2012, TACC Training each semester 2010 - 2013.
Certificates
Teaching Certificate in University Teaching, Center for Teaching and Learning, University of Chicago, 2010.
Service
Board Member NumFOCUS Foundation, 2013 - present. Co-Chair SciPy 2013 Conference Organizer Supercomputing conference 2011-2012, Birds of a Feather, Python in HPC Program Committee Supercomputing conference 2011-2012, Python in HPC workshop Organizer Scientific Software Days Workshop. Program Co-Chair SciPy 2012 Conference Organizer of FEniCS 2011 Conference. Participant of Austin GiveCamp 2011. Mentor for Google Summer of Code, Summer 2009 and 2010. Reviewer for
- Scientific Computing,
- Journal of Computational and Applied Mathematics,
- International Journal of Computer Applications in Technology,
- Automated Scientific Computing, a contributed collection from Springer-Verlag, and
- Java textbook published by Pearson Addison Wesley.
Session aide, AAAS Annual meeting, Chicago, IL, January 2009. Session chair, SIAM Conference on Parallel Processing for Scientific Computing, Atlanta, GA, February 2008.
PUBLIC SOFTWARE
ManyClaw author: a heterogenous implementation of CLAWPACK.
Ignition author: a collection of numerical code generation tools.
FEniCS contributor: a collection of free software projects that uses finite element methods to automate computational mathematical modeling.
- Principal author of Rheology Application Engine (rheagen), an automated non-Newtonian fluid model simulation engine,
- Contributed to the DOLFIN, FIAT, and FERRARI subprojects.
Other projects: significant or regular contributions to:
- Sympy: a free Python based computer algebra system,
- Sundance: a finite element modeling package from Sandia National Laboratory, and
- PETSc: a large scale linear algebra package from Argonne National Laboratory.
Programming
I have a wide array of programming skills, see chart below, coming from both professional and hobbyist experience. My top professional skills include:
- Scientific simulation techniques,
- Concurrent and distributed computing, and
- Generative programming techniques.