Shannon D Scott (2001)
Software Components for Simulation and Optimization
Rice University, Department of Computational and Applied Mathematics, Masters Thesis(TR01-06), 6100 Main Street, Houston, TX 77005.
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 stuctures 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.