Software components for simulation and optimization

Abstract

Explicit-time finite-difference approximations to the acoustic wave equation admit data parallelism, in which the problem domain (a grid) is sub-divided among several processors. Communication must take place between the processors to update the inner-domain boundaries after each time step. Overlapped subdomains can defer communication until several time-steps have been taken. We show nonetheless that minimal overlapping produces the fastest run-times. Complex simulation-driven optimization requires integration of subprograms with widely varying natural data structures and levels of abstraction. Component architectures provide an integration method that also alleviates platform and programming incompatibilities. A component architecture built on commodity software packages provided the necessary integration for our acoustic control application. C++ Expression Templates allow a finite-difference equation, or most any other mathematical operation, to be represented in a more natural form than hand-coded loops, ideally without a loss of efficiency, by deferring the cost of evaluating the expression until assignment. In principle compilers can optimize the expression as a whole. In practice, our experience suggests that compiler optimization must advance further before expression templates can reach their potential

Similar works

Full text

thumbnail-image

DSpace at Rice University

Full text is not available
oai:scholarship.rice.edu:1911/17463Last time updated on 6/11/2012

This paper was published in DSpace at Rice University.

Having an issue?

Is data on this page outdated, violates copyrights or anything else? Report the problem now and we will take corresponding actions after reviewing your request.