Skip to main content

Past and Future Perspectives on Scientific Software

  • Chapter
  • First Online:
Simula Research Laboratory

Abstract

How will scientific software be written in the future? This is a difficult question to answer but the development will be driven by the demands of the users and developers of scientific software. Since the beginning of scientific programming, these demands have been a constant quest for efficiency, generality, simplicity, and reliability.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. M. S. Alnæs and K.-A. Mardal. SyFi, 2009. http://www.fenics.org/wiki/SyFi/.

  2. M. S. Alnæs and K.-A. Mardal. Symbolic computations and code generation for finite element methods, 2009.

    Google Scholar 

  3. O.-J. Dahl and K. Nygaard. Simula—a language for programming and description of discrete event systems. introduction and user’s manual. NCC Publ., (11), 1965.

    Google Scholar 

  4. M. S. Alnæs and K.-A. Mardal. Symbolic computations and code generation for finite element methods. journal, 2008.

    Google Scholar 

  5. Numerical Python software package. http://sourceforge.net/projects/numpy.

  6. E. Jones, T. Oliphant, P. Peterson, et al. SciPy: Open source scientific tools for Python, 2001–.

    Google Scholar 

  7. FEniCS software collection. http://www.fenics.org.

  8. J. H. Ring, H. P. Langtangen, R. E. Bredesen, and I. Wilbers. SciTools software package. http://code.google.com/p/scitools.

  9. SWIG software package. http://www.swig.org.

  10. P. Peterson. F2PY software package. http://cens.ioc.ee/projects/f2py2e.

  11. Diffpack software package. http://www.diffpack.com.

  12. H. P. Langtangen. The FEMDEQS program system. Research report in mechanics, Mechanics Division, Department of Mathematics, University of Oslo, 1989.

    Google Scholar 

  13. J. Siek and A. Lumsdaine. A modern framework for portable high-performance numerical linear algebra. Advances in Software Tools for Scientific Computing. Springer, 1999.

    Google Scholar 

  14. T. L. Veldhuizen. Blitz++: The library that thinks it is a compiler. Advances in Software Tools for Scientific Computing. Springer, 1999.

    Google Scholar 

  15. T. L. Veldhuizen and M. E. Jernigan. Will C++ be faster than Fortran? Scientific Computing in Object-Oriented Parallel Environments, Lecture Notes in Computer Science, pages 49–56. Springer, 1997.

    Google Scholar 

  16. C. Pflaum and Z. Rahimi. Automatic parallelization of staggered grid codes with expression templates. International Journal of Computational Science and Engineering, 2009.

    Google Scholar 

  17. E. Arge, A. M. Bruaset, P. B. Calvin, J. F. Kanney, H. P. Langtangen, and C. T. Miller. On the efficiency of C++ in scientific computing. Mathematical Models and Software Tools in Industrial Mathematics, pages 91–118. Birkhäuser, 1997.

    Google Scholar 

  18. U. T. Mello and I. Khabibrakhmanov. On the reusability and numeric efficiency of C++ packages in scientific computing. Proceedings of the ClusterWorld Conference and Expo, 2003.

    Google Scholar 

  19. uBLAS software package. http://www.boost.org/libs/numeric/ublas/doc/.

  20. Trilinos software package. http://trilinos.sandia.gov/.

  21. Hypre software package. http://www.llnl.gov/CASC/hypre/.

  22. PETSc software package. http://www.anl.gov/petsc.

  23. Netlib repository of numerical software. http://www.netlib.org.

  24. X. Cai, H. P. Langtangen, and H. Moe. On the performance of the Python programming language for serial and parallel scientific computations. Scientific Programming, 13(1):31–56, 2005.

    Google Scholar 

  25. H. P. Langtangen and X. Cai. On the efficiency of Python for high-performance computing: A case study involving stencil updates for partial differential equations. Modeling, Simulation and Optimization of Complex Processes, pages 337–358. Springer, 2008.

    Google Scholar 

  26. M. S. Alnæs, A. Logg, K.-A. Mardal, O. Skavhaug, and H. P. Langtangen. Unified framework for finite element assembly. International Journal of Computational Science and Engineering, 2009.

    Google Scholar 

  27. A. Logg. Efficient representation of computational meshes. International Journal of Computational Science and Engineering, 2009.

    Google Scholar 

  28. X. Cai and H. P. Langtangen. Parallelizing PDE solvers using the Python programming language. Numerical Solution of Partial Differential Equations on Parallel Computers, volume 51 of Lecture Notes in Computational Science and Engineering, pages 295–325. Springer, 2006.

    Google Scholar 

  29. H. P. Langtangen. A case study in high-performance mixed-language programming. Applied Parallel Computing – State of the Art in Scientific Computing, Lecture Notes in Computer Science, pages 36–49. Springer, 2007.

    Google Scholar 

  30. C. C. Douglas and H. P. Langtangen. General methods for implementing reliable and correct software: C, C++ and Python. Accuracy and Reliability in Scientific Computing. SIAM, 2005.

    Google Scholar 

  31. B. Einarsson. General methods for implementing reliable and correct software: Fortran. Accuracy and Reliability in Scientific Computing. SIAM, 2005.

    Google Scholar 

  32. J. J. Barton and L. R. Nackman. Scientific and Engineering C++ – An Introduction with Advanced Techniques and Examples. Addison-Wesley, 1994.

    Google Scholar 

  33. Y. Shapira. Solving PDEs in C++: Numerical Methods in a Unified Object-Oriented Approach. Computational Science and Engineering. SIAM, 2006.

    Google Scholar 

  34. M. Metcalf. Effective Fortran 77. Oxford University Press, 1985.

    Google Scholar 

  35. M. Metcalf, J. K. Reid, and M. Cohen. Fortran 95/2003 Explained. Oxford University Press, 2004.

    Google Scholar 

  36. E. Gamma, R. Helm, R. Johnson, and J. M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.

    Google Scholar 

  37. H. P. Langtangen. Computational Partial Differential Equations - Numerical Methods and Diffpack Programming. Texts in Computational Science and Engineering, vol 1. Springer, 2nd edition, 2003. 855 p. http://www.diffpack.com.

  38. R. C. Kirby and A. Logg. Benchmarking domain-specific compiler optimizations for variational forms. To appear in ACM Transactions on Mathematical Software, (12), 2008.

    Google Scholar 

  39. A. Logg. Automating the finite element method. Arch. Comput. Methods Eng., 14(11):93–138, 2007.

    Article  MATH  MathSciNet  Google Scholar 

  40. R. C. Kirby and A. Logg. Efficient compilation of a class of variational forms. ACM Transactions on Mathematical Software, 33(10), 2007.

    Google Scholar 

  41. R. C. Kirby and A. Logg. A compiler for variational forms. ACM Transactions on Mathematical Software, 32(9):417–444, 2006.

    Article  MathSciNet  Google Scholar 

  42. R. C. Kirby, A. Logg, L. R. Scott, and A. R. Terrel. Topological optimization of the evaluation of finite element matrices. SIAM J. Sci. Comput., 28(8):224–240, 2006.

    Article  MATH  MathSciNet  Google Scholar 

  43. R. C. Kirby, M. G. Knepley, A. Logg, and L. R. Scott. Optimizing the evaluation of finite element matrices. SIAM J. Sci. Comput., 27(6):741–758, 2005.

    Article  MATH  MathSciNet  Google Scholar 

  44. A. Logg. Automation of Computational Mathematical Modeling. PhD thesis, Chalmers University of Technology, Sweden, 2004.

    Google Scholar 

  45. A. Logg et al. FFC. URL: http://www.fenics.org/ffc/.

  46. A. Logg, G. N. Wells, et al. DOLFIN. URL: http://www.fenics.org/dolfin/.

  47. M. G. Knepley and D. A. Karpeev. Mesh algorithms for PDE with Sieve I: Mesh distribution. Technical Report ANL/MCS-P1455-0907, Argonne National Laboratory, February 2007. Submitted to Scientific Programming.

    Google Scholar 

  48. R. C. Kirby. FIAT: A new paradigm for computing finite element basis functions. ACM Trans. Math. Software, 30:502–516, 2004.

    Article  MATH  MathSciNet  Google Scholar 

  49. R. C. Kirby. Optimizing FIAT with Level 3 BLAS. ACM Transactions on Mathematical Software, 32(2):223–235, June 2006.

    Article  MathSciNet  Google Scholar 

  50. X. Cai, E. Acklam, H. P. Langtangen, and A. Tveito. Parallel computing. Advanced Topics in Computational Partial Differential Equations – Numerical Methods and Diffpack Programming, Lecture Notes in Computational Science and Engineering, pages 1–56. Springer, 2003.

    Google Scholar 

  51. A. M. Bruaset, X. Cai, H. P. Langtangen, and A. Tveito. Numerical solution of PDEs on parallel computers utilizing sequential simulators. Scientific Computing in Object-Oriented Parallel Environments, Lecture Notes in Computer Science, pages 161–168. Springer, 1997.

    Google Scholar 

  52. X. Cai. Domain decomposition. Advanced Topics in Computational Partial Differential Equations – Numerical Methods and Diffpack Programming. Springer, 2003.

    Google Scholar 

  53. A. M. Bruaset, H. P. Langtangen, and G. W. Zumbusch. Domain decomposition and multilevel methods in Diffpack. Proceedings of the 9th Conference on Domain Decomposition. Wiley, 1997.

    Google Scholar 

  54. K.-A. Mardal, G. W. Zumbusch, and H. P. Langtangen. Software tools for multigrid methods. Advanced Topics in Computational Partial Differential Equations – Numerical Methods and Diffpack Programming, Lecture Notes in Computational Science and Engineering, pages 97–152. Springer, 2003.

    Google Scholar 

  55. K.-A. Mardal and H. P. Langtangen. Mixed finite elements. Advanced Topics in Computational Partial Differential Equations – Numerical Methods and Diffpack Programming, Lecture Notes in Computational Science and Engineering, pages 153–198. Springer, 2003.

    Google Scholar 

  56. H. P. Langtangen and H. Osnes. Stochastic partial differential equations. Advanced Topics in Computational Partial Differential Equations – Numerical Methods and Diffpack Programming, Lecture Notes in Computational Science and Engineering, pages 257–320. Springer, 2003.

    Google Scholar 

  57. G. Wilson. The history of the development of parallel computing, 1994.

    Google Scholar 

  58. M. Wolfe. Compilers and more: Parallel programming made easy?, 2008.

    Google Scholar 

  59. Top500 supercomputing sites. http://www.top500.org, November 2008.

  60. W. Gropp, E. Lusk, and A. Skjellum. Using MPI – Portable Parallel Programming with the Message-Passing Interface. The MIT Press, 2nd edition, 1999.

    Google Scholar 

  61. B. Chapman, G. Jost, and R. van der Pas. Using OpenMP: Portable Shared Memory Parallel Programming. The MIT Press, 2007.

    Google Scholar 

  62. J. Shalf. The new landscape of parallel computer architecture. Journal of Physics: Conference Series, 78:012066, 2007.

    Article  Google Scholar 

  63. K. Asanovic, R. Bodik, B. C. Catanzaro, J. J. Gebis, P. Husbands, K. Keutzer, D. A. Patterson, W. L. Plishker, J. Shalf, S. W. Williams, and K. A. Yelick. The landscape of parallel computing research: A view from Berkeley. Technical Report UCB/EECS-2006-183, EECS Department, University of California, Berkeley, 2006.

    Google Scholar 

  64. A. Buttari, J. Dongarra, J. Kurzak, J. Langou, P. Luszczek, and S. Tomov. The impact of multicore on math software. Proceedings of PARA 2006, volume 4699 of Lecture Notes in Computer Science, pages 1–10. Springer Verlag, 2007.

    Google Scholar 

  65. J. Psota and A. Agarwal. rMPI: message passing on multicore processors with on-chip connection. Proceedings of HiPEAC 2008, volume 4917 of Lecture Notes in Computer Science, pages 22–37. Springer Verlag, 2008.

    Google Scholar 

  66. M. Nordén, H. Löf, J. Rantakokko, and S. Holmgren. Dynamic data migration for structured AMR solvers. International Journal of Parallel Programming, 35(5):477–491, 2007.

    Article  MATH  Google Scholar 

  67. L. Chai, Q. Gao, and D. K. Panda. Understanding the impact of multi-core architecture in cluster computing: A case study with Intel dual-core system. Proceedings of Seventh IEEE International Symposium on Cluster Computing and the Grid. 2007.

    Google Scholar 

  68. B. F. Smith, P. E. Bjørstad, and W. Gropp. Domain Decomposition: Parallel Multilevel Methods for Elliptic Partial Differential Equations. Cambridge University Press, 1996.

    Google Scholar 

  69. J. K. Nilsen, X. Cai, B. Høyland, and H. P. Langtangen. Simplifying parallelization of scientific codes by a function-centric approach in Python. In preparation, 2008.

    Google Scholar 

  70. X. Cai and H. P. Langtangen. Developing parallel object-oriented simulation codes in Diffpack. Proceedings of the Fifth World Congress on Computational Mechanics, Vienna University of Technology, 2002.

    Google Scholar 

  71. M. D. Linderman, J. D. Collins, H. Wang, and T. H. Meng. Merge: a programming model for heterogeneous multi-core systems. Proceedings of ASPLOS’08, pages 287–296. ACM, 2008.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Logg, A., Langtangen, H.P., Cai, X. (2010). Past and Future Perspectives on Scientific Software. In: Tveito, A., Bruaset, A., Lysne, O. (eds) Simula Research Laboratory. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-01156-6_23

Download citation

Publish with us

Policies and ethics