IEEE BigData 2019 , December 4-12
2
IEEE BigData 2019 , December 4-12
3
[KW ‘02] K. Wang, L. Tang, J. Han, and J. Liu, “Top down fp-growth for association rule mining,”
in Proceedings of the 6th Pacific-Asia Conference on Advances in Knowledge Discovery and Data
Mining, ser. PAKDD ’02.
IEEE BigData 2019 , December 4-12
4
IEEE BigData 2019 , December 4-12
5
IEEE BigData 2019 , December 4-12
6
[F.Z. ‘16] F. Zhang, P. Di, H. Zhou, X. Liao, and J. Xue, “Regtt: Accelerating tree traversals on gpus by exploiting regularities,”
in 2016 ICPP
[M.G. ‘13] M. Goldfarb, Y. Jo, and M. Kulkarni, “General transformations for gpu execution of tree traversals,” in Proceedings
of the International Conference on High Performance Computing, Networking, Storage and Analysis, ser. SC ’13.
IEEE BigData 2019 , December 4-12
7
Index 0
item
(parent item, the index of parent node, support)
coalesced access
IEEE BigData 2019 , December 4-12
8
(a)
(b)
(a)
(b)
53x
IEEE BigData 2019 , December 4-12
9
IEEE BigData 2019 , December 4-12
10
[XH ’10] X. Huang, C. I. Rodrigues, S. Jones, I. Buck and W. Hwu,
"XMalloc: A Scalable Lock-free Dynamic Memory Allocator for Many-core Machines,"
2010 10th IEEE International Conference on Computer and Information Technology
[MS ’12] M. Steinberger, M. Kenzel, B. Kainz and D. Schmalstieg,
"ScatterAlloc: Massively parallel dynamic memory allocation for the GPU,"
2012 Innovative Parallel Computing (InPar)
Input table set
Output table
set
Mining Iteration 0
Input table set
Output table
set
Mining Iteration 1
Input table set
Output table
set
Mining
Iteration 2
Header
table 0
Header
table 1
Header
table k
Info of an item : node, support, etc.
Header table XY: the header table of pattern XY
Info of
item 0
Info of
item 1
Info of
item k-1
Thread
blocks
Out of order
Header
table 1k
Header
table 2k
Header
table (k-1)k
Header
table 13
Header
table 59
IEEE BigData 2019 , December 4-12
11
IEEE BigData 2019 , December 4-12
12
IEEE BigData 2019 , December 4-12
13
2 0 1Remap
Size 0 Size 1 Size 2
Size 1 Size 2 Size 0
exclusive prefix-sum
0 Size 1 Size 1+2
Write offset
Calculating the write offsets
IEEE BigData 2019 , December 4-12
14
2 0 1
0 Size 1 Size 1+2
Table Table Table
Write offset
Remap
Using the write offsets
IEEE BigData 2019 , December 4-12
15
I I
I
I
Idx:0 Idx:1
Idx:2
Idx:3
0 2 3 1 4
Thread 0, Thread 1, Thread 2, Thread 3
I
Idx:4
Thread block size: 4
IEEE BigData 2019 , December 4-12
16
[CB ’05] C. Borgelt, “An implementation of the fp-growth algorithm,” OSDM ’05.(workshop)
[FW ’14] F. Wang and B. Yuan, “Parallel frequent pattern mining without candidate generation on gpus,”
2014 IEEE ICDMW
[HJ ‘17]H. Jiang and H. Meng, “A parallel fp-growth algorithm based on gpu,” 2017 IEEE ICEBE
[WF ’09] W. Fang, M. Lu, X. Xiao, B. He, and Q. Luo, “Frequent itemset mining on graphics processors,” DaMoN ’09
[Chon ’18] K.-W. Chon, S.-H. Hwang, and M.-S. Kim, “Gminer: A fast gpu-based frequent itemset mining
method for large-scale data,” InformationSciences, vol. 439-440, pp. 19 – 38, 2018.
Not open source,
and the normalized results are too bad
IEEE BigData 2019 , December 4-12
17
Dataset #items #trans Size Threshold
(%)
v.s. CPU
FP-
growth
v.s. the
best GPU
Apriori
chess 75 3196 335KB 35~60 1.2x~0.7x 1.8x~3.3x
retail 16470 88163 4MB 0.07~0.1 2x ~ 1.8x 9.8x ~ 8.6x
accident 468 340184 34MB 20~40 8x~6x 16x ~ 42x
kosarak 41270 990002 30MB 0.3 ~ 0.6 6x~7x 12x ~ 40x
Webdoc 5267656 1692082 1.48GB 20 ~ 25 12x~7x 12x ~ 86x
Fewer patternsPerformance criteria :execution time
Operations can be processed offline are excluded.
IEEE BigData 2019 , December 4-12
18
IEEE BigData 2019 , December 4-12
19
IEEE BigData 2019 , December 4-12
20
Generated frequent patterns
04 14 24 34 4
Header table of pattern 24
0:5
2:2
3:2
4:2
1:3
2:1
3:1
4:1
4:2
2
The length of index array
Depend on hash function
0 1
3 1
1 1
Idx:0
Idx:1
0
3
1
2
The position is decided by hash value
# node
# support
IEEE BigData 2019 , December 4-12
21
Assume the support threshold is 3
A new frequent pattern 024:3 will be generated

Fast Frequent Pattern Mining without Candidate Generations on GPU by Low Latency Memory Allocation(IEEE Big data 2019)

  • 2.
    IEEE BigData 2019, December 4-12 2
  • 3.
    IEEE BigData 2019, December 4-12 3
  • 4.
    [KW ‘02] K.Wang, L. Tang, J. Han, and J. Liu, “Top down fp-growth for association rule mining,” in Proceedings of the 6th Pacific-Asia Conference on Advances in Knowledge Discovery and Data Mining, ser. PAKDD ’02. IEEE BigData 2019 , December 4-12 4
  • 5.
    IEEE BigData 2019, December 4-12 5
  • 6.
    IEEE BigData 2019, December 4-12 6
  • 7.
    [F.Z. ‘16] F.Zhang, P. Di, H. Zhou, X. Liao, and J. Xue, “Regtt: Accelerating tree traversals on gpus by exploiting regularities,” in 2016 ICPP [M.G. ‘13] M. Goldfarb, Y. Jo, and M. Kulkarni, “General transformations for gpu execution of tree traversals,” in Proceedings of the International Conference on High Performance Computing, Networking, Storage and Analysis, ser. SC ’13. IEEE BigData 2019 , December 4-12 7
  • 8.
    Index 0 item (parent item,the index of parent node, support) coalesced access IEEE BigData 2019 , December 4-12 8
  • 9.
  • 10.
    IEEE BigData 2019, December 4-12 10 [XH ’10] X. Huang, C. I. Rodrigues, S. Jones, I. Buck and W. Hwu, "XMalloc: A Scalable Lock-free Dynamic Memory Allocator for Many-core Machines," 2010 10th IEEE International Conference on Computer and Information Technology [MS ’12] M. Steinberger, M. Kenzel, B. Kainz and D. Schmalstieg, "ScatterAlloc: Massively parallel dynamic memory allocation for the GPU," 2012 Innovative Parallel Computing (InPar)
  • 11.
    Input table set Outputtable set Mining Iteration 0 Input table set Output table set Mining Iteration 1 Input table set Output table set Mining Iteration 2 Header table 0 Header table 1 Header table k Info of an item : node, support, etc. Header table XY: the header table of pattern XY Info of item 0 Info of item 1 Info of item k-1 Thread blocks Out of order Header table 1k Header table 2k Header table (k-1)k Header table 13 Header table 59 IEEE BigData 2019 , December 4-12 11
  • 12.
    IEEE BigData 2019, December 4-12 12
  • 13.
    IEEE BigData 2019, December 4-12 13 2 0 1Remap Size 0 Size 1 Size 2 Size 1 Size 2 Size 0 exclusive prefix-sum 0 Size 1 Size 1+2 Write offset Calculating the write offsets
  • 14.
    IEEE BigData 2019, December 4-12 14 2 0 1 0 Size 1 Size 1+2 Table Table Table Write offset Remap Using the write offsets
  • 15.
    IEEE BigData 2019, December 4-12 15 I I I I Idx:0 Idx:1 Idx:2 Idx:3 0 2 3 1 4 Thread 0, Thread 1, Thread 2, Thread 3 I Idx:4 Thread block size: 4
  • 16.
    IEEE BigData 2019, December 4-12 16 [CB ’05] C. Borgelt, “An implementation of the fp-growth algorithm,” OSDM ’05.(workshop) [FW ’14] F. Wang and B. Yuan, “Parallel frequent pattern mining without candidate generation on gpus,” 2014 IEEE ICDMW [HJ ‘17]H. Jiang and H. Meng, “A parallel fp-growth algorithm based on gpu,” 2017 IEEE ICEBE [WF ’09] W. Fang, M. Lu, X. Xiao, B. He, and Q. Luo, “Frequent itemset mining on graphics processors,” DaMoN ’09 [Chon ’18] K.-W. Chon, S.-H. Hwang, and M.-S. Kim, “Gminer: A fast gpu-based frequent itemset mining method for large-scale data,” InformationSciences, vol. 439-440, pp. 19 – 38, 2018. Not open source, and the normalized results are too bad
  • 17.
    IEEE BigData 2019, December 4-12 17 Dataset #items #trans Size Threshold (%) v.s. CPU FP- growth v.s. the best GPU Apriori chess 75 3196 335KB 35~60 1.2x~0.7x 1.8x~3.3x retail 16470 88163 4MB 0.07~0.1 2x ~ 1.8x 9.8x ~ 8.6x accident 468 340184 34MB 20~40 8x~6x 16x ~ 42x kosarak 41270 990002 30MB 0.3 ~ 0.6 6x~7x 12x ~ 40x Webdoc 5267656 1692082 1.48GB 20 ~ 25 12x~7x 12x ~ 86x Fewer patternsPerformance criteria :execution time Operations can be processed offline are excluded.
  • 18.
    IEEE BigData 2019, December 4-12 18
  • 19.
    IEEE BigData 2019, December 4-12 19
  • 20.
    IEEE BigData 2019, December 4-12 20
  • 21.
    Generated frequent patterns 0414 24 34 4 Header table of pattern 24 0:5 2:2 3:2 4:2 1:3 2:1 3:1 4:1 4:2 2 The length of index array Depend on hash function 0 1 3 1 1 1 Idx:0 Idx:1 0 3 1 2 The position is decided by hash value # node # support IEEE BigData 2019 , December 4-12 21 Assume the support threshold is 3 A new frequent pattern 024:3 will be generated