Smart Libraries: Best SQE Practices for Libraries with an Emphasis on Scientific Computing
As scientific computing applications grow in complexity, more and more functionality is being packaged in independently developed libraries. Worse, as the computing environments in which these applications run grow in complexity, it gets easier to make mistakes in building, installing and using libraries as well as the applications that depend on them. Unfortunately, SQA standards so far developed focus primarily on applications, not libraries. We show that SQA standards for libraries differ from applications in many respects. We introduce and describe a variety of practices aimed at minimizing the likelihood of making mistakes in using libraries and at maximizing users' ability to diagnose and correct them when they occur. We introduce the term Smart Library to refer to a library that is developed with these basic principles in mind. We draw upon specific examples from existing products we believe incorporate smart features: MPI, a parallel message passing library, and HDF5 and SAF, both of which are parallel I/O libraries supporting scientific computing applications. We conclude with a narrative of some real-world experiences in using smart libraries with Ale3d, VisIt and SAF.
- Research Organization:
- Lawrence Livermore National Lab. (LLNL), Livermore, CA (United States)
- Sponsoring Organization:
- USDOE
- DOE Contract Number:
- W-7405-ENG-48
- OSTI ID:
- 936460
- Report Number(s):
- UCRL-JRNL-208636; TRN: US200818%%745
- Journal Information:
- Proceedings of the Nuclear Explosives Code Developer's Conference 2004, vol. 1, N/A, December 15, 2004, unknown, Journal Name: Proceedings of the Nuclear Explosives Code Developer's Conference 2004, vol. 1, N/A, December 15, 2004, unknown
- Country of Publication:
- United States
- Language:
- English
Similar Records
SCORPIO: A scalable two-phase parallel I/O library with application to a large scale subsurface simulator
...And Eat it Too: High Read Performance in Write-Optimized HPC I/O Middleware File Formats