Typical production runs from a large-scale computational project can produce TeraBytes or more of data. Analysis of the computational results is not only essential but can also be challenging.
The whole purpose of the computational system of computers, codes and results analysis is to provide information for the basis of decisions for scientific discovery, engineering design, prediction of operational conditions, etc. Often this is an iterative process. Analysis of the initial results will suggest several conclusions. Further production runs, and possibly further code development, will be needed to confirm those conclusions and suggest modifications. Finally, the decisions and the basis of the decisions need to be documented.
On the basis of many case studies of successful and unsuccessful Computational Science and Engineering Projects we have identified the steps that such projects follow from initial concept to final conclusions and decisions based on the results of the project. While none of the projects explicitly followed all these steps in an orderly fashion, the successful ones followed these steps either explicitly or implicitly. Key points emerged from the case studies.
- The level of resources involved in computational science and engineering is becoming large, and the potential impact of the decisions is large. A higher degree of organization and formality is, therefore, inevitable, both for the technical success of the projects and for ensuring that the decisions reached as a result of the projects are correct and accepted by all the stakeholders, especially the sponsors.
- Development of large scale projects is a highly iterative enterprise and almost always involve an element of research. While the project must be organized and run like a project, highly prescriptive formal designs and processes in the usual Information Technology sense and rigid software management processes are not practical.
- Development and application of large scale computational science and engineering projects is challenging. Existing development and application support tools are relatively immature compared to the scale of the challenge. Thus there are many opportunities for software and hardware vendors to develop support tools that can reduce the challenge and facilitate code development and production.
2Christensen, M. J., Thayer, R. H. The Project Manager's Guide to Software Engineering's Best Practices. IEEE Computer Society, Los Alamitos, CA, 2001.
3NASA - www.mscsoftware.com/products/nastran.cfm
4Post, D. E., Kendall, R. P., Lucas, R. F., In Advances in Computers, edited by M. V. Zelkowitz. Elsevier, Amsterdam, 2006. Vol. 66, pp. 239; Kweku Ewusi-Mensah, Software Development Failures: Anatomy of Abandoned Projects. MIT Press, Cambridge, Massachusetts, 2003.
5Yourdon, E. Death March. Prentice Hall PTR, Upper Saddle River, NJ, 1997.
6DeMarco, T. The Deadline. Dorset House Publishing, New York, New York, 1997; Rob Thomsett, Radical Project Management. Prentice Hall, Upper Saddle River, NJ, 2002.
7Thompson, J. F., Soni, B. K., Weatherill, N. P. Handbook of Grid Generation. CRC Press, Baca Raton, 1998.
8Oberkampf, W., Trucano, T. Progress in Aerospace Studies, 38, 209 (2002); Patrick J. Roache, Verification and Validation in Computational Science and Engineering. Hermosa Publishers, Albuquerque, 1998.
9Post, D. E., Votta, L. G. Physics Today, 58 (1), 35 (2005).