Code Disentanglement: Initial Plan

Los Alamos National Lab. (LANL), Los Alamos, NM (United States), John Wohlbier, USDOE, Timothy Kelley, Gabriel Rockefeller, Matthew T. Calef · 2015

The first step to making more ambitious changes in the EAP code base is to disentangle the code into a set of independent, levelized packages. We define a package as a collection of code, most often across a set of files, that provides a defined set of functionality; a package a) can be built and tested as an entity and b) fits within an overall levelization design. Each package contributes one or more libraries, or an application that uses the other libraries. A package set is levelized if the relationships between packages form a directed, acyclic graph and each package uses only packages at lower levels of the diagram (in Fortran this relationship is often describable by the use relationship between modules). Independent packages permit independent- and therefore parallel|development. The packages form separable units for the purposes of development and testing. This is a proven path for enabling finer-grained changes to a complex code.

Read the paper · More papers on PaperTik