Multi-Core, Main-Memory Joins: Sort vs. Hash Revisited · Overview 1 Background Sort vs. Hash Motivation 2 Merge - Sort Join The basic idea Sort Phase Merge Phase Multi-Way Merge

Post on 14-May-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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