skip to: online tools | main navigation | content | footer

Computer Sciences R&D

Home » Research & Development » Computer Sciences » Advanced Software » Archives » Algorithms for the Effcient Usage of Parallel Computers

Algorithms for the Efficient Usage of Parallel Computers

This project is a composite of various smaller sub-projects, mostly of a algorithmic nature, that aim at improving the efficiency of simulations on todays scalar/superscalar processor based distributed memory machines. The sub-projects are:

  1. Load balancers for structured adaptively refined meshes
  2. Linear System Assembly and Abstraction

Load balancers for structured adaptively refined meshes

This is a project, funded by ASC primarily, which aims at decreasing execution time for large-scale structured adaptive mesh refinement (SAMR) applications (like CHOMBO). They primarily consist of a set of patches of fine meshes overlaid on a global coarse mesh as shown in the picture (courtesy Prof. M. Parashar, Rutgers University) executing on general parallel computers. These applications are being effectively used e.g. in computational fluid dynamics, numerical relativity, astrophysics, subsurface modeling and oil reservoir simulation. Distributed implementations of these methods however, lead to significant challenges in dynamic data-distribution, load-balancing, and runtime management. We are developing an expert system, Nature+Fable, that continuously tracks both application and system state. This state is then being used to dynamically select and configure the most suitable data partitioning strategy in order to maintain efficient utilization of computer resources.

Project Members

Johan Steensland, jsteens@sandia,gov

Jaideep Ray, jairay@sandia.gov

Rob Armstrong, rob@ca.sandia.gov

Up-to-date status

You may visit the project page for an up-to-date account of the work. On this page, you will find:

Linear System Assembly and Abstraction

Sparse systems of linear equations arise in many engineering applications, including finite elements, finite volumes, and others. The solution of linear systems is often the most computationally intensive portion of the application. Depending on the complexity of problems addressed by the application, there may be no single solver capable of solving all of the linear systems that arise. This motivates the desire to switch an application from one solver library to another, depending on the problem being solved. Unfortunately the interfaces provided by solver libraries differ greatly, making it difficult to switch an application code from one library to another. The amount of library-specific code in an application can be greatly reduced by having an abstraction layer between solver libraries and the application, putting a common “face” on various solver libraries.

One such abstraction layer is the Finite Element Interface to Linear Solvers (FEI), which has seen significant use by finite element applications at Sandia National Laboratories and Lawrence Livermore National Laboratory.