|Name:||Architectures(7) Automated Analysis of Complex Data Objects: Estimating Memory Footprint & Direction|
|Time:||Monday, June 17, 2013
1:55 PM - 2:00 PM
|Room:||Multi-Purpose Area 4 (MPA 4)
CCL - Congress Center Leipzig
|Speakers:||Sebastian Dreßler, ZIB|
|Abstract:||Heterogeneous systems with physically disjoint address spaces require an explicit data transfer (DT). Thus, the application developer is responsible for data management and migration between devices. While this is a simple task for basic data structures like arrays, more complex data structures, e.g., linked lists and trees, need to be serialized before transfers. Efforts are made to provide an implicit DT, e.g. OpenACC and Intel compilers support #pragma-directives to describe implicit DT operations. However, this solution is limited regarding the supported data types. In particular, it lacks automated serialization. To enable implicit DT for complex data objects we propose a three step solution: i) identification and annotation of DT objects including memory footprint, ii) transformation of data layouts like serialization of complex objects, and iii) automatic code injections for performing DT. In this poster we present our results of the first step. We developed a method based on LLVM which uses graphs to determine the DT amount and the direction attribute of functional arguments. We evaluated our implementation with synthetic applications and real world applications. It can be demonstrated that both parameters were successfully determined for a wide range of data structures, including C++ classes with templates and inheritance, structs and dynamically allocated arrays.
Sebastian Dreßler, ZIB; Thomas Steinke, ZIB