TY - GEN
T1 - Combining SIMD and many/multi-core parallelism for finite state machines with enumerative speculation
AU - Jiang, Peng
AU - Agrawal, Gagan
N1 - Funding Information:
This work was supported by NSF award CCF-1526386.
Publisher Copyright:
© 2017 ACM.
PY - 2017/1/26
Y1 - 2017/1/26
N2 - Finite State Machine (FSM) is the key kernel behind ma popular applications, including regular expression matc ing, text tokenization, and Huffman decoding. Parallelizi FSMs is extremely difficult because of the strong depende cies and unpredictable memory accesses. Previous effo have largely focused on multi-core parallelization, and us different approaches, including speculative and enumerati execution, both of which have been effective but also ha limitations. With increasing width and improving flexibil in SIMD instruction sets, this paper focuses on combini SIMD and multi/many-core parallelism for FSMs. We ha developed a novel strategy, called enumerative speculatio Instead of speculating on a single state as in speculative e ecution or enumerating all possible states as in enumerati execution, our strategy speculates transitions from seve possible states, reducing the prediction overheads of speculation approach and the large amount of redundant work in the enumerative approach. A simple lookback approach produces a set of guessed states to achieve high speculation success rates in our enumerative speculation. We evaluate our method with four popular FSM applications: Huffman decoding, regular expression matching, HTML tokenization, and Div7. We obtain up to 2.5x speedup using SIMD on one core and up to 95x combining SIMD with 60 cores of an Intel Xeon Phi. On a single core, we outperform the best single-state speculative execution version by an average of 1.6x, and in combining SIMD and many-core parallelism, outperform enumerative execution by an average of 2x.
AB - Finite State Machine (FSM) is the key kernel behind ma popular applications, including regular expression matc ing, text tokenization, and Huffman decoding. Parallelizi FSMs is extremely difficult because of the strong depende cies and unpredictable memory accesses. Previous effo have largely focused on multi-core parallelization, and us different approaches, including speculative and enumerati execution, both of which have been effective but also ha limitations. With increasing width and improving flexibil in SIMD instruction sets, this paper focuses on combini SIMD and multi/many-core parallelism for FSMs. We ha developed a novel strategy, called enumerative speculatio Instead of speculating on a single state as in speculative e ecution or enumerating all possible states as in enumerati execution, our strategy speculates transitions from seve possible states, reducing the prediction overheads of speculation approach and the large amount of redundant work in the enumerative approach. A simple lookback approach produces a set of guessed states to achieve high speculation success rates in our enumerative speculation. We evaluate our method with four popular FSM applications: Huffman decoding, regular expression matching, HTML tokenization, and Div7. We obtain up to 2.5x speedup using SIMD on one core and up to 95x combining SIMD with 60 cores of an Intel Xeon Phi. On a single core, we outperform the best single-state speculative execution version by an average of 1.6x, and in combining SIMD and many-core parallelism, outperform enumerative execution by an average of 2x.
UR - http://www.scopus.com/inward/record.url?scp=85014496180&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85014496180&partnerID=8YFLogxK
U2 - 10.1145/3018743.3018760
DO - 10.1145/3018743.3018760
M3 - Conference contribution
AN - SCOPUS:85014496180
T3 - Proceedings of the ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP
SP - 179
EP - 191
BT - PPoPP 2017 - Proceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming
PB - Association for Computing Machinery
T2 - 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2017
Y2 - 4 February 2017 through 8 February 2017
ER -