Dupuy, JonathanYuksel, Cem and Membarth, Richard and Zordan, Victor2020-10-302020-10-3020202577-6193https://doi.org/10.1145/3406186https://diglib.eg.org:443/handle/10.1145/3406186We introduce the concurrent binary tree (CBT), a novel concurrent representation to build and update arbitrary binary trees in parallel. Fundamentally, our representation consists of a binary heap, i.e., a 1D array, that explicitly stores the sum-reduction tree of a bitfield. In this bitfield, each one-valued bit represents a leaf node of the binary tree encoded by the CBT, which we locate algorithmically using a binary-search over the sum-reduction. We show that this construction allows to dispatch down to one thread per leaf node and that, in turn, these threads can safely split and/or remove nodes concurrently via simple bitwise operations over the bitfield. The practical benefit of CBTs lies in their ability to accelerate binary-tree-based algorithms with parallel processors. To support this claim, we leverage our representation to accelerate a longest-edgebisection- based algorithm that computes and renders adaptive geometry for large-scale terrains entirely on the GPU. For this specific algorithm, the CBT accelerates processing speed linearly with the number of processors.Computing methodologiesMassively parallel algorithmsRendering.binary treeconcurrentparallelbinary heaplongest edge bisectionGPUrealtimeConcurrent Binary Trees (with application to longest edge bisection)10.1145/3406186