Re: Optimization




SQP per se is a fairly "high-level" algorithm. Advances in computer architecture have probably more influence on the underlying lower-level algorithms such as QP, matrix factorization, sparse matrix tecnhniques etc. E.g. differences in cache behavior may influence a sparse matrix factorization algorithm and its implementation but has less impact on the SQP algorithm itself.

In general newer machines tend to have more memory
so that would make things like "out-of-core" algorithms
less attractive. Also we no longer use assembly language
anymore. A big difference on the algorithm design may
be support of serial vs. parallel machines.

One big difference between a code from 20 years ago
and a current code, is that nowadays a large-scale
SQP algorithm would see much larger problems than 20
years ago. Users have now enough hardware and modeling
software to generate nonlinear NLP models with
millions of variables/equations and expect the NLP
solver to handle this.

Besides that I would like to mention that lots of
other issues determine real-world performance such
as surrounding algorithms used in the NLP code (e.g.
scaling, presolving), use of second derivatives,
exploitation of problem characteristics such as
many linear constraints/variables and proper
modeling and problem formulation including good
bounds, proper scaling and a good initial point.


Jon Harrop wrote:
BemusedbyQM wrote:

Computers have changed somewhat over the past two decades.

computers have, algorithms havent.


The most efficient algorithm for any given task evolves with computer
design. A pair of algorithms are likely to have very different performance
characteristics when run on a 20 year old and a new computer. Which one is
faster may well be different on modern technology.


---------------------------------------------------------------- Erwin Kalvelagen GAMS Development Corp., http://www.gams.com erwin@xxxxxxxx, http://www.gams.com/~erwin ---------------------------------------------------------------- .