Skip to main content

Lazy K-Way Linear Combination Kernels for Efficient Runtime Sparse Jacobian Matrix Evaluations in C++

  • Conference paper
  • First Online:
Recent Advances in Algorithmic Differentiation

Part of the book series: Lecture Notes in Computational Science and Engineering ((LNCSE,volume 87))

Abstract

The most notoriously expensive component to develop, extend, and maintain within implicit PDAE-based predictive simulation software is the Jacobian evaluation component. While the Jacobian is invariably sparse, its structure and dimensionality are functions of the point of evaluation. The application of Automatic Differentiation to develop these tools is highly desirable. The challenge presented is in providing implementations that treat dynamic sparsity efficiently without requiring the developer to have any a priori knowledge of sparsity structure. Under the context of dynamic sparse Operator Overloading implementations, we develop a direct sparse lazy evaluation approach. In this approach, an efficient runtime variant of the classic Expression Templates technique is proposed to support sparsity. The second aspect is the development of two alternate multi-way Sparse Vector Linear Combination kernels that yield efficient runtime sparsity detection and evaluation.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 109.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Aubert, P., Di Césaré, N., Pironneau, O.: Automatic differentiation in C++ using expression templates and application to a flow control problem. Computing and Visualization in Science 3, 197–208 (2001)

    Google Scholar 

  2. Aziz, K., Settari, A.: Petroleum Reservoir Simulation. Elsevier Applied Science (1979)

    Google Scholar 

  3. Bischof, C.H., Carle, A., Corliss, G.F., Griewank, A., Hovland, P.D.: ADIFOR: Generating derivative codes from Fortran programs. Scientific Programming 1(1), 11–29 (1992)

    Google Scholar 

  4. Bischof, C.H., Khademi, P.M., Bouaricha, A., Carle, A.: Efficient computation of gradients and Jacobians by dynamic exploitation of sparsity in automatic differentiation. Optimization Methods and Software 7, 1–39 (1997)

    Google Scholar 

  5. Bischof, C.H., Roh, L., Mauer, A.: ADIC — An extensible automatic differentiation tool for ANSI-C. Software–Practice and Experience 27(12), 1427–1456 (1997). DOI 10.1002/(SICI)1097-024X(199712)27:12⟨1427::AID-SPE138⟩3.0. CO;2-Q. URL http://www-fp.mcs.anl.gov/division/software

  6. Bulka, D., Mayhew, D.: Efficient C++: performance programming techniques. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA (2000)

    Google Scholar 

  7. Fischer, H.: Special problems in automatic differentiation. In: A. Griewank, G.F. Corliss (eds.) Automatic Differentiation of Algorithms: Theory, Implementation, and Application, pp. 43–50. SIAM, Philadelphia, PA (1991)

    Google Scholar 

  8. Gebremedhin, A.H., Manne, F., Pothen, A.: What color is your Jacobian? graph coloring for computing derivatives. SIAM Review 47(4), 629–705 (2005). DOI 10.1137/S0036144504444711. URL http://link.aip.org/link/?SIR/47/629/1

  9. Griewank, A.: On automatic differentiation. In: M. Iri, K. Tanabe (eds.) Mathematical Programming, pp. 83–108. Kluwer Academic Publishers, Dordrecht (1989)

    Google Scholar 

  10. Karmesin, S., Crotinger, J., Cummings, J., Haney, S., Humphrey, W.J., Reynders, J., Smith, S., Williams, T.: Array design and expression evaluation in POOMA II. In: Proceedings of the Second International Symposium on Computing in Object-Oriented Parallel Environments, ISCOPE ’98, pp. 231–238. Springer-Verlag, London, UK (1998)

    Google Scholar 

  11. Kirby, R.C.: A new look at expression templates for matrix computation. Computing in Science Engineering 5(3), 66–70 (2003)

    Google Scholar 

  12. Lee, B., Vuduc, R., Demmel, J., Yelick, K.: Performance models for evaluation and automatic tuning of symmetric sparse matrix-vector multiply. In: Parallel Processing, 2004. ICPP 2004. International Conference on, pp. 169–176 vol.1 (2004)

    Google Scholar 

  13. Narayanan, S.H.K., Norris, B., Hovland, P., Nguyen, D.C., Gebremedhin, A.H.: Sparse jacobian computation using ADIC2 and ColPack. Procedia Computer Science 4, 2115–2123 (2011). DOI 10.1016/ j.procs.2011.04.231. URL http://www.sciencedirect.com/science/article/pii/S1877050911002894. Proceedings of the International Conference on Computational Science, ICCS 2011

  14. Phipps, E.T., Bartlett, R.A., Gay, D.M., Hoekstra, R.J.: Large-scale transient sensitivity analysis of a radiation-damaged bipolar junction transistor via automatic differentiation. In: C.H. Bischof, H.M. Bücker, P.D. Hovland, U. Naumann, J. Utke (eds.) Advances in Automatic Differentiation, Lecture Notes in Computational Science and Engineering, vol. 64, pp. 351–362. Springer, Berlin (2008). DOI 10.1007/ 978-3-540-68942-3{ _}31

    Google Scholar 

  15. Rall, L.B.: Perspectives on automatic differentiation: Past, present, and future? In: H.M. Bücker, G. Corliss, P. Hovland, U. Naumann, B. Norris (eds.) Automatic Differentiation: Applications, Theory, and Implementations, Lecture Notes in Computational Science and Engineering, vol. 50, pp. 1–14. Springer, New York, NY (2005). DOI 10. 1007/3-540-28438-9{ _}1

    Google Scholar 

  16. Younis, R.M.: Modern advances in software and solution algorithms for reservoir simulation. Ph.D. thesis, Stanford University (2002)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Rami M. Younis .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Younis, R.M., Tchelepi, H.A. (2012). Lazy K-Way Linear Combination Kernels for Efficient Runtime Sparse Jacobian Matrix Evaluations in C++. In: Forth, S., Hovland, P., Phipps, E., Utke, J., Walther, A. (eds) Recent Advances in Algorithmic Differentiation. Lecture Notes in Computational Science and Engineering, vol 87. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-30023-3_30

Download citation

Publish with us

Policies and ethics