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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
M. S. Alnæs and K.-A. Mardal. SyFi, 2009. http://www.fenics.org/wiki/SyFi/.
M. S. Alnæs and K.-A. Mardal. Symbolic computations and code generation for finite element methods, 2009.
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.
M. S. Alnæs and K.-A. Mardal. Symbolic computations and code generation for finite element methods. journal, 2008.
Numerical Python software package. http://sourceforge.net/projects/numpy.
E. Jones, T. Oliphant, P. Peterson, et al. SciPy: Open source scientific tools for Python, 2001–.
FEniCS software collection. http://www.fenics.org.
J. H. Ring, H. P. Langtangen, R. E. Bredesen, and I. Wilbers. SciTools software package. http://code.google.com/p/scitools.
SWIG software package. http://www.swig.org.
P. Peterson. F2PY software package. http://cens.ioc.ee/projects/f2py2e.
Diffpack software package. http://www.diffpack.com.
H. P. Langtangen. The FEMDEQS program system. Research report in mechanics, Mechanics Division, Department of Mathematics, University of Oslo, 1989.
J. Siek and A. Lumsdaine. A modern framework for portable high-performance numerical linear algebra. Advances in Software Tools for Scientific Computing. Springer, 1999.
T. L. Veldhuizen. Blitz++: The library that thinks it is a compiler. Advances in Software Tools for Scientific Computing. Springer, 1999.
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.
C. Pflaum and Z. Rahimi. Automatic parallelization of staggered grid codes with expression templates. International Journal of Computational Science and Engineering, 2009.
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.
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.
uBLAS software package. http://www.boost.org/libs/numeric/ublas/doc/.
Trilinos software package. http://trilinos.sandia.gov/.
Hypre software package. http://www.llnl.gov/CASC/hypre/.
PETSc software package. http://www.anl.gov/petsc.
Netlib repository of numerical software. http://www.netlib.org.
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.
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.
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.
A. Logg. Efficient representation of computational meshes. International Journal of Computational Science and Engineering, 2009.
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.
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.
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.
B. Einarsson. General methods for implementing reliable and correct software: Fortran. Accuracy and Reliability in Scientific Computing. SIAM, 2005.
J. J. Barton and L. R. Nackman. Scientific and Engineering C++ – An Introduction with Advanced Techniques and Examples. Addison-Wesley, 1994.
Y. Shapira. Solving PDEs in C++: Numerical Methods in a Unified Object-Oriented Approach. Computational Science and Engineering. SIAM, 2006.
M. Metcalf. Effective Fortran 77. Oxford University Press, 1985.
M. Metcalf, J. K. Reid, and M. Cohen. Fortran 95/2003 Explained. Oxford University Press, 2004.
E. Gamma, R. Helm, R. Johnson, and J. M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994.
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.
R. C. Kirby and A. Logg. Benchmarking domain-specific compiler optimizations for variational forms. To appear in ACM Transactions on Mathematical Software, (12), 2008.
A. Logg. Automating the finite element method. Arch. Comput. Methods Eng., 14(11):93–138, 2007.
R. C. Kirby and A. Logg. Efficient compilation of a class of variational forms. ACM Transactions on Mathematical Software, 33(10), 2007.
R. C. Kirby and A. Logg. A compiler for variational forms. ACM Transactions on Mathematical Software, 32(9):417–444, 2006.
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.
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.
A. Logg. Automation of Computational Mathematical Modeling. PhD thesis, Chalmers University of Technology, Sweden, 2004.
A. Logg et al. FFC. URL: http://www.fenics.org/ffc/.
A. Logg, G. N. Wells, et al. DOLFIN. URL: http://www.fenics.org/dolfin/.
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.
R. C. Kirby. FIAT: A new paradigm for computing finite element basis functions. ACM Trans. Math. Software, 30:502–516, 2004.
R. C. Kirby. Optimizing FIAT with Level 3 BLAS. ACM Transactions on Mathematical Software, 32(2):223–235, June 2006.
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.
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.
X. Cai. Domain decomposition. Advanced Topics in Computational Partial Differential Equations – Numerical Methods and Diffpack Programming. Springer, 2003.
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.
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.
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.
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.
G. Wilson. The history of the development of parallel computing, 1994.
M. Wolfe. Compilers and more: Parallel programming made easy?, 2008.
Top500 supercomputing sites. http://www.top500.org, November 2008.
W. Gropp, E. Lusk, and A. Skjellum. Using MPI – Portable Parallel Programming with the Message-Passing Interface. The MIT Press, 2nd edition, 1999.
B. Chapman, G. Jost, and R. van der Pas. Using OpenMP: Portable Shared Memory Parallel Programming. The MIT Press, 2007.
J. Shalf. The new landscape of parallel computer architecture. Journal of Physics: Conference Series, 78:012066, 2007.
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.
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.
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.
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.
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.
B. F. Smith, P. E. Bjørstad, and W. Gropp. Domain Decomposition: Parallel Multilevel Methods for Elliptic Partial Differential Equations. Cambridge University Press, 1996.
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.
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.
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.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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
DOI: https://doi.org/10.1007/978-3-642-01156-6_23
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-01155-9
Online ISBN: 978-3-642-01156-6
eBook Packages: Mathematics and StatisticsMathematics and Statistics (R0)