Parallel Scientific Computing

Work on this topic stems from a desire to exploit Linux clusters for AMR calculations. Optimization, performance modeling, RISC and modern memory architectures play a large role in code design, as do interconnet configurtions and specifications. C++ frameworks for AMR grid management are being evaluated for the next generation of reactive flow codes. Finally more efficient (i.e. less labor intensive) approaches to writing, extending and maintaining scientific codes too are investigated.

Load-balancers

Load-balancers are an active field of research in the quest for scalable flame simulations on block-structured adaptively refined meshes. The most current information on the load-balancers that are being developed can be found in Johan Steensland's load-balancer page

We have realized that there is no one load-balancer that works for all problems, all the time, especially since adaptive problems change their (parallel computing) characteristics as they evolve. The approach, therefore, is to characterize the problem at hand and choose and/or configure a load-balancer for a pre-existing collection of load-balancer. This "control system" approach to load-balancing, also called the meta-partitioner forms the bulk of our work. Some of our recent findings are documented in the papers below.

Parallel software architecture

The other active field is in the use of the Common Component Architecture to design toolkits for the AMR simulation of flames . The CFRFS Toolkit is viewed as a collection of components, each embodying a functionality. Components can be chosen and "wired up" to create a simulation code. The aim here is demostrate that a component-based Toolkit can be computationally efficient (and parallel!) while being flexible enough to "absorb" the contributions of many collaborators, with diverse skills, which may not include advanced software development.


Created by Jaideep Ray