Dynamic Parallel Data Services
Dynamic parallel data services, such as parallel partitioning, dynamic load balancing, data migration, unstructured communication maps, and geometrically-based processor searches, are crucial to petascale performance of mesh-based simulations. For example, with adaptive mesh refinement, processor workloads change as elements are added and deleted; dynamic load balancing and data migration are needed to redistribute work after adaptation. Similarly, unstructured communication maps and geometrically-based processor searches are key components of solution transfer schemes. Although many frameworks implement these services internally, their implementations are data-structure specific, preventing interoperability with components not in the frameworks. We will develop dynamic services that work through the ITAPS interfaces, allowing them to be used easily by SciDAC applications.
Our approach is two-fold. Our first goal is to design and implement a new toolkit of easy-to-use dynamic data services for mesh-based SciDAC applications. We will build these new services around the Zoltan library of parallel data management utilities. Zoltan contains parallel load balancers, data migration utilities, unstructured communication plans, and distributed data directories. Zoltan's data-structure neutral design enables its use by a wide range of applications and supports the interoperability goals of ITAPS. Our new toolkit will interact with applications through ITAPS interfaces, providing parallel data semantics like partitions using ITAPS data models. We will first implement the dynamic data services over the ITAPS mesh interface, making them interoperable with existing mesh-interface implementations. We will then add support for other ITAPS data models (e.g., fields and geometry), so that solution data and geometry can be migrated along with the mesh. This two-level design enables existing applications to adopt services incrementally, without having to replace their entire data structure or integrate into a new code framework.
Our second goal is to investigate the impact of dynamic partitioning and data services on mesh-based applications. We will investigate (i) partitioning schemes that account for hierarchical data relationships (e.g., between geometry data and meshes); (ii) partitioning strategies for applications with multiple kinds of data (e.g., particle-in-cell methods) or multiple domains to be partitioned (e.g., the spatial, angular, and energy domains in radiation transport); and (iii) dynamic partitioning and data migration issues arising due to particular application data structures (e.g., structured meshes and adaptive refinement trees).