Professional Documents
Culture Documents
Abstract—B+tree is one of the most important data structures and has been widely used in different fields. With the increase of concurrent
queries and data-scale in storage, designing an efficient B+tree structure has become critical. Due to abundant computation resources,
SIMD architectures provide potential opportunities to achieve high query throughput for B+tree. However, prior methods cannot achieve
satisfactory performance results due to low resource utilization and poor memory performance. In this paper, we first identify the gaps
between B+tree and SIMD architectures. Concurrent B+tree queries involve many global memory accesses and different divergences,
which mismatch with SIMD architecture features. Based on this observation, we propose Harmonia, a novel B+tree structure to bridge the
gaps. In Harmonia, a B+tree structure is divided into a key region and a child region. The key region stores the nodes with its keys in a
breadth-first order. The child region is organized as a prefix-sum array, which only stores each node’s first child index in the key region. Since
the prefix-sum child region is small and the children’s index can be retrieved through index computations, most of it can be stored in on-chip
caches, which can achieve good cache locality. To make it more efficient, Harmonia also includes two optimizations: partially-sorted
aggregation and narrowed thread-group traversal, which can mitigate memory and execution divergence and improve resource utilization.
Evaluations on a 28-core INTEL CPU show that Harmonia can achieve up to 207 million queries per second, which is about 1.7X faster than
that of CPU-based HB+Tree [1], a recent state-of-the-art solution. And on a Volta TITAN V GPU, it can achieve up to 3.6 billion queries per
second, which is about 3.4X faster than that of GPU-based HB+Tree.
1 INTRODUCTION
+ [2] is one of the most important data structures, performance of B+tree. However, those designs have not
B TREE
which has been widely used in different fields, such
as web indexing, database, data mining and file sys-
achieved satisfactory results, due to low resource utilization
and poor memory performance.
tems [3], [4]. In the era of big data, the demand for high In this paper, we perform a comprehensive analysis
throughput processing is increasing. For example, there on B+tree and SIMD architectures, and identify several
are millions of searches per second on Google while Ali- gaps between the characteristics of B+tree and the fea-
baba processes 325,000 sale orders per second [5]. Mean- tures of SIMD architectures. For traditional B+tree, a
while, the data scale on server storage is also expanding query needs to traverse the tree from root to leaf, which
rapidly. For instance, Netflix estimated that there are 12 would involve many indirect memory accesses. More-
PetaByte data per day moved upwards to the data ware- over, two concurrent executed queries may have differ-
house in stream processing systems [6]. All these factors ent tree traversal paths, which would lead to different
put tremendous pressures on applications which use divergences when they are processed in a SIMD unit
B+tree as the index data structure. simultaneously. All these characteristics of B+tree are
single instruction multiple data (SIMD) architectures mismatched with the features of SIMD architectures,
have been one of the most popular accelerators in modern which impedes the query performance of B+tree on
processors, such as different SIMD extensions in CPUs and SIMD architectures.
its variant SIMT in GPUs. Due to high processing capability, Based on this observation, we propose Harmonia, a
they provide a potential opportunity to accelerate query novel B+tree structure, to bridge the gaps between B+tree
throughput of B+tree. Many previous works [1], [7], [8], [9], and SIMD architectures. In Harmonia, the B+tree structure
[10] have used SIMD architectures to accelerate the query is partitioned into two parts: a key region and a child region.
The key region stores the nodes with its keys in a breadth-
first order. The child region is organized as a prefix-sum
W. Zhang, Z. Yan, Y. Lin, and C. Zhao are with the Software School, Shanghai array, which only stores each node’s first child index in the
Key Laboratory of Data Science, Institute for Big Data, and Shanghai Institute
of Intelligent Electrontics & System, Fudan University, Shanghai 200433,
key region. The locations of other children can be obtained
China. E-mail: {zhangweihua, zfyan16, yzlin14, clzhao16}@fudan.edu.cn. based on these index numbers and the node size. With this
L. Peng is with the Division of Electrical and Computer Engineering, compression, most of the prefix-sum array can be stored in
Louisiana State University, Baton Rouge, LA 70803. E-mail: lpeng@isu.edu. caches. Therefore, such a design matches memory hierarchy
Manuscript received 4 Apr. 2019; revised 8 Sept. 2019; accepted 11 Sept. 2019. of modern processors for good cache locality and can avoid
Date of publication 23 Sept. 2019; date of current version 10 Jan. 2020. indirect memory accesses.
(Corresponding author: Weihua Zhang.)
Recommended for acceptance by R. Ge. To further improve the query performance of Harmonia,
Digital Object Identifier no. 10.1109/TPDS.2019.2942918 we propose two optimizations including partially-sorted
1045-9219 ß 2019 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission.
See ht_tp://www.ieee.org/publications_standards/publications/rights/index.html for more information.
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
708 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 31, NO. 3, MARCH 2020
aggregation (PSA) and narrowed thread-group traversal several sub-groups based on their instruction types and are
(NTG). For PSA, we sort the queries in a time window before processed one by one. When these sub-groups are executed,
issuing them. Since adjacent sorted queries are more likely to only part of PUs in the SIMD unit are used. Therefore, if the
share the same tree traversal path, it increases the opportu- execution paths among different iterations are not the same,
nity of coalesced memory accesses when multiple adjacent there exists execution divergence, which would lead to com-
queries are processed in a SIMD unit. For NTG, we reduce putation resource waste. Moreover, If a batch of memory
the number of threads for each query to avoid useless com- addresses requested by a SIMD instruction fall within one
parisons. When the thread group for each query is narrowed, cache line, which is called coalesced memory access [11],
more queries can be combined into a SIMD unit, which may [12], they can be served by single memory transaction. There-
increase execution divergence. To mitigate the execution fore, the coalesced memory access pattern can improve the
divergence problem brought by query combinations, we memory load efficiency and throughput. Otherwise, multi-
design a model to decide how to narrow the thread group for ple memory transactions will be required, which leads to
a query. memory divergence.
Evaluations on a 28-core INTEL CPU show that Harmonia SIMD architectures provide powerful computation
can achieve up to 207 million queries per second, which is resources. To fully utilize them, an application should have
about 1.7X faster than that of CPU-based HB+Tree [1], a the following characteristics.
recent state-of-the-art solution. On a Volta TITAN V GPU, it Reducing Global Memory Accesses. Global memory accesses
can achieve up to 3.6 billion queries per second, which is are performance bottlenecks for SIMD architectures. There-
about 3.4X faster than that of GPU-based HB+Tree. The main fore, increasing on-chip data locality and reducing global
contributions of our work can be summarized as follows: memory accesses are critical to improving performance.
Avoiding Execution Divergence. All the lanes of a SIMD unit
Analysis on the gaps between B+tree and SIMD execute the same instruction at a time. Conditional code
architectures. blocks, such as if-else, would cause execution divergence
A novel B+tree structure which matches memory because some SIMD lanes may execute along the if path
hierarchy well with good locality. while the others may execute along the else path depending
Two optimizations to reduce divergences and improve on the conditional result of each lane. Since the codes in dif-
computation resource utilization of SIMD architectures. ferent execution paths cannot be executed at the same time,
The rest of this paper is organized as follows. Section 2 they have to be partitioned into several sub-groups based on
introduces the background and discusses our motivation. the execution path. While the instructions of a sub-group are
Section 3 gives out Harmonia structure and tree opera- executed, the instructions in the other sub-groups have to
tions. Section 4 introduces two optimizations applied on wait, which leads to low resource utilization.
Harmonia tree structure. Section 5 introduces the imple- Avoiding Memory Divergence. Memory divergence leads to
mentation of the Harmonia. Section 6 shows the experimen- multiple memory transactions which imposes long memory
tal results. Section 7 surveys the related work. Section 8 overhead. Therefore, avoiding memory divergence is impor-
concludes the work. tant for SIMD performance.
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
ZHANG ET AL.: A HIGH THROUGHPUT B+TREE FOR SIMD ARCHITECTURES 709
Fig. 1. Memory performance per query. Fig. 3. Query divergence for different levels.
widely used in different fields like web indexing, file sys- Gap in Memory Divergence. Since the target leaf node of a
tems, and databases. Since search performance is more query is generally random, multiple queries may traverse the
important for lookup-intensive scenario, such as online ana- tree along different paths. When they are processed simulta-
lytical processing (OLAP), decision support systems and neously, such as in a SIMD unit, the memory accesses are dis-
data mining. [1], [14], [15], [16], B+tree systems typically use ordered, which would lead to memory divergence and
batch update instead of mixing search and update opera- greatly impede the performance. To illustrate it, we collect
tions to achieve high lookup performance. With data scale the average number of memory transactions for a SIMD unit
increasing, it has become more and more critical to further when concurrent queries traverse. For a 4-height and 8-fanout
improve B+tree query performance. B+tree, each SIMD unit processes 4 queries concurrently and
It seems that SIMD architecture is a potential solution to the input query data are randomly generated based on uni-
accelerating search performance of B+tree due to its power- form distribution. As shown in Fig. 2, the average number
ful computation resources. However, prior SIMD-based of memory transactions for a SIMD unit (illustrated in the sec-
B+tree methods cannot achieve satisfactory performance ond bar) is 3.16, which is about 97 percent of the worst
results. To understand the underlying reasons, we perform case (3.25) shown in the first bar of Fig. 2. For the worst case, 4
a detailed analysis and uncover three main sources of the queries access the root node in a coalesced manner, so it just
performance gaps between B+tree and SIMD architectures. needs 1 memory transaction. For the other levels, 4 queries
In the following analysis, we use the CPU configuration in access different nodes for the worst case, so it requires 4 mem-
Section 6 as our target hardware platform, the tree size is 223 ory transactions for each level. Therefore, the memory diver-
with 64-fanout and we randomly generate 100 queries for gence is very heavy for an unoptimized B+tree.
analysis. Gap in Query Divergence. Since the target leaf node of a
Gap in Memory Access Requirement. Each B+tree query query is random, multiple queries may require different
needs to traverse the tree from root to leaf. This traversal amounts of comparison operations in each level traversal,
brings lots of indirect memory accesses, which is propor- which would lead to query divergence. To illustrate this
tional to tree height. For instance, if the height of a B+tree is problem, we collect the average comparison number, the
five, there are four indirect global memory accesses when a largest one and the smallest one in each tree level. As shown
query traverses the tree from root node to its target leaf in Fig. 3, the comparison numbers of each level for different
node. To illustrate this problem, we use PAPI (Version queries have a large fluctuation although average compari-
5.6.1.0) [17] to collect average results of four memory met- son number is close except level 1 because it’s root node
rics including L1/L2/L3 cache misses and TLB miss. As the with fewer keys. We also collect the SIMD unit utilization of
data in Fig. 1 show, the memory performance is poor. There different tree sizes using PAPI. As the data in Fig. 4 show,
are 17.8 L1 cache misses, 15.7 L2 cache misses, 5.3 L3 cache the computation resource utilization of a SIMD unit is only
misses and 4.3 TLB misses on average for a query. 66 percent in average due to query divergence.
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
710 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 31, NO. 3, MARCH 2020
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
ZHANG ET AL.: A HIGH THROUGHPUT B+TREE FOR SIMD ARCHITECTURES 711
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
712 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 31, NO. 3, MARCH 2020
processing these concurrent queries in a SIMD instruction of a cache line even they are unordered. As shown in Fig. 7c,
would lead to poor performance due to memory diver- although the query to target 2 is before the query to target 1,
gence. In this section, we will propose a partially-sorted we can still achieve coalesced memory accesses for their
aggregation for better memory performance. shared path, which has the same effect with that of the
completely sorted queries as shown in Fig. 7b. Therefore, to
4.1.1 Sorted Aggregation achieve the goal of coalesced memory access, there is no need
to sort the queries within a group; a partial sorting among
If multiple queries have shared part of the traversal path, the
groups can achieve the effect similar to the complete sorting
memory accesses can be coalesced when they are processed
for coalesced memory access. Moreover, bit-wise sorting algo-
in a SIMD unit. For instance, if the queries with target 1 and
rithms, such as radix sort, are commonly used algorithms on
target 2 in Fig. 6 are processed in a SIMD unit, there are coa-
SIMD architectures because they can provide stable perfor-
lesced memory accesses for their first two level traversals.
mance for a large workload [21], [22]. For these bit-wise sort-
For two concurrent queries, they will have more opportu-
ing algorithms, the execution time is proportional to the
nities to share a traversal path if they have closer targets. To
sorted bits as the data shown in Fig. 10, which are normalized
achieve this goal, a solution is to sort the queries in a time
statistic data collected on GPU, using radix sort algorithms
window before they are issued. For the example in Fig. 6, the
supported by CUB [21] library. Therefore, partial sorting can
query target sequence becomes 1, 2, 20, and 35 after sorting
also be used to reduce the sorting overhead. As the data in the
as Fig. 8 shows. When two adjacent queries are combined
third bar of Fig. 9 show, the sorting overhead is brought down
into a SIMD unit, the SIMD unit with the first two queries
after partial sorting is applied and the search performance is
will have coalesced memory accesses for their shared tra-
comparable to that of the completely sorted method. The over-
versal path as shown in Fig. 7b. Moreover, because the
all performance has about 10 percent improvement compared
queries in the same SIMD unit will go through the same
with that of the original one.
path, it can also mitigate execution divergence among them.
For a partial sorting, the queries will be sorted based on
Although sorting queries can reduce memory divergence
their most significant N bits. If N is large, there is a high
and execution divergence, it brings additional sorting over-
probability that the targets of sorted queries are closer. How-
head. To illustrate this problem, we evaluate the overhead
ever, it will lead to a higher sorting overhead. Here, we dis-
using radix sort [21] to make a batch of queries sorted before
cuss how to decide the PSA size to achieve a better trade-off
assigning them to the B+tree concurrent search kernel. As the
between the number of coalesced memory accesses and the
data in Fig. 9 show, the kernel performance has about 22 per-
sorting overhead. Suppose each key is represented by B bits,
cent improvement compared with that of the original one.
the size of traversed B+tree is T and a cache line can save K
However, there is about 7 percent performance slowdown for
keys. In this condition, the key range is 2B and each existing
the total execution time. The reason behind this is that com-
key in the tree can averagely cover the key range of 2B =T .
plete sorting will generate more than 25 percent overhead.
The keys in a cache line can cover the key range of 2B =T K
and the bits to represent this range is log2 ð2B =T KÞ on
4.1.2 Partially-Sorted Aggregation
To achieve a coalesced memory access, multiple memory
accesses in a SIMD unit only need to fall into the address space
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
ZHANG ET AL.: A HIGH THROUGHPUT B+TREE FOR SIMD ARCHITECTURES 713
Fig. 10. Normalized time for different sorting bits. Fig. 11. Normalized avg transmissions for different sorting bits.
1. Due to the scale of data stored in the tree, the tree fanout is typi-
cally a large number such as 64 or 128. If the fanout is larger than the
PU number of a SIMD unit, all PUs in a SIMD unit are used for a query. Fig. 12. Example of different thread groups.
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
714 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 31, NO. 3, MARCH 2020
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
ZHANG ET AL.: A HIGH THROUGHPUT B+TREE FOR SIMD ARCHITECTURES 715
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
716 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 31, NO. 3, MARCH 2020
40 percent L2 misses, 21 percent TLB misses and 33 percent which leads to insufficient resource utilization problem due
branches per query of HB+tree. to many unnecessary comparisons as analyzed in Section
The reasons for these results are because the size of prefix- 4.2. The larger the PU number in a SIMD unit is, the more
sum child array is small and most of it can be stored in on- resource waste would be. In our current evaluation environ-
chip caches. Therefore, the global memory accesses can be ments, there are 32 PUs (threads) in a GPU SIMT warp and 8
significantly reduced. Moreover, as the Section 4.1 discussed, 32-bit PUs in a CPU SIMD unit. The PU number in a GPU
the design of PSA can reduce memory divergence and SIMT warp is about 4X compared to that in a CPU SIMD
branch divergence because the adjacent sorted queries share unit. Therefore, the resource utilization problem of GPU is
more traversal paths, which brings a higher possibility of much more serious than that of CPU in prior methods, which
coalesced memory accesses. Therefore, Harmonia bridges is also the reason why the performance improvement of CPU
the gaps between B+tree and SIMD architectures by effec- is not as dramatic as that of GPU.
tively reducing the high latency of global memory transac-
tions, memory divergence and warp divergence, which
6.2.3 Range Query Performance
results in better performance than the state-of-art SIMD-
based B+tree. To evaluate the range query performance of Harmonia, we
also conduct an experiment. As the data in Figs. 20 and 21
6.2.2 Impact of Different Design Choices show, the range query throughput of Harmonia can achieve
about 1.1 billion per second on GPU and 90 million per sec-
To understand the performance improvement from various
ond on CPU which is about 2.4X and 1.8X faster than GPU-
factors, we evaluate different design choices using uniform
based HB+tree on CPU-based HB+tree respectively. Gener-
distributions as input data set. The baseline refers to HB+tree.
ally, the range query performance is mainly depended on
We evaluate the Harmonia B+tree structure (Harmonia tree),
two parts: query operation and horizontal traversal in the
Harmonia B+tree structure with PSA, and the whole Harmo-
leaf layer. In Harmonia, the query operation performance is
nia (Harmonia tree + PSA + NTG). The GPU results and the
improved by the tree structure and its two optimizations.
CPU results are shown in Figs. 18 and 19 respectively.
The horizontal traversal process can also achieve a better
As the data in Figs. 18 and 19 show, the three design
access performance because the contiguous key layout in
choices respectively achieve about 1.4X, 1.9X and 3.4X
Harmonia.
speedup for GPU, and 1.1X, 1.5X and 1.7X speedup for CPU.
Those results illustrate these design choices are efficient on
both GPU and CPU. Applying the NTG method achieves 6.2.4 Update Performance
much more performance improvement on GPU than that of To analyze the update performance, we evaluate the Harmo-
CPU. The reason behind it is because traditional methods nia update performance by comparing it with those of
generally use the fanout number of threads to serve a query, the Regular B+tree and HB+tree. We evaluate the update
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
ZHANG ET AL.: A HIGH THROUGHPUT B+TREE FOR SIMD ARCHITECTURES 717
Fig. 19. Impact of different design choices on CPU. Fig. 21. Range query throughput on CPU.
Fig. 20. Range query throughput on GPU. Fig. 22. Update throughput.
performance for different tree sizes and different update 6.3.1 Performance of Different Key Sizes
ratios. The update requests include update, insertion and To understand the performance impact of different key
deletion. The update ratio is the proportion of the update sizes, we conduct an experimental on 32-bit key and 64-bit
operations in these requests. For example, a 95 percent update key. As the data in Fig. 24 show, Harmonia can achieve bet-
ratio means that the update operations occupies 95 percent ter query performance than HB+tree, no matter which key
and the other parts (5 percent) are insertion and deletion. In size is. This is because Harmonia can take full use of the
the evaluation, the update ratios are from 20 to 95 percent, memory hierarchy and reduce the execution and memory
and insertion and deletion are equally proportional. divergence efficiently. For different key sizes, 32-bits keys
As the data in Fig. 22 show, for 95 percent update ratio, the can achieve a better performance than those of 64-bits keys.
update throughput performance of Harmonia can achieve The reason behind it is that the smaller the key is, the more
71 percent that of Regular B+tree and 70 percent of HB+ tree keys can be stored in the cache hierarchy, which can reduce
for different tree sizes on average. This is because the batch the number of long latency memory accesses.
process can avoid many unnecessary data movements. We
also test the throughput of different update ratios. As the
6.3.2 Performance of Different Distributions
data in Fig. 23 show, Harmonia has higher throughput than
regular B+tree when update operation ratio is less than 70 In order to understand the impact of different input distribu-
percent, and the throughput of HB+tree is slightly higher tions, we use different data distributions as input data for tree
than that of Harmonia. Since updates are relatively infre- queries, including uniform distribution, normal distribution ;
quent in the batch update scenario as described in [18], the (m ¼ 0:5; s 2 ¼ 0:125) and gamma distribution (k ¼ 3; u ¼ 3).
performance of the proposed CPU-based batch update As the data in Fig. 25 show, for these three distributions, the
method is acceptable. performance of Harmonia and HB+tree has the same trends.
The performance data of GPU-based Harmonia are about
6.3 Scalability of Harmonia Design 3.4X faster than those of GPU-based HB+tree.
The final performance of a B+tree can be influenced by vari-
ous factors, including the different key sizes, the distribution 6.3.3 Performance of Different GPUs
of input data and the different hardware configurations. To see the performance impact of different GPUs, we con-
Therefore, we evaluate the scalability of Harmonia under dif- duct an experiment on NVIDIA Pascal TITAN XP and NVI-
ferent factors. Due to the space constraint, we only use the DIA Volta TITAN V. As the data in Fig. 26 show, query
performance results of GPUs to illustrate the efficiency. We throughput can reach up to 1.9 billion and 3.6 billion per sec-
also collect the performance data on CPUs, they can get the ond on NVIDIA Pascal TITAN XP and NVIDIA TITAN V
same conclusions. respectively. Such results illustrate that the performance of
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
718 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 31, NO. 3, MARCH 2020
Fig. 23. Throughput of different update ratios. Fig. 25. Performance for different distributions on Volta TITAN V.
Fig. 24. Performance for different key sizes on GPU. Fig. 26. Performance for different GPUs.
Harmonia scales well when the hardware platforms become search on GPU. Since GPU resides across the PCIe bus, Fix
more powerful (80 SMs on Volta TITAN V versus 30 SMs on et al. [23] present a method that reorganizes the original B
Pascal TITAN XP). +tree of database into a continuous layout before uploading
onto GPU, and search the B+tree using braided method par-
allelism. Daga et al. [10] accelerate B+tree on an APU to
7 RELATED WORK reduce the cost of transmission between GPU and CPU and
With the popularity of parallel hardware, such as multi-core overcome the irregular memory representation of the tree.
CPUs and GPUs, there have been many efforts to accelerate B Awad et al. [52] design a GPU B-Tree for batch update per-
+tree search performance. Rao et al. propose a cache line con- formance with a warp-cooperative work-sharing strategy. In
scious B+tree structure, called CSS-tree [30], to achieve better contrast, we design a novel tree structure with two optimiza-
cache performance. CSS-tree is further extended to CSB tions, which can bridge the gaps between B+tree and GPUs
+-tree [31] to provide an efficient update. Prior works [32], to achieve high query performance.
[33], [34] analyzed the influence of B+tree node size to search
performance. They find the cache performance can be
improved when the node size is larger than the cache line 8 CONCLUSION
size. Kim et al. propose FAST [35], a configurable binary tree In this paper, through a comprehensive analysis of the char-
structure for multi-core systems. Its tree structure can be acteristics of B+tree and SIMD architectures, we identify
defined based on CPU cache-line size, memory page size and several gaps between B+tree and SIMD architectures, such
SIMD width. Besides, several works optimize the concurrent as the gap in memory access requirements, memory diver-
B+tree performance on distribution system aim to improve gence, and query divergence. Based on this observation, we
the concurrency and provide consistency [36], [37], [38]. proposed a novel B+tree structure called Harmonia. In Har-
GPUs have been widely used to improve application per- monia, the B+tree structure is divided into a key region and
formance in different fields, such as matrix manipula- a prefix-sum child region. Due to the small size of prefix-
tion [39], [40], [41], [42], [43], [44], [45], [46], Stencil [47], [48], sum array, the Harmonia B+tree structure can fully utilize
[49], [50], [51] and so on. To utilize the computation resources the memory hierarchy to decrease the number of high
of GPUs, FAST [35] and HB+ tree [1] utilize the heteroge- latency memory accesses via cache accesses on chip. There
neous platform to search B+tree. HB+tree [1] also discusses are also two optimizations in Harmonia to alleviate the dif-
several heterogeneous collaboration modes to make CPU ferent divergences on SIMD architectures and improve
and GPU cooperation more efficient such as CPU-GPU pipe- the resource utilization: partially-sorted aggregation and
lining, double buffering. Kaczmarski [8], [9] proposes a narrowed thread-group. As a result, Harmonia performs
GPU-based B+tree, which can update efficiently, and also average 1.7X speedup to CPU-based HB+tree and 3.4X
discusses several methods for single-key search or batch speedup to GPU-based HB+tree.
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
ZHANG ET AL.: A HIGH THROUGHPUT B+TREE FOR SIMD ARCHITECTURES 719
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.
720 IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS, VOL. 31, NO. 3, MARCH 2020
[50] G. Jin, T. Endo, and S. Matsuoka, “A multi-level optimization Yuzhe Lin is now working toward the graduate
method for stencil computation on the domain that is bigger than degree in the Software School, Fudan University
memory capacity of GPU,” in Proc. IEEE 27th Int. Parallel Distrib. and working in the Parallel Processing Institute.
Process. Symp. Workshops PhD Forum, 2013, pp. 1080–1087. His work is related to parallel processing, trans-
[51] P. S. Rawat, F. Rastello, A. Sukumaran-Rajam, L.-N. Pouchet, actional memory, GPU computing and so on.
A. Rountev, and P. Sadayappan, “Register optimizations for sten-
cils on GPUs,” in Proc. 23rd ACM SIGPLAN Symp. Principles Prac-
tice Parallel Program., 2018, pp. 168–182.
[52] M. A. Awad, S. Ashkiani, R. Johnson, M. Farach-Colton, and
J. D. Owens, “Engineering a high-performance GPU B-tree,” in
Proc. 24th ACM SIGPLAN Symp. Principles Practice Parallel Pro-
gram., Feb. 2019, pp. 145–157.
Chuanlei Zhao is now working toward the under-
Weihua Zhang received the PhD degree in com- graduate degree in the Software School, Fudan
puter science from Fudan University, in 2007. University and working in the Parallel Processing
He is currently a professor of Parallel Processing Institute. His work is related to parallel processing,
Institute, Fudan University. His research interests GPU computing, system performance improve-
include compilers, computer architecture, paralle- ment and so on.
lization, and systems software.
Authorized licensed use limited to: Louisiana State University. Downloaded on February 26,2020 at 20:23:46 UTC from IEEE Xplore. Restrictions apply.