The Rice Vector Library ("RVL") provides

RVL enables high-quality implementations of numerical algorithms to be shared across the wide variety of data structures and computing platforms that occur in solving large-scale simulation-driven optimization problems arising in science and engineering. Algorithms such as Krylov subspace methods (CG, LSQR, BiCGStab,...), quasi-Newton methods (L-BFGS, Trust Region Truncated Newton,...), matrix-free and active set SQP, IRLS, ISTC, FISTA, and so on can be coded once and used without alteration to solve a wide variety of control, design, and inverse problems, in Un*x computing environments ranging from laptops to high-performance massively parallel clusters.

This library is written entirely in ISO C++, and uses its abstraction facilities to achieve portability across applications and environments. While other means exist to accomplish these ends, C++ is universally available in HPC systems, provides object-oriented and generic programming models, and offers easy access to many existing high performance numerical and infrastructure libraries written in C and Fortran.

The current release uses the shared pointer class from C++11, so the compiler must support these.

Obtaining RVL:

See the TRIP software page for current download instructions and release notes.

Subpackage directory:

Installation

References

The design principles of RVL are explained in

A software framework for abstract expression of coordinate-free linear algebra and optimization algorithms, by A. D. Padula, Shannon D. Scott, and William W. Symes, ACM Transactions on Mathematical Software, 36 (2), pp. 8:1-8:36, 2009.

Tony Padula developed the Algorithm library as part of his doctoral work, which also included a study of interoperability amongst object-oriented numerical analysis packages and several applications of RVL: A. D. Padula, Software design for simulation-driven optimization, TR 05-11, CAAM, Rice University 2005.

The design of the time-stepping for optimization library was part of Marco Enriquez's PhD thesis, which also includes a discussion of adaptive timestepping in simulation-driven optimization, and application to optimizing well rates.

RVL supports all of TRIP's recent work on seismic reflection inversion, as described for example in From modelling to inversion: designing a well-adapted simulator, W. W. Symes, D. Sun, and M. Enriquez, Geophysical Prospecting, 59, pp. 813-833, 2011.

Credits

RVL grew out of the Hilbert Class Library project, whose main authors were Mark Gockenbach and William Symes. Earlier work by Jon Claerbout, Dave Nichols, Lester Dye, and others provided important inspirations for the design of HCL and later RVL. Shannon Scott, Tony Padula and William Symes created the first usable version of RVL in 2004-5. The package was subsequently refined and enhanced by Symes, Hala Dajani, Marco Enriquez, and Dong Sun. The TOMS paper describes in detail the relation between RVL and similar projects. Tony Padula invented the Algorithm package and described it in his PhD thesis. Padula also wrote the first version of the Umin package. Marco Enriquez and William Symes developed the Time-stepping for optimization package.

Development of RVL and related projects was made possible by grants from from the National Science Foundation, the Department of Energy, ExxonMobil Upstream Research Company, and by generous support from the sponsors of The Rice Inversion Project.


Maintained by William W. Symes
symes@caam.rice.edu
Photo courtesy Ivy Gonzalez
Last modified: Sun Nov 21 12:02:44 CST 2010