110 likes | 265 Views
CWRE. Lowering the Barriers of Entry to Inverse Modeling: PEST++. Dave Welter, Computational Water Resource Engineering John Doherty, Watermark Numerical Computing Chris Muffels , S.S. Papadopulos & Assoc. Inc . Matthew Tonkin, S.S. Papadopulos & Assoc. Inc.
E N D
CWRE Lowering the Barriers of Entry to Inverse Modeling: PEST++ Dave Welter, Computational Water Resource Engineering John Doherty, Watermark Numerical Computing Chris Muffels, S.S. Papadopulos & Assoc. Inc. Matthew Tonkin, S.S. Papadopulos & Assoc. Inc. Randall J. Hunt, U.S. Geological Survey Willem A. Schreuder, Principia Mathematica MarinkoKaranovic, S.S. Papadopulos & Assoc. Inc.
Acknowledgments This work was partially completed under contract to the United States Geological Survey. The contents of this article and any opinions stated herein are the responsibility of the authors and do not reflect the policies or opinion of the U.S. Geological Survey.
Purpose • Port of PEST to an Object Oriented Language (C++) • Capture most used features in PEST • Open Source / Freely Available • Source code • Executables
Major Components • Inverse Modeling Code: PEST++ • Parallel Run Manager: GENIE • File Management - PESTCommander
PEST ++ • Automatic Calculation of Super Parameter • Built in Normalization • SVD – Guaranteed Stability • Gauss-Marquardt-Levenberg Method • Compatibility with current PEST Control File • Output Files are compatible with PEST • Statically Linked Executable
Performance Features • Automatic Intermittent Super Parameter Reorthogonalization • Rotation Factor • Base Run is Performed in Parallel with Perturbation Runs when computing jacobian • PROPACK
Extensibility Features • Object Oriented Design • Inheritance Based Polymorphism • Generic Transformation Interface • Generic Run Manger Interface • Portability across Platforms • C++ is a mature language governed by ISO Standards • Minimal External Dependencies • All source code integrated in Visual Studio
GENIE • Makes the run management aspect of PEST stand-alone • Retains the model independent focus of PEST • Using template and instruction file protocols • Can be used with Monte-Carlo runs, Genetic algorithms • TCP/IP based – exchanges runs across the Internet like BeoPEST
Genie Calling Program Interface RoutineUsed to Communicate Model Runs between the ‘calling program’ and GMAN • Interface Routine • handles the TCP/IP communication with the run manager • Run Manager • Communicates model runs to the slaves GMAN(HOST) • A Run Executer • Executes the run on the local machine GSLAVE(CLIENT / SLAVE)
GMAN • Design concerns for the run manager • Scalability • Minimize bottlenecks resulting from HOST having to process potentially thousands of connections • Load balancing • Minimize time it takes to finish all runs
PEST Commander • A Parallelization support GUI that: • distributes model files • automatically starts slave computers • Aids in gathering (and analyzing?) results