multi-core, main-memory joins: sort vs. hash revisited · overview 1 background sort vs. hash...
Post on 14-May-2020
2 Views
Preview:
TRANSCRIPT
Multi-Core, Main-Memory Joins: Sort vs. Hash Revisited
Presenter: Haonan Wang
Slides Credit: CMU 15-721 Spring 2018
haonanw@mit.edu
March 19, 2019
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 1 / 36
Overview
1 BackgroundSort vs. HashMotivation
2 Merge - Sort JoinThe basic ideaSort PhaseMerge PhaseMulti-Way Merge
3 Experiment
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 2 / 36
Section 1
Background
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 3 / 36
Subsection 1
Sort vs. Hash
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 4 / 36
Sort vs. Hash
There are two main approaches for the PARALLEL JOIN ALGORITHMS:→ Hash Join→ Sort-Merge Join
History of Hash VS. Sort
1970s Sorting
1980s Hashing
1990s Equivalent
2000s Hashing
2010s Hashing (Partitioned vs. Non-Partitioned)
2020s ???
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 5 / 36
What Is Merge-Sort Join
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 6 / 36
SIMD?
What is SIMD?A class of CPU instructions that allow the processor to perform the sameoperation on multiple data points simultaneously.
Both current AMD and Intel CPUs have ISA and microarchitecturesupport SIMD operations.→ MMX, 3DNow!, SSE, SSE2, SSE3, SSE4, AVX
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 7 / 36
SIMD Makes Sorting Better Than Hashing?
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 8 / 36
Section 2
Merge - Sort Join
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 9 / 36
The basic idea for the designing
Partition Phase(Optional)→ Partition R and assign them to workers / cores.
Sort Phase→ Sort the tuples of R and S based on the join key.
Merge Phase→ Scan the sorted relations and compare tuples.→ The outer relation R only needs to be scanned once.
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 10 / 36
Subsection 2
Sort Phase
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 11 / 36
Sorting Networks(1)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 12 / 36
Sorting Networks(2)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 13 / 36
Sorting Networks(3)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 14 / 36
Sorting Networks(4)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 15 / 36
Sorting Networks(5)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 16 / 36
Sorting Networks(6)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 17 / 36
Sorting Networks Summary(1)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 18 / 36
Sorting Networks Summary(2)
Always has fixed wiring paths for lists with the same number ofelements.
Efficient to execute on modern CPUs because of limited datadependencies and no branches.
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 19 / 36
Sorting Network Speed Up With SIMD(1)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 20 / 36
Sorting Network Speed Up With SIMD(2)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 21 / 36
Sorting Network Speed Up With SIMD(3)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 22 / 36
Subsection 3
Merge Phase
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 23 / 36
Bitonic Merge Networks
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 24 / 36
Merging Larger Lists using Bitonic Merge
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 25 / 36
Merging-Sort Tree
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 26 / 36
Merging-Sort Hierarchy(Summary)
in-register sorting, with runs that fit into (SIMD) CPU registers;
in-cache sorting, where runs can still be held in a CPU-local cache;
out-of-cache sorting, once runs exceed cache sizes.
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 27 / 36
Subsection 4
Multi-Way Merge
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 28 / 36
Impact Of Numa
In practice, at least some merging passes will inevitably cross NUMAboundaries.
multisocket systems show an increasing asymmetry, where the NUMAinterconnect bandwidth stays further and further behind theaggregate memory bandwidth that the individual memory controllerscould provide.
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 29 / 36
m-way
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 30 / 36
Section 3
Experiment
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 31 / 36
Settings
Intel Sandy Bridge with a 256-bit AVX instruction set.
Four-socket configuration, with each CPU socket containing 8physical cores and 16 thread contexts by the help of thehyper-threading.
Cache sizes are 32 KiB for L1, 256 KiB for L2, and 20 MiB L3 (thelatter shared by the 16 threads within the socket).The cache line sizeof the system is 64 bytes. TLB1 contains 64/32 entries when using 4KiB/2 MiB pages (respectively) and 512 TLB2 entries (page size 4KiB). Total memory available is 512 GiB (DDR3 at 1600 MHz).
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 32 / 36
Scalability
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 33 / 36
Result(1)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 34 / 36
Result(2)
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 35 / 36
The End
Presenter: Haonan Wang (MIT) Sort vs Hash March 19, 2019 36 / 36
top related