This class will be taught by the Stan core developer Daniel Lee and one other member of the Stan team. We will assume that you are familiar with Stan, have written Stan programs and want to understand what goes on under the hood.
Prerequisites: Stan modeling skills. Not afraid of getting into internals of a package. Some knowledge of C++ is useful, but not strictly necessary.
Debugging Stan programs
We'll start with techniques for debugging Stan programs from Stan. Implementation is hard. We'll talk about what we can do to make sure that the implementation of a Stan program is correct.
Optimization vs parameterization
We'll cover optimization of Stan programs when it's useful. When it's a parameterization issue or model misspecification. We'll cover ways of diagnosing parameterization. We'll talk about the sort of gains we'd expect from optimizing the Stan code alone.
How to ask for help
Communication is important. We'll cover how to request help.
How all the interfaces work
We'll get an overview of how everything (GitHub repos) ties together. We'll get into build instructions for CmdStan, RStan, and PyStan. This is useful for building Stan extensions. We'll also show how easy it is to swap compilers and enable OpenMP.
Debugging at the C++ level
We'll cover how to get into the C++ that gets called. We'll show how to call parts of the C++ library and how to run tests.
Updating implementations of Stan code
Adding new C++ functions
Date and Time
Davis Auditorium, Columbia University
530 West 120th Street
4th floor (campus level), room 412
New York, NY 10027