Difference between revisions of "SCEC Software"

From SCECpedia
Jump to navigationJump to search
Line 3: Line 3:
 
== Active CME Scientific Software Developments ==
 
== Active CME Scientific Software Developments ==
  
 +
*[http://scec.usc.edu/internships/useit/scec-vdo SCEC-VDO]
 
*[http://www.opensha.org/ OpenSHA]
 
*[http://www.opensha.org/ OpenSHA]
 
*[[Broadband Platform]]
 
*[[Broadband Platform]]

Revision as of 03:42, 12 September 2015

Many types of software are used by SCEC researchers to perform research calculations. CME Project software developers integrate complex scientific codes together into larger computational systems that we call a Computational Platforms. Each SCEC computational platform is designed to reliably perform some useful or valuable research calculation. SCEC platforms include dynamic rupture, wave propagation, standard probabilistic seismic hazard calculations, and physics-based wave propagation simulations. In some cases, SCEC provides source code distributions of computational platforms for use by the SCEC community.

Active CME Scientific Software Developments

SCEC Software Release Policies

SCEC software engineering group has established standard practices for use when releasing new versions of publicly distributed scientific software. These practices are based on "best practices" for scientific software development established on SCEC's CSEP project and on SCEC's UseIT SCEC-VDO project, and within the seismological scientific software development groups including U.S.G.S., IRIS, and CIG.

Every SCEC/CME project that releases SCEC-developed and SCEC-supported software to the community is expected to provide the following materials before the software is released, unless there is a good reason not to follow these guidelines. Before the SCEC/CME software development group distributes a new version of software, a software project must have provide following items:

  1. A public SCECpedia entry that provides an overview of the software project, the capabilities of the software, and a software release history.
  2. Written software development information for the project including design overview, data sources, algorithms used, software language, development environment, run-time environment, and required software stack.
  3. Source code under version control.
  4. Automated make capability such as makefile or ant script.
  5. Copyright statement included in source code distribution.
  6. Issue tracking system (TRAC) site with a trouble ticket system and a connection to source code under version control.
  7. Automated suite of unit tests designed to verify the software was downloaded, built, and installed correctly and is functional.
  8. Automated suite of user-oriented acceptance tests typically-based on reference inputs and outputs compared to calculated results.
  9. Automated build and test capability, such as CruiseControl, which will run the acceptance tests without manual interactions.
  10. Release Version assigned using CSEP model of Yr.Mo.x (e.g. v10.8.0) with tags in version control system.
  11. Source distribution in tar and zip format with manifest and md5-sum and instructions for downloading and installing these distributions.
  12. Release Notes, as wiki and pdf, containing the following information:
    1. Software name (or system name) and description of purpose of software
    2. Link to public web page describing project
    3. Description of software capabilities
    4. Description of intended users
    5. Limitations or known bugs
    6. Version of current release
    7. Overview of changes including new capabilities of current release
    8. List of Trac tickets addressed in this release
    9. Software support email list
    10. Contact for Responsible scientists
    11. Contact for Responsible Software Engineer
    12. How to report software problem or request features
  13. User documentation, as wiki and pdf, including:
    1. Computer User Guide to installing, building, verifying, and operating software
    2. Scientific User Guide to using software, running reference problem, and interpreting results

Scientific Software Distribution Examples

CME Software Developments

See Also