Download presentation
Presentation is loading. Please wait.
Published byAubrie Flowers Modified over 9 years ago
1
MOOCHO and TSFCore object-oriented software and interfaces for the development of optimization and other advanced abstract numerical algorithms Roscoe A. Bartlett Optimization and Uncertainty Estimation Sandia National Laboratories Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract DE-AC04-94AL85000.
2
Nonlinear Programming for Large-Scale Optimization Classes of problems considered: Large-scale (up to 10 6 variables and more) Special problem structure (e.g. PDEs, DAEs) Application specific methods (e.g. linear solvers, nonlinear globalization) Specialized computing environments (e.g. MPP, client/server, out-of-core) What we can not do: Use the current generation of optimization software to exploit problem structure and take advantage of advanced computing environments What we do not want to do: Write a new optimization implementation for each piece of application software What we do want to do: Use gradient-based methods for simultaneous analysis and design (SAND) NLP formulation for Simulation-Driven Optimization minf(y,u)f(y,u) Y U R s.t.c(y,u) = 0c(y,u) Y U C (y L, u L ) (y, u) (y U, u U ) Y R m, U R n-m, C R m y Y : state variables u U : design/control variables f(y,u) : objective function c(y,u) : state (simulation) constriants
3
NAND vs. SAND : Choosing the right approach NAND SAND Decreased impact to existing code Ease of interfacing Nonsmooth behavior Better scalability to large design spaces More accurate solutions Algorithmic flexibility Less computer time Nested Analysis and Design Simultaneous Analysis and Design
4
Introducing MOOCHO! MOOCHO : Multifunctional Object-Oriented arCHitecture for Optimization Built using object-oriented principles => OO! Initially developed at CMU (rSQP++) => Good times! Active-set and interior-point SQP-related methods => Fast! or Fast? Open source (available soon?) => You can get it! Flexible algorithm configuration => You can alter it! Exchangeable numerical components => You can tailor it! Abstract linear-algebra interfaces (AbstractLinAlgPack) => You can parallelize it!
5
Nonlinear Equations : Foundation for many Problems! Applications Discretized PDEs (e.g. finite element, finite volume, finite difference etc.) Network problems (e.g. electrical circuits)
6
Nonlinear Equations : Sensitivities Related Algorithms Gradient-based optimization SAND NAND Nonlinear equations (NLS) Multidisciplinary analysis Linear (matrix) analysis Block iterative solvers Eigenvalue problems Uncertainty quantification SFE Stability analysis / continuation Transients (ODEs, DAEs) B. van Bloemen Waanders, R. A. Bartlett, K. R. Long and P. T. Boggs. Large Scale Non-Linear Programming: PDE Applications and Dynamical Systems, Sandia National Laboratories, SAND2002-3198, 2002
7
Applications, Algorithms, Linear-Algebra Software APP : Application: Defines data for the problem (e.g. PDE or DAE model and discretization) LAL : Linear-Algebra Library : Implements basic matrices, vector and algebraic precondtioners (e.g. Epetra/Ifpack (Trilinos), PETSc etc.) ANA : Abstract Numerical Algorithm : Solves the numerical problem (e.g. optimization, nonlinear solvers, stability analysis, SFE, transient solvers etc.) Key points Complex algorithms Complex software Complex interfaces Complex computers Duplication of effort?
8
MOOCHO and TSFCore Key points Maximizing development impact Software can be run on more sophisticated computers Fosters improved algorithm development TSFCore TSFCore::Nonlin MOOCHO AbstractLinAlgPack NLPInterfacePack
9
TSFCore : Basic Linear Algebra Interfaces LinearOps apply to Vectors An operator knows its domain and range spaces A linear operator is a kind of operator Unified Modeling Langage (UML) Notation! A Vector knows its VectorSpace > VectorSpaces create Vectors!
10
TSFCore : Basic Linear Algebra Interfaces > Near optimal for many but not all abstract numerical algorithms (ANAs) Compatible with: HCL (Hilbert Class Library) SVL (Standard Vector Library)
11
TSFCore : Basic Linear Algebra Interfaces A MulitVector is a linear operator! A MulitVector has a collection of column vectors! A MulitVector is a tall thin dense matrix > VectorSpaces create MultiVectors! LinearOps apply to MultiVectors
12
TSFCore : Basic Linear Algebra Interfaces > What about standard vector ops? Reductions (norm, dot etc.)? Transformations (axpy, scaling etc.)? What about specialized vector ops? e.g. Interior point methods for opt
13
TSFCore : Basic Linear Algebra Interfaces The Key to success! Reduction/Transformation Operators Supports all needed vector operations Data/parallel independence Optimal performance R. A. Bartlett, B. G. van Bloemen Waanders and M. A. Heroux. Vector Reduction/Transformation Operators, Accepted to ACM TOMS, 2003 Challenge to interoperability?
14
TSFCore : Basic Linear Algebra Interfaces VectorSpaces create Vectors and MultiVectors! MultiVector subviews can be created! Vector and MultiVector versions of apply(…)! Adjoints supported but are optional! Only one vector method!
15
TSFCore Details All interfaces are templated on Scalar type (support real and complex) Smart reference counted pointer class Teuchos::RefCountPtr<> used for all dynamic memory management · Many operations have default implementations based on very few pure virtual methods RTOp operators (and wrapper functions) are provided for many common level- 1 vector and multi-vector operations Default implementation provided for MultiVector ( MultiVectorCols ) Default implementations provided for serial computation: VectorSpace ( SerialVectorSpace ), VectorSpaceFactory ( SerialVectorSpaceFactory ), Vector ( SerialVector )
16
AbstractLinAlgPack : MOOCHO Linear Algebra
17
Example ANA : Linear Conjugate Gradient Solver
18
Multi-vector Conjugate-Gradient Solver : Single Iteration template void CGSolver ::doIteration( const LinearOp &M, ETransp opM_notrans,ETransp opM_trans, MultiVector *X, Scalar a,const LinearOp *M_tilde_inv,ETransp opM_tilde_inv_notrans, ETransp opM_tilde_inv_trans ) const { const Index m = currNumSystems_; int j; if( M_tilde_inv ) M_tilde_inv->apply( opM_tilde_inv_notrans, *R_, &*Z_ ); else assign( &*Z_, *R_ ); dot( *Z_, *R_, &rho_[0] ); if( currIteration_ == 1 ) { assign( &*P_, *Z_ ); } else { for(j=0;j<m;++j) beta_[j] = rho_[j]/rho_old_[j]; update( *Z_, &beta_[0], 1.0, &*P_ ); } M.apply( opM_notrans, *P_, &*Q_ ); dot( *P_, *Q_, &gamma_[0] ); for(j=0;j<m;++j) alpha_[j] = rho_[j]/gamma_[j]; update( &alpha_[0], +1.0, *P_, X ) update( &alpha_[0], -1.0, *Q_, &*R_ ); }
19
TSFCore::Nonlin : Interfaces to Nonlinear Problems Supported Areas NAND optimization SAND optimization Nonlinear equations Multidisciplinary analysis Stability analysis / continuation SFE Function evaluations: NonlinearProblem (nonsingular) State Jacobian evaluations : Auxiliary Jacobian evaluations : NonlinearProblemFirstOrder State variables Auxiliary variables State equations Response functions
20
TSFCore SAND Reports Get most recent copy at: Trilinos/doc/TSFCore
21
Summary & Conclusions MOOCHO MOOCHO is framework/library for large-scale NLP MOOCHO currently supports several active-set and interior-point SQP- related methods MOOCHO can be adapted to the application MOOCHO is fully scalable TSFCore Minimal but efficient interface to linear algebra implementations Trilinos (LGPL) standard for abstract interfaces for linear algebra –Block linear solvers (Belos) –Block eigenvalue solvers (Anasazi) Used in SPMD, client/server, master/slave etc. Example numerical algorithms: –NLP optimization (through MOOCHO) –Nonlinear equation solvers (through NOX) –Time domain decomposition (Heinkenshloss)
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.