November 2006 B
High Productivity Computing Systems and the Path Towards Usable Petascale Computing
D. E. Post, DoD High Performance Computing Modernization Program
R. P. Kendall, Carnegie Mellon University Software Engineering Institute


Figure 1

Figure 1. Seven development stages for a computational science project.

A typical CSE project has the following steps (Figure 1):

  1. Formulate Questions and Issues
    • Define the high level requirements and goals (including the phenomenon to be simulated or analyzed); the stakeholders (the application users and customers, the sponsors, the developers, the validation community, and the computer support); the general approach, the important physical effects necessary for the simulation of a particular phenomenon, and the criteria for success.
  2. Develop Computational and Project Approach
    • Define the detailed goals and requirements; seek input from customers; select numerical algorithms and programming model; design the project including the code architecture; identify the modules and specify interfaces for the individual modules; recruit the team; get the resources; and identify the expected computing environment.
  3. Develop the Program
    • Write and debug the program, including the individual modules, input and output packages, and code controllers.
  4. Perform Verification & Validation
    • Define verification tests and methodology; set up regression test suites and run them; define unit tests and execute them; define useful validation experiments; design and conduct validation experiments; and compare the validation data with code results.
  5. Make production runs
    • Setup problems, schedule runs, execute runs, and store the results.
  6. Analyze computational results
    • Begin analysis during the production run to optimize it; store, analyze and assess the results at the conclusion of the production run; and document the results, analysis and conclusions. Then develop hypotheses and test them with further runs.
  7. Make decisions
    • Make decisions based on the analysis of the results; document and justify the decisions; develop plans to reduce uncertainties and resolve open questions; and identify further questions and issues.

These large tasks strongly overlap each other. There is usually a lot of iteration among the steps and within each step. Quite commonly, it turns out that some of the candidate algorithms are not sufficiently accurate, robust, stable or efficient, and new candidate algorithms must be identified, implemented and tested. Similarly, comparison with experimental data (validation) usually shows that the initial set of physical phenomena does not include all of the effects necessary to accurately simulate the phenomenon of interest. The project then needs to identify the effects that were not included in the model but are necessary for accurate simulations, incorporate them in the application, and assess whether the new candidate effects are adequate for simulating the target phenomenon. Often this series of steps will be iterated many times.

Pages: 1 2 3 4 5 6 7 8

Reference this article
"Large-Scale Computational Scientific and Engineering Project Development and Production Workflows," CTWatch Quarterly, Volume 2, Number 4B, November 2006 B. http://www.ctwatch.org/quarterly/articles/2006/11/large-scale-computational-scientific-and-engineering-project-development-and-production-workflows/

Any opinions expressed on this site belong to their respective authors and are not necessarily shared by the sponsoring institutions or the National Science Foundation (NSF).

Any trademarks or trade names, registered or otherwise, that appear on this site are the property of their respective owners and, unless noted, do not represent endorsement by the editors, publishers, sponsoring institutions, the National Science Foundation, or any other member of the CTWatch team.

No guarantee is granted by CTWatch that information appearing in articles published by the Quarterly or appearing in the Blog is complete or accurate. Information on this site is not intended for commercial purposes.