Special Topics in Computational Economics and Econometrics

Description

The course teaches students how to implement economic ideas on modern parallel computing equipment. Coverage includes clusters, symmetric multiprocessor machines, and massively parallel graphics devices. The standard application interfaces to access this hardware will be taught: the message passing interface, threads, OpenMP, OpenCL, and ViennaCL. Students will have access to a 48-core machine for assignments and their dissertation research. Accessing these interfaces requires knowledge of C++. Therefore, the course includes an accelerated introduction to the C++ language that will be an adequate foundation for scientific computing. As a side benefit the student will learn the object oriented coding style that minimizes a developer's time by allowing faster coding, minimizing errors, and reducing collateral damage during maintenance. Case studies will be used to illustrate throughout. These include solving a general equilibrium model, calibration of such a model by Markov chain Monte Carlo methods and by optimization methods, estimation of a dynamic game by means of particle filters, and implementation of the multivariate SNP estimator in C++. This will, in turn, entail study of more traditional topics in numerical analysis such as matrix inversion, numerical differentiation, random number generation, data structures, recursion, and profiling. Lectures, homework, etc. are at www.aronaldg.org.

Reading List

Required:

Helpful: