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
To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.