{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,3,27]],"date-time":"2025-03-27T20:22:47Z","timestamp":1743106967477,"version":"3.40.3"},"publisher-location":"Berlin, Heidelberg","reference-count":71,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783642011559"},{"type":"electronic","value":"9783642011566"}],"license":[{"start":{"date-parts":[[2009,10,22]],"date-time":"2009-10-22T00:00:00Z","timestamp":1256169600000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"},{"start":{"date-parts":[[2009,10,22]],"date-time":"2009-10-22T00:00:00Z","timestamp":1256169600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.springernature.com\/gp\/researchers\/text-and-data-mining"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2010]]},"DOI":"10.1007\/978-3-642-01156-6_23","type":"book-chapter","created":{"date-parts":[[2009,10,21]],"date-time":"2009-10-21T16:33:44Z","timestamp":1256142824000},"page":"321-362","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["Past and Future Perspectives on Scientific Software"],"prefix":"10.1007","author":[{"given":"Anders","family":"Logg","sequence":"first","affiliation":[]},{"given":"Hans Petter","family":"Langtangen","sequence":"additional","affiliation":[]},{"given":"Xing","family":"Cai","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2009,10,22]]},"reference":[{"key":"23_CR1","unstructured":"M.\u00a0S. Aln\u00e6s and K.-A. Mardal. SyFi, 2009. http:\/\/www.fenics.org\/wiki\/SyFi\/."},{"key":"23_CR2","doi-asserted-by":"crossref","unstructured":"M.\u00a0S. Aln\u00e6s and K.-A. Mardal. Symbolic computations and code generation for finite element methods, 2009.","DOI":"10.1145\/1644001.1644007"},{"key":"23_CR3","unstructured":"O.-J. Dahl and K. Nygaard. Simula\u2014a language for programming and description of discrete event systems. introduction and user\u2019s manual. NCC Publ., (11), 1965."},{"key":"23_CR4","unstructured":"M.\u00a0S. Aln\u00e6s and K.-A. Mardal. Symbolic computations and code generation for finite element methods. journal, 2008."},{"key":"23_CR5","unstructured":"Numerical Python software package. http:\/\/sourceforge.net\/projects\/numpy."},{"key":"23_CR6","unstructured":"E. Jones, T. Oliphant, P. Peterson, et al. SciPy: Open source scientific tools for Python, 2001\u2013."},{"key":"23_CR7","unstructured":"FEniCS software collection. http:\/\/www.fenics.org."},{"key":"23_CR8","unstructured":"J.\u00a0H. Ring, H.\u00a0P. Langtangen, R.\u00a0E. Bredesen, and I. Wilbers. SciTools software package. http:\/\/code.google.com\/p\/scitools."},{"key":"23_CR9","unstructured":"SWIG software package. http:\/\/www.swig.org."},{"key":"23_CR10","unstructured":"P. Peterson. F2PY software package. http:\/\/cens.ioc.ee\/projects\/f2py2e."},{"key":"23_CR11","unstructured":"Diffpack software package. http:\/\/www.diffpack.com."},{"key":"23_CR12","unstructured":"H.\u00a0P. Langtangen. The FEMDEQS program system. Research report in mechanics, Mechanics Division, Department of Mathematics, University of Oslo, 1989."},{"key":"23_CR13","doi-asserted-by":"crossref","unstructured":"J. Siek and A. Lumsdaine. A modern framework for portable high-performance numerical linear algebra. Advances in Software Tools for Scientific Computing. Springer, 1999.","DOI":"10.1007\/978-3-642-57172-5_1"},{"key":"23_CR14","doi-asserted-by":"crossref","unstructured":"T.\u00a0L. Veldhuizen. Blitz++: The library that thinks it is a compiler. Advances in Software Tools for Scientific Computing. Springer, 1999.","DOI":"10.1007\/978-3-642-57172-5_2"},{"key":"23_CR15","doi-asserted-by":"crossref","unstructured":"T.\u00a0L. Veldhuizen and M.\u00a0E. Jernigan. Will C++ be faster than Fortran? Scientific Computing in Object-Oriented Parallel Environments, Lecture Notes in Computer Science, pages 49\u201356. Springer, 1997.","DOI":"10.1007\/3-540-63827-X_43"},{"key":"23_CR16","doi-asserted-by":"crossref","unstructured":"C. Pflaum and Z. Rahimi. Automatic parallelization of staggered grid codes with expression templates. International Journal of Computational Science and Engineering, 2009.","DOI":"10.1504\/IJCSE.2009.029166"},{"key":"23_CR17","doi-asserted-by":"crossref","unstructured":"E. Arge, A.\u00a0M. Bruaset, P.\u00a0B. Calvin, J.\u00a0F. Kanney, H.\u00a0P. Langtangen, and C.\u00a0T. Miller. On the efficiency of C++ in scientific computing. Mathematical Models and Software Tools in Industrial Mathematics, pages 91\u2013118. Birkh\u00e4user, 1997.","DOI":"10.1007\/978-1-4612-1984-2_5"},{"key":"23_CR18","unstructured":"U.\u00a0T. Mello and I. Khabibrakhmanov. On the reusability and numeric efficiency of C++ packages in scientific computing. Proceedings of the ClusterWorld Conference and Expo, 2003."},{"key":"23_CR19","unstructured":"uBLAS software package. http:\/\/www.boost.org\/libs\/numeric\/ublas\/doc\/."},{"key":"23_CR20","unstructured":"Trilinos software package. http:\/\/trilinos.sandia.gov\/."},{"key":"23_CR21","unstructured":"Hypre software package. http:\/\/www.llnl.gov\/CASC\/hypre\/."},{"key":"23_CR22","unstructured":"PETSc software package. http:\/\/www.anl.gov\/petsc."},{"key":"23_CR23","unstructured":"Netlib repository of numerical software. http:\/\/www.netlib.org."},{"issue":"1","key":"23_CR24","doi-asserted-by":"crossref","first-page":"31","DOI":"10.1155\/2005\/619804","volume":"13","author":"X. Cai","year":"2005","unstructured":"X. Cai, H.\u00a0P. Langtangen, and H. Moe. On the performance of the Python programming language for serial and parallel scientific computations. Scientific Programming, 13(1):31\u201356, 2005.","journal-title":"Scientific Programming"},{"key":"23_CR25","doi-asserted-by":"crossref","unstructured":"H.\u00a0P. 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\u2013358. Springer, 2008.","DOI":"10.1007\/978-3-540-79409-7_23"},{"key":"23_CR26","doi-asserted-by":"crossref","unstructured":"M.\u00a0S. Aln\u00e6s, A. Logg, K.-A. Mardal, O. Skavhaug, and H.\u00a0P. Langtangen. Unified framework for finite element assembly. International Journal of Computational Science and Engineering, 2009.","DOI":"10.1504\/IJCSE.2009.029160"},{"key":"23_CR27","doi-asserted-by":"crossref","unstructured":"A. Logg. Efficient representation of computational meshes. International Journal\u00a0of Computational Science and Engineering, 2009.","DOI":"10.1504\/IJCSE.2009.029164"},{"key":"23_CR28","doi-asserted-by":"crossref","unstructured":"X. Cai and H.\u00a0P. 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\u2013325. Springer, 2006.","DOI":"10.1007\/3-540-31619-1_9"},{"key":"23_CR29","doi-asserted-by":"crossref","unstructured":"H.\u00a0P. Langtangen. A case study in high-performance mixed-language programming. Applied Parallel Computing \u2013 State of the Art in Scientific Computing, Lecture Notes in Computer Science, pages 36\u201349. Springer, 2007.","DOI":"10.1007\/978-3-540-75755-9_4"},{"key":"23_CR30","unstructured":"C.\u00a0C. Douglas and H.\u00a0P. Langtangen. General methods for implementing reliable and correct software: C, C++ and Python. Accuracy and Reliability in Scientific Computing. SIAM, 2005."},{"key":"23_CR31","doi-asserted-by":"crossref","unstructured":"B. Einarsson. General methods for implementing reliable and correct software: Fortran. Accuracy and Reliability in Scientific Computing. SIAM, 2005.","DOI":"10.1137\/1.9780898718157.ch8"},{"key":"23_CR32","unstructured":"J.\u00a0J. Barton and L.\u00a0R. Nackman. Scientific and Engineering C++ \u2013 An Introduction with Advanced Techniques and Examples. Addison-Wesley, 1994."},{"key":"23_CR33","unstructured":"Y. Shapira. Solving PDEs in C++: Numerical Methods in a Unified Object-Oriented Approach. Computational Science and Engineering. SIAM, 2006."},{"key":"23_CR34","unstructured":"M. Metcalf. Effective Fortran 77. Oxford University Press, 1985."},{"key":"23_CR35","doi-asserted-by":"crossref","unstructured":"M. Metcalf, J.\u00a0K. Reid, and M. Cohen. Fortran 95\/2003 Explained. Oxford University Press, 2004.","DOI":"10.1093\/oso\/9780198526926.001.0001"},{"key":"23_CR36","unstructured":"E. Gamma, R. Helm, R. Johnson, and J.\u00a0M. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994."},{"key":"23_CR37","doi-asserted-by":"crossref","unstructured":"H.\u00a0P. 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.","DOI":"10.1007\/978-3-642-55769-9"},{"key":"23_CR38","doi-asserted-by":"crossref","unstructured":"R.\u00a0C. Kirby and A. Logg. Benchmarking domain-specific compiler optimizations for variational forms. To appear in ACM Transactions on Mathematical Software, (12), 2008.","DOI":"10.1145\/1377612.1377614"},{"issue":"11","key":"23_CR39","doi-asserted-by":"publisher","first-page":"93","DOI":"10.1007\/s11831-007-9003-9","volume":"14","author":"A. Logg","year":"2007","unstructured":"A. Logg. Automating the finite element method. Arch. Comput. Methods Eng., 14(11):93\u2013138, 2007.","journal-title":"Arch. Comput. Methods Eng."},{"key":"23_CR40","doi-asserted-by":"crossref","unstructured":"R.\u00a0C. Kirby and A. Logg. Efficient compilation of a class of variational forms. ACM Transactions on Mathematical Software, 33(10), 2007.","DOI":"10.1145\/1268769.1268771"},{"issue":"9","key":"23_CR41","doi-asserted-by":"publisher","first-page":"417","DOI":"10.1145\/1163641.1163644","volume":"32","author":"R.\u00a0C. Kirby","year":"2006","unstructured":"R.\u00a0C. Kirby and A. Logg. A compiler for variational forms. ACM Transactions on Mathematical Software, 32(9):417\u2013444, 2006.","journal-title":"ACM Transactions on Mathematical Software"},{"issue":"8","key":"23_CR42","doi-asserted-by":"publisher","first-page":"224","DOI":"10.1137\/050635547","volume":"28","author":"R.\u00a0C. Kirby","year":"2006","unstructured":"R.\u00a0C. Kirby, A. Logg, L.\u00a0R. Scott, and A.\u00a0R. Terrel. Topological optimization of the evaluation of finite element matrices. SIAM J. Sci. Comput., 28(8):224\u2013240, 2006.","journal-title":"SIAM J. Sci. Comput."},{"issue":"6","key":"23_CR43","doi-asserted-by":"publisher","first-page":"741","DOI":"10.1137\/040607824","volume":"27","author":"R.\u00a0C. Kirby","year":"2005","unstructured":"R.\u00a0C. Kirby, M.\u00a0G. Knepley, A. Logg, and L.\u00a0R. Scott. Optimizing the evaluation of finite element matrices. SIAM J. Sci. Comput., 27(6):741\u2013758, 2005.","journal-title":"SIAM J. Sci. Comput."},{"key":"23_CR44","unstructured":"A. Logg. Automation of Computational Mathematical Modeling. PhD thesis, Chalmers University of Technology, Sweden, 2004."},{"key":"23_CR45","unstructured":"A. Logg et al. FFC. URL: http:\/\/www.fenics.org\/ffc\/."},{"key":"23_CR46","unstructured":"A. Logg, G.\u00a0N. Wells, et al. DOLFIN. URL: http:\/\/www.fenics.org\/dolfin\/."},{"key":"23_CR47","unstructured":"M.\u00a0G. Knepley and D.\u00a0A. 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."},{"key":"23_CR48","doi-asserted-by":"publisher","first-page":"502","DOI":"10.1145\/1039813.1039820","volume":"30","author":"R.\u00a0C. Kirby","year":"2004","unstructured":"R.\u00a0C. Kirby. FIAT: A new paradigm for computing finite element basis functions. ACM Trans. Math. Software, 30:502\u2013516, 2004.","journal-title":"ACM Trans. Math. Software"},{"issue":"2","key":"23_CR49","doi-asserted-by":"publisher","first-page":"223","DOI":"10.1145\/1141885.1141889","volume":"32","author":"R.\u00a0C. Kirby","year":"2006","unstructured":"R.\u00a0C. Kirby. Optimizing FIAT with Level 3 BLAS. ACM Transactions on Mathematical Software, 32(2):223\u2013235, June 2006.","journal-title":"ACM Transactions on Mathematical Software"},{"key":"23_CR50","doi-asserted-by":"crossref","unstructured":"X. Cai, E. Acklam, H.\u00a0P. Langtangen, and A. Tveito. Parallel computing. Advanced Topics in Computational Partial Differential Equations \u2013 Numerical Methods and Diffpack Programming, Lecture Notes in Computational Science and Engineering, pages 1\u201356. Springer, 2003.","DOI":"10.1007\/978-3-642-18237-2_1"},{"key":"23_CR51","doi-asserted-by":"crossref","unstructured":"A.\u00a0M. Bruaset, X. Cai, H.\u00a0P. 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\u2013168. Springer, 1997.","DOI":"10.1007\/3-540-63827-X_57"},{"key":"23_CR52","unstructured":"X. Cai. Domain decomposition. Advanced Topics in Computational Partial Differential Equations \u2013 Numerical Methods and Diffpack Programming. Springer, 2003."},{"key":"23_CR53","unstructured":"A.\u00a0M. Bruaset, H.\u00a0P. Langtangen, and G.\u00a0W. Zumbusch. Domain decomposition and multilevel methods in Diffpack. Proceedings of the 9th Conference on Domain Decomposition. Wiley, 1997."},{"key":"23_CR54","doi-asserted-by":"crossref","unstructured":"K.-A. Mardal, G.\u00a0W. Zumbusch, and H.\u00a0P. Langtangen. Software tools for multigrid methods. Advanced Topics in Computational Partial Differential Equations \u2013 Numerical Methods and Diffpack Programming, Lecture Notes in Computational Science and Engineering, pages 97\u2013152. Springer, 2003.","DOI":"10.1007\/978-3-642-18237-2_3"},{"key":"23_CR55","doi-asserted-by":"crossref","unstructured":"K.-A. Mardal and H.\u00a0P. Langtangen. Mixed finite elements. Advanced Topics in Computational Partial Differential Equations \u2013 Numerical Methods and Diffpack Programming, Lecture Notes in Computational Science and Engineering, pages 153\u2013198. Springer, 2003.","DOI":"10.1007\/978-3-642-18237-2_4"},{"key":"23_CR56","doi-asserted-by":"crossref","unstructured":"H.\u00a0P. Langtangen and H. Osnes. Stochastic partial differential equations. Advanced Topics in Computational Partial Differential Equations \u2013 Numerical Methods and Diffpack Programming, Lecture Notes in Computational Science and Engineering, pages 257\u2013320. Springer, 2003.","DOI":"10.1007\/978-3-642-18237-2_7"},{"key":"23_CR57","unstructured":"G. Wilson. The history of the development of parallel computing, 1994."},{"key":"23_CR58","unstructured":"M. Wolfe. Compilers and more: Parallel programming made easy?, 2008."},{"key":"23_CR59","unstructured":"Top500 supercomputing sites. http:\/\/www.top500.org, November 2008."},{"key":"23_CR60","doi-asserted-by":"crossref","unstructured":"W. Gropp, E. Lusk, and A. Skjellum. Using MPI \u2013 Portable Parallel Programming with the Message-Passing Interface. The MIT Press, 2nd edition, 1999.","DOI":"10.7551\/mitpress\/7056.001.0001"},{"key":"23_CR61","unstructured":"B. Chapman, G. Jost, and R. van der Pas. Using OpenMP: Portable Shared Memory Parallel Programming. The MIT Press, 2007."},{"key":"23_CR62","doi-asserted-by":"publisher","first-page":"012066","DOI":"10.1088\/1742-6596\/78\/1\/012066","volume":"78","author":"J. Shalf","year":"2007","unstructured":"J. Shalf. The new landscape of parallel computer architecture. Journal of Physics: Conference Series, 78:012066, 2007.","journal-title":"Journal of Physics: Conference Series"},{"key":"23_CR63","unstructured":"K. Asanovic, R. Bodik, B.\u00a0C. Catanzaro, J.\u00a0J. Gebis, P. Husbands, K. Keutzer, D.\u00a0A. Patterson, W.\u00a0L. Plishker, J. Shalf, S.\u00a0W. Williams, and K.\u00a0A. Yelick. The landscape of parallel computing research: A view from Berkeley. Technical Report UCB\/EECS-2006-183, EECS Department, University of California, Berkeley, 2006."},{"key":"23_CR64","doi-asserted-by":"crossref","unstructured":"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\u201310. Springer Verlag, 2007.","DOI":"10.1007\/978-3-540-75755-9_1"},{"key":"23_CR65","doi-asserted-by":"crossref","unstructured":"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\u201337. Springer Verlag, 2008.","DOI":"10.1007\/978-3-540-77560-7_3"},{"issue":"5","key":"23_CR66","doi-asserted-by":"publisher","first-page":"477","DOI":"10.1007\/s10766-007-0056-z","volume":"35","author":"M. Nord\u00e9n","year":"2007","unstructured":"M. Nord\u00e9n, H. L\u00f6f, J. Rantakokko, and S. Holmgren. Dynamic data migration for structured AMR solvers. International Journal of Parallel Programming, 35(5):477\u2013491, 2007.","journal-title":"International Journal of Parallel Programming"},{"key":"23_CR67","doi-asserted-by":"crossref","unstructured":"L. Chai, Q. Gao, and D.\u00a0K. 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.","DOI":"10.1109\/CCGRID.2007.119"},{"key":"23_CR68","unstructured":"B.\u00a0F. Smith, P.\u00a0E. Bj\u00f8rstad, and W. Gropp. Domain Decomposition: Parallel Multilevel Methods for Elliptic Partial Differential Equations. Cambridge University Press, 1996."},{"key":"23_CR69","unstructured":"J.\u00a0K. Nilsen, X. Cai, B. H\u00f8yland, and H.\u00a0P. Langtangen. Simplifying parallelization of scientific codes by a function-centric approach in Python. In preparation, 2008."},{"key":"23_CR70","unstructured":"X. Cai and H.\u00a0P. Langtangen. Developing parallel object-oriented simulation codes in Diffpack. Proceedings of the Fifth World Congress on Computational Mechanics, Vienna University of Technology, 2002."},{"key":"23_CR71","doi-asserted-by":"crossref","unstructured":"M.\u00a0D. Linderman, J.\u00a0D. Collins, H. Wang, and T.\u00a0H. Meng. Merge: a programming model for heterogeneous multi-core systems. Proceedings of ASPLOS\u201908, pages 287\u2013296. ACM, 2008.","DOI":"10.1145\/1353536.1346318"}],"container-title":["Simula Research Laboratory"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-642-01156-6_23","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2024,3,17]],"date-time":"2024-03-17T07:08:07Z","timestamp":1710659287000},"score":1,"resource":{"primary":{"URL":"https:\/\/link.springer.com\/10.1007\/978-3-642-01156-6_23"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009,10,22]]},"ISBN":["9783642011559","9783642011566"],"references-count":71,"URL":"https:\/\/doi.org\/10.1007\/978-3-642-01156-6_23","relation":{},"subject":[],"published":{"date-parts":[[2009,10,22]]},"assertion":[{"value":"22 October 2009","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}}]}}