Multi-core Hash Joins
Main-memory hash join implementations for multi-core CPUs
src
prj_params.h
Go to the documentation of this file.
1
11
#ifndef PRJ_PARAMS_H
12
#define PRJ_PARAMS_H
13
15
#ifndef NUM_RADIX_BITS
16
#define NUM_RADIX_BITS 18
17
#endif
18
20
#ifndef NUM_PASSES
21
#define NUM_PASSES 2
22
#endif
23
25
#ifndef PROBE_BUFFER_SIZE
26
#define PROBE_BUFFER_SIZE 4
27
#endif
28
33
/* #define USE_SWWC_OPTIMIZED_PART 1 */
34
42
#ifndef CACHE_LINE_SIZE
43
#define CACHE_LINE_SIZE 64
44
#endif
45
47
#ifndef L1_CACHE_SIZE
48
#define L1_CACHE_SIZE 32768
49
#endif
50
52
#ifndef L1_ASSOCIATIVITY
53
#define L1_ASSOCIATIVITY 8
54
#endif
55
57
#define L1_CACHE_TUPLES (L1_CACHE_SIZE/sizeof(tuple_t))
58
60
// #ifndef SKEW_HANDLING
61
// #define SKEW_HANDLING 0
62
// #endif
63
#define THRESHOLD1(NTHR) (NTHR*L1_CACHE_TUPLES)
64
#define THRESHOLD2(NTHR) (NTHR*NTHR*L1_CACHE_TUPLES)
65
75
#define PASS1RADIXBITS (NUM_RADIX_BITS/NUM_PASSES)
76
#define PASS2RADIXBITS (NUM_RADIX_BITS-(NUM_RADIX_BITS/NUM_PASSES))
77
78
/* num-parts at pass-1 */
79
#define FANOUT_PASS1 (1 << (NUM_RADIX_BITS/NUM_PASSES))
//(1<<PASS1RADIXBITS)
80
/* num-parts at pass-1 */
81
#define FANOUT_PASS2 (1 << (NUM_RADIX_BITS-(NUM_RADIX_BITS/NUM_PASSES)))
//(1<<PASS2RADIXBITS)
82
83
88
#define SMALL_PADDING_TUPLES (3 * CACHE_LINE_SIZE/sizeof(tuple_t))
89
#define PADDING_TUPLES (SMALL_PADDING_TUPLES*(FANOUT_PASS2+1))
90
92
#define RELATION_PADDING (PADDING_TUPLES*FANOUT_PASS1*sizeof(tuple_t))
93
97
#endif
/* PRJ_PARAMS_H */
Generated on Tue Oct 4 2022 15:20:47 for Multi-core Hash Joins by
1.9.4