High-Level and Efficient Stream Parallelism on Multi-core Systems with SPar for Data Compression Applications
Resumo
The stream processing domain is present in several real-world applications that are running on multi-core systems. In this paper, we focus on data compression applications that are an important sub-set of this domain. Our main goal is to assess the programmability and efficiency of domain-specific language called SPar. It was specially designed for expressing stream parallelism and it promises higher-level parallelism abstractions without significant performance losses. Therefore, we parallelized Lzip and Bzip2 compressors with SPar and compared with state-of-the-art frameworks. The results revealed that SPar is able to efficiently exploit stream parallelism as well as provide suitable abstractions with less code intrusion and code refactoring.
Referências
Aldinucci, M., Danelutto, M., Kilpatrick, P., and Torquati, M. (2014). FastFlow: High- Level and Efcient Streaming on Multi-core. In Programming Multi-core and Many- core Computing Systems, PDC, page 14. Wiley.
Beard, J. C., Li, P., and Chamberlain, R. D. (2015). RaftLib: A C++ Template Library for High Performance Stream Parallel Processing. In 6th Inter. Works. Progr. Models and App. for Multicores and Manycores, PMAM' 2015, pages 96–105, San Francisco, USA. ACM.
Benkner, S., Bajrovic, E., Marth, E., Sandrieser, M., Namyst, R., and Thibault, S. (2012). In 18th High-Level Support for Pipeline Parallelism on Many-Core Architectures. International Europen Conference on Parallel and Ditributed Computing, Euro-Par '12, pages 614–625, Rhodes Island, Greece. Springer.
Diaz, A. D. (2017). Lzip- LZMA Lossless Data Compressor. http://lzip.nongnu.org/.
Gilchrist, J. (2004). Parallel Compression with BZIP2. In 16th IASTED International Conference on Parallel and Distributed Computing and Systems, PDCS' 04, pages 559–564, MIT, Cambridge, USA. ACTA Press.
Griebler, D. (2016). Domain-Specic Language & Support Tool for High-Level Stream Parallelism. PhD thesis, Faculdade de Informática - PPGCC - PUCRS, Porto Alegre, Brazil.
Griebler, D., Danelutto, M., Torquati, M., and Fernandes, L. G. (2017a). SPar: A DSL for High-Level and Productive Stream Parallelism. Parallel Processing Letters, 27(01):20.
Griebler, D., Filho, R. B. H., Danelutto, M., and Fernandes, L. G. (2017b). High-Level and Productive Stream Parallelism for Dedup, Ferret, and Bzip2. In 10th International Symposium on High-Level Parallel Programming and Applications, HLPP'17, pages 238–256, Valladolid, Spain.
ISO/IEC, . (2014). Information Technology - Programming Languages - C++. Technical report, International Standard, Geneva, Switzerland.
Laird, L. M. and Brennan, M. C. (2006). Software Measurement and Estimation: A Practical Approach. Wiley.
Reinders, J. (2007). Intel Threading Building Blocks. O'Reilly, USA.
Rixner, S., Dally, W. J., Kapasi, U. J., Khailany, B., Lbpez-Lagunas, A., Mattson, P. R., and Owens, J. D. (1998). A Bandwidth-Efcient Architecture for Media Processing. In 31st ACM/IEEE Inter. Symp. on Microarchitecture, pages 3–13, Dallas, Texas, USA. 31st Annual ACM/IEEE International Symposium on Microarchitecture.
Seward, J. (2017). A Program and Library for Data Compression. http://www.bzip.org/1.0.5/bzip2-manual-1.0.5.html.
Sutter, H. (2005). The Free Lunch Is Over: A Fundamental Turn Toward Concurrency in Software. Dr. Dobbs journal, 30(3):202–210.