The Toolkit for Advanced Optimization (TAO) focuses on the design and implementation of component-based optimization software for the solution of large-scale optimization applications. Our approach is to exploit numerical abstractions in optimization software design, so that we can leverage external parallel computing infrastructure (for example, communication libraries and visualization packages) and linear algebra tools in the development of optimization algorithms. The algorithms in the toolkit place strong emphasis on the reuse of external tools where appropriate.
We discuss the design of TAO and our experiences with solving large (more than 1 million variables) optimization problems on parallel architectures. The talk emphasizes the impact of iterative methods for the solution of the subproblems that arise in optimization algorithms.