Publication | Closed Access
FPGA-based Multithreading for In-Memory Hash Joins
42
Citations
19
References
2015
Year
EngineeringComputer ArchitectureHardware SystemsParallel AlgorithmsFast Join ImplementationsHardware SecurityHigh-performance ArchitectureComputing SystemsFpga CommunityParallel ComputingData ManagementParallel DatabaseComputer EngineeringHash FunctionComputer ScienceData-intensive ComputingExternal-memory AlgorithmRelational QueriesParallel ProgrammingProcessor ArchitecturesConcurrent Data StructureData-level ParallelismFpga-based Multithreading
Large relational databases often rely on fast join implementations for good performance. Recent paradigm shifts in processor architectures has reinvigorated research into how the join operation can be implemented. The FPGA community has also been developing new architectures with the potential to push performance even further. Hashing is a common method used to implement joins, but its poor spatial locality can hinder performance on processor architectures. Multithreaded architectures can better cope with poor spatial locality by masking memory/cache latencies with many outstanding requests. In this paper we present the first end-to-end in-memory FPGA hash join implementation. The FGPA uses massive multithreading during the build and probe phases to mask long memory delays, while it concurrently manages hundreds of thread states locally. Throughput results show a speedup between 2x and 3.4x over the best multi-core approaches with comparable memory bandwidths on uniform and skewed datasets; however, this advantage diminishes for extremely skewed datasets. Results using the FPGA’s full 76.8 GB/s of bandwidth show throughput up to 1.6 billion tuples per second for uniform and skewed datasets.
| Year | Citations | |
|---|---|---|
Page 1
Page 1