Graph Coloring for Computing Derivatives
NSF and DOE Funded Project

Home | People | Papers | Presentations | Software | Automatic Differentiation

Overview

Many algorithms for solving nonlinear optimization problems and differential equations require the computation of Jacobians (matrices of first derivatives of vector functions) and Hessians (matrices of second derivatives of scalar functions). Derivative matrices of functions defined by computer programs can be computed analytically, and hence accurately, using Automatic Differentiation (AD). Jacobians and Hessians could also be computed approximately using the relatively older method of Finite Differencing (FD).

The overall aim of this project is to exploit the sparsity available in large Jacobian and Hessian matrices the best possible way in order to make their computation using AD and FD efficient. The sparsity exploiting techniques here are essentially the same whether one uses AD or FD, and involve partitioning the columns, or rows, (or both) of a derivative matrix into a small number of groups. Depending on whether the matrix of interest is Jacobian (nonsymmentric) or Hessian (symmetric), and on the specifics of the computational techniques employed, several partitioning problems can be identified. We formulate these as graph coloring problems, enabling us to analyze the complexity of the problems, and to design and implement effective algorithms for solving them.

Implementations of sequential algorithms we have developed for these coloring problems and other related tasks in derivative computation have been assembled in our software package ColPack. Software provides a description of the functionalities available in and the organization of ColPack. For detailed discussions of the algorithms used in ColPack and their performance, see Papers.

Part of the effort in this project is geared towards developing parallel algorithms. Papers also includes a number of articles discussing our work on parallel coloring algorithms on distributed memory computers. Implementations of these algorithms are made publicly available via the Zoltan toolkit of Sandia National Labs.

Results from this project have been presented at several international conferences, including SciDAC Conferences, SIAM Conferences on Optimization and on Parallel Processing, AD Conferences, and ICIAM meetings. Presentations provides information on talks and posters given on our works in this project.

Funding
This project is funded by the National Science Foundation and by the Department of Energy through the SciDAC Applied Math Institute for Combinatorial Scientific Computing and Petascale Simulations (CSCAPES).

 

News & Updates

 

  • Our serial software package ColPack is now released. Click on Software for more info.
  • Our most recent papers include works on:

o        Jacobian computation in a Simulated Moving Bed process in chemical engineering (appeared in AD2008)

o        Hessian computation in an electric power flow problem (to appear in INFORMS Journal on Computing)

o        Parallel algorithms for distance-2 and related coloring problems (submitted to SIAM J. Sci. Comput.)

  • This project is now part of the CSCAPES Institute, thanks to funding from DOE's Office of Science.