  Object-oriented programming (OOP) has long been regarded as too inefficient
for SIMD high-performance computing, despite the fact that many important HPC
applications have an inherent object structure. We discovered a broad subset of
OOP that can be implemented efficiently on massively parallel SIMD
accelerators. We call it Single-Method Multiple-Objects (SMMO), because
parallelism is expressed by running a method on all objects of a type.
  To make fast GPU programming available to domain experts who are less
experienced in GPU programming, we developed DynaSOAr, a CUDA framework for
SMMO applications. DynaSOAr improves the usage of allocated memory with an SOA
data layout and achieves low memory fragmentation through efficient management
of free and allocated memory blocks with lock-free, hierarchical bitmaps.
