FRTM - a productive framework for reverse time migration
We have identified challenges upcoming hardware development is going to impose on RTM implementations. The increasing heterogeneity and complexity of target machines needs to be transparently mapped into the software layer. An efficient fault tolerance mechanism needs to be provided and I/O latencies need to be efficiently hidden. We have introduced a framework for RTM which is able to solve these problems. The framework is data dependency driven on two granularity levels. On the coarse level, concurrent computation of shots is powered by GPI-Space, a parallel development and execution framework. GPI-Space boosts our RTM framework by introducing a fault tolerant execution layer, an efficient topology mapping and an on the fly resource management. On the fine level, the computation of one shot is handled by domain decomposition in a task based model. The tight coupling between neighbouring domains is efficiently relaxed by the one sided asynchronous communication API GPI -2.0. Weak synchronization primitives allow for a fine granular and application specific breakup of data synchronization points with optimal overlap of communication by computation. Our framework has an inherent separation of parallelization and computation. Domain experts concentrate on the implementation of domain knowledge. Computer scientist can simultaneously do the parallelization and optimization.