The R&D component of the mission of CSCAPES is to help contribute to the overarching SciDAC mission by developing infrastructural algorithmic and software technologies to support high-performance computing. The scope of CSCAPES encompasses four areas: load-balancing--the task of distributing data and work in a large-scale computation among the processors of a machine to minimize total execution time--and related parallelization toolkits; automatic differentiation (AD), a technology for transforming computer source code for computing a function into code for computing its derivatives; basic ingredients in sparse linear solver technology; and runtime data and iteration reordering to improve performance in irregular computation.
The focus in CSCAPES in each of these areas is on the formulation (modeling) and solution (algorithms) of the underlying fundamental combinatorial problems. These problems are often expressed using graphs or hypergraphs:
Figure 1 (The Philosophy behind CSCAPES):
This diagram shows the relationship between a typical computational science
and engineering (CSE) application and the key combinatorial problems
for which CSCAPES is developing algorithms and
software. An arrow from A to B indicates that A in some sense uses B;
some horizontal relationships are not shown.
The second row of the figure shows a subset of the scientific computing (SC) tools
needed in the solution of a typical CSE application.
When the solution is carried out on a parallel computer,
the application as well as the SC tools themselves,
involve a variety of high-performance computing tasks (shown in the third third row).
The fundamental combinatorial problems that underlie these tools and tasks are shown
in the fourth row.
Click here for a larger picture .
The diagram in Figure 1 shows how these combinatorial problems, for which CSCAPES researchers are developing algorithms and software, are related to a typical computational science and engineering (CSE) application. A typical CSE application may require a sequence of numerical optimization problems to be solved, eigenvalues and eigenvectors to be computed, nonlinear and linear systems of equations to be solved, and/or derivatives of multivariate functions to be evaluated. Scientific computing (SC) tools for many of these problems often invoke each other: for example, an optimization tool may need to use an AD tool or a linear solver, and an eigensolver may call a linear solver or an AD tool. When the CSE application is solved on a parallel computer with several thousands of processors, both the application and the SC tools it relies on critically depend on the availability of high-performance computing (HPC) capabilities such as those for load-balancing, scheduling computational tasks, and data migration as well as on techniques for improving single processor performance. As discussed earlier, these HPC tasks in turn rely on the existence of efficient and scalable algorithms for a variety of combinatorial problems. CSCAPES is engaged in researching, developing, implementing, and deploying such algorithms.
The load-balancing and parallelization capabilities in CSCAPES are being deployed through the Sandia-housed Zoltan software toolkit. Similarly, the AD capabilities are being deployed via the tools being developed at Argonne within the OpenAD framework. In addition, serial as well as parallel codes (for coloring, matching, and re-ordering) are being separately developed at the academic institutions within CSCAPES, with the ultimate goal of being integrated with the major software outlets, Zoltan and OpenAD. Both Zoltan and the tools in OpenAD pre-date CSCAPES and have been under continuous development for several years with sustained support from DOE; similarly, the coloring work in CSCAPES was previously supported by NSF. For more information on each constituent project within CSCAPES, click on Projects in the left menu at the top of this page.