Nested Object Support in a Structure-of-Arrays Dynamic Objector Allocator (bibtex)
by Jizhe Chenxin and Hidehiko Masuhara
Abstract:
DynaSOAr is a dynamic object allocator for GPGPU that enables object-oriented programming with an efficient structure-of-arrays (SOA) memory layout. One of the limitations in DynaSOAr is its poor support for nested objects. When a class has a field of another class, the fields of the inner class are allocated in an arrays-of-structure layout. This paper proposes a technique that translates nested class definitions into flat ones by inlining inner classes into top-level classes. We implemented this technique as a Sanajeh domain-specific language that translates Python class definitions into C++ classes using DynaSOAr. Our preliminary evaluation showed that Sanajeh executes a parallel benchmark program with nested objects at almost the same speed as the one with manually flatten classes.
Reference:
Nested Object Support in a Structure-of-Arrays Dynamic Objector Allocator (Jizhe Chenxin and Hidehiko Masuhara), Presentation at the ARRAY 2021 Workshop, co-located with PLDI 2021, 2021.
Bibtex Entry:
@misc{chenxin2021array,
  author = {Jizhe Chenxin and Hidehiko Masuhara},
  title = {Nested Object Support in a Structure-of-Arrays Dynamic Objector Allocator},
  howpublished = {Presentation at the ARRAY 2021 Workshop, co-located with PLDI 2021},
  abstract = {DynaSOAr is a dynamic object allocator for GPGPU that enables object-oriented programming with an efficient structure-of-arrays (SOA) memory layout.  One of the limitations in DynaSOAr is its poor support for nested objects.  
When a class has a field of another class, the fields of the inner class are allocated in an arrays-of-structure layout.  
This paper proposes a technique that translates nested class definitions into flat ones by inlining inner classes into top-level classes.
We implemented this technique as a Sanajeh domain-specific language that translates Python class definitions into C++ classes using DynaSOAr.  
Our preliminary evaluation showed that Sanajeh executes a parallel benchmark program with nested objects at almost the same speed as the one with manually flatten classes.  
},
  url = {https://pldi21.sigplan.org/details/ARRAY-2021-papers/1/Nested-Object-Support-in-a-Structure-of-Arrays-Dynamic-Objector-Allocator},
  pdf = {array2021.pdf},
  month = jun,
  year = 2021
}
Powered by bibtexbrowser